﻿CREATE PROCEDURE [GetWinPayoff]
@UserId bigint


AS

DECLARE @Practitioner TABLE (
    idx int Primary Key IDENTITY(1,1)
    , KnokId int
)
DECLARE @i int
DECLARE @numrows int
DECLARE @knokid int
DECLARE @knokrate int
DECLARE @profit int
DECLARE @knokentryto int
DECLARE @knokentryfrom int
DECLARE @sumprofit int 
DECLARE @win int 
 DECLARE @res int 
DECLARE @res2 int 


SET @sumprofit = 0
--___________________--

INSERT @Practitioner
SELECT distinct KnokId FROM [Signals] Where CreatorUserId = @UserId    AND  [EntryPriceTouched] = 1    OR [ExitPriceTouched]=1

SET @i = 1
SET @numrows = (SELECT COUNT(*) FROM @Practitioner)
IF @numrows > 0
 WHILE (@i <= (SELECT MAX(idx) FROM @Practitioner))
    BEGIN
	set @knokid = (SELECT KnokId FROM @Practitioner WHERE idx = @i)

 set @knokrate = (SELECT 1 [HighRate] FROM [Signals] Where KnokId =@knokid )
 set @knokentryto  = (SELECT 1 [HighRate] FROM [Signals] Where KnokId =@knokid )
 set @knokentryfrom  = (SELECT 1 [HighRate] FROM [Signals] Where KnokId =@knokid )

 set @profit = @knokrate - ((@knokentryfrom + @knokentryto)/2)

 set @sumprofit = @sumprofit + @profit

	 SET @i = @i + 1
	 END

--___________________--
  
   Set @win = 	(SELECT Count(*)
  FROM [Signals] Where CreatorUserId = @UserId 
   AND  [EntryPriceTouched] = 1 
   OR [ExitPriceTouched]=1)
 
 SET  @res = @sumprofit
 IF @win>0
 SET @res2 = @res/@win
 ELSE 
 SET @res2 = 0
RETURN @res2
