커뮤니티

수식수정 요청드립니다.

프로필 이미지
dandy
2015-09-24 17:52:49
134
글번호 90697
답변완료
수정해주신 아래 수식에서 첫 신호 발생 후 손절 스위칭일 경우 처음 손실을 포함한 당일손실제한 강제청산 => 수식 정상 입니다. 첫 신호 발생 후 수익 스위칭일 경우 처음 수익을 제외한 당일손실제한 강제청산 => << 작성된 수식은 첫수익 포함 입니다.>> (예1 : 첫 신호 발생 1PT 수익 스위칭 후 => 계속 수익 발생시 종가청산 하고, 수익 스위칭 후 부터, 손실일 경우 당일손실제한은 첫 수익 1PT을 제외하고 -1.5PT 적용 손절청산) input :N(2),당일손실(-1.5); var : cnt(0),BCount(0),SCount(0); var : NP(0),PreNP(0),DayPL(0),loss(0); NP = NetProfit; if date != date[1] Then{ preNP = NP[1]; Condition1 = false; } dayPL = NP-PreNP; BCount = 0 ; SCount = 0 ; for cnt = 0 to 10 { if EntryDate(cnt) == sdate and MarketPosition(cnt) == 1 then BCount = BCount + 1; if EntryDate(cnt) == sdate and MarketPosition(cnt) == -1 then SCount = SCount + 1; } if Bcount+Scount == 1 and TotalTrades > TotalTrades[1] Then{ if PositionProfit(1) > 0 Then{ Condition1 = true; var1 = PositionProfit(1); } } //------------------------------------------------------------------------ if MarketPosition == 1 Then{ if Condition1 == false Then loss = EntryPrice+당일손실-dayPL; Else loss = EntryPrice+당일손실-(dayPL-var1); ExitLong("당일손실제한bx3",AtStop,Loss); } if MarketPosition == -1 Then{ if Condition1 == false Then loss = EntryPrice-당일손실+dayPL; Else loss = EntryPrice-당일손실+(dayPL-var1); ExitShort("당일손실제한sx3",AtStop,loss ); } //-------------------------------------------------------------------------------------- if MarketPosition == -1 and crossup(H,EntryPrice+0.5) and BCount+SCount < N and dayPL > 당일손실 Then buy("1BX"); if MarketPosition == 1 and CrossDown(L,EntryPrice-0.5) and BCount+SCount < N and dayPL > 당일손실 Then sell("1SX"); //--------------------------------------------------------------------------------------
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2015-09-24 18:06:44

안녕하세요 예스스탁입니다. 식을 수정했습니다. input :N(2),당일손실(-1.5); var : cnt(0),BCount(0),SCount(0); var : NP(0),PreNP(0),DayPL(0),loss(0); NP = NetProfit; if date != date[1] Then{ preNP = NP[1]; Condition1 = false; var1 = 0; } dayPL = NP-PreNP; BCount = 0 ; SCount = 0 ; for cnt = 0 to 10 { if EntryDate(cnt) == sdate and MarketPosition(cnt) == 1 then BCount = BCount + 1; if EntryDate(cnt) == sdate and MarketPosition(cnt) == -1 then SCount = SCount + 1; } if Condition1 == false and TotalTrades > TotalTrades[1] Then{ Condition1 = true; if PositionProfit(1) > 0 Then var1 = PositionProfit(1); } //------------------------------------------------------------------------ if MarketPosition == 1 Then{ ExitLong("당일손실제한bx3",AtStop,EntryPrice+당일손실-(dayPL-var1)); } if MarketPosition == -1 Then{ ExitShort("당일손실제한sx3",AtStop,EntryPrice-당일손실+(dayPL-var1)); } //-------------------------------------------------------------------------------------- if MarketPosition == -1 and crossup(H,EntryPrice+0.5) and BCount+SCount < N and dayPL > 당일손실 Then buy("1BX"); if MarketPosition == 1 and CrossDown(L,EntryPrice-0.5) and BCount+SCount < N and dayPL > 당일손실 Then sell("1SX"); //-------------------------------------------------------------------------------------- 즐거운 하루되세요 > dandy 님이 쓴 글입니다. > 제목 : 수식수정 요청드립니다. > 수정해주신 아래 수식에서 첫 신호 발생 후 손절 스위칭일 경우 처음 손실을 포함한 당일손실제한 강제청산 => 수식 정상 입니다. 첫 신호 발생 후 수익 스위칭일 경우 처음 수익을 제외한 당일손실제한 강제청산 => << 작성된 수식은 첫수익 포함 입니다.>> (예1 : 첫 신호 발생 1PT 수익 스위칭 후 => 계속 수익 발생시 종가청산 하고, 수익 스위칭 후 부터, 손실일 경우 당일손실제한은 첫 수익 1PT을 제외하고 -1.5PT 적용 손절청산) input :N(2),당일손실(-1.5); var : cnt(0),BCount(0),SCount(0); var : NP(0),PreNP(0),DayPL(0),loss(0); NP = NetProfit; if date != date[1] Then{ preNP = NP[1]; Condition1 = false; } dayPL = NP-PreNP; BCount = 0 ; SCount = 0 ; for cnt = 0 to 10 { if EntryDate(cnt) == sdate and MarketPosition(cnt) == 1 then BCount = BCount + 1; if EntryDate(cnt) == sdate and MarketPosition(cnt) == -1 then SCount = SCount + 1; } if Bcount+Scount == 1 and TotalTrades > TotalTrades[1] Then{ if PositionProfit(1) > 0 Then{ Condition1 = true; var1 = PositionProfit(1); } } //------------------------------------------------------------------------ if MarketPosition == 1 Then{ if Condition1 == false Then loss = EntryPrice+당일손실-dayPL; Else loss = EntryPrice+당일손실-(dayPL-var1); ExitLong("당일손실제한bx3",AtStop,Loss); } if MarketPosition == -1 Then{ if Condition1 == false Then loss = EntryPrice-당일손실+dayPL; Else loss = EntryPrice-당일손실+(dayPL-var1); ExitShort("당일손실제한sx3",AtStop,loss ); } //-------------------------------------------------------------------------------------- if MarketPosition == -1 and crossup(H,EntryPrice+0.5) and BCount+SCount < N and dayPL > 당일손실 Then buy("1BX"); if MarketPosition == 1 and CrossDown(L,EntryPrice-0.5) and BCount+SCount < N and dayPL > 당일손실 Then sell("1SX"); //--------------------------------------------------------------------------------------