커뮤니티

목표수익 오차 변수 도움 부탁드립니다.

프로필 이미지
생생파생
2016-08-31 13:42:59
93
글번호 101532
답변완료
수식 작성 감사드립니다. 다름이 아니라 지난번에 목표수익 50틱에 +- 오차 5틱 범위는 허용해서 매매정지를 부탁드렸는데 그부분이 누락된거 같습니다. 그래서 나타나는 현상이 청산을 했는데 48틱이나. 49틱 일 경우 다음번 매매신호에도 들어가서 기어이 1틱. 2틱을 청산하고 끝난다는 것입니다. 오차범위 넣을 수 있는 수식 부탁드립니다. 즐거운 하루 되세요^^ input : bs(10),ssss(10),당일수익틱수(50); var : MACDP1(40),MACDP2(70); var: P1(5),P2(20); var : np(0),n1(0),daypl(0),당일수익(0),Xcond(false); var1 = macd(MACDP1,MACDP2); NP = NetProfit; 당일수익 = PriceScale*당일수익틱수; if stime == 090000 or (stime > 090000 and stime[1] < 090000) Then{ N1 = NP; Xcond = false; } daypl = np-n1; if TotalTrades > TotalTrades[1] and (IsExitName("bp",1) or IsExitName("sx",1)) Then Xcond = true; if ((stime >= 090000 and stime < 150000) or stime >= 170000 or stime < 030000) and Xcond == false then{ if var1 > 50 And crossup(var1) Then { if MarketPosition == 0 then Buy(""); } if var1 < 50 And CrossDown(var1) Then { if MarketPosition == 0 Then Sell(""); } if MarketPosition == 1 Then{ if CurrentContracts > CurrentContracts[1] Then var1 = H; if H > var1 Then var1 = H; if MaxEntries == 1 Then{ ExitLong("",Atlimit,EntryPrice+PriceScale*bs); if var1 >= EntryPrice+PriceScale*20 Then exitlong("",AtStop,EntryPrice+PriceScale*10); } } if MarketPosition == -1 Then{ if CurrentContracts > CurrentContracts[1] Then var2 = L; if L < var2 Then var2 = L; if MaxEntries == 1 Then{ ExitShort("",Atlimit,EntryPrice-PriceScale*ssss); if var2 <= EntryPrice-PriceScale*-10 Then ExitShort("",AtStop,EntryPrice-PriceScale*-10); } } if MarketPosition == 1 Then exitlong("bp",atlimit,EntryPrice+당일수익-daypl); if MarketPosition == -1 Then ExitShort("sp",atlimit,EntryPrice-당일수익+daypl); }
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2016-09-01 09:00:40

안녕하세요 예스스탁입니다. input : bs(10),ssss(10),당일수익틱수(50),오차(5); var : MACDP1(40),MACDP2(70); var: P1(5),P2(20); var : np(0),n1(0),daypl(0),당일수익(0),Xcond(false),오차범위(0); var1 = macd(MACDP1,MACDP2); NP = NetProfit; 당일수익 = PriceScale*당일수익틱수; 오차범위 = PriceScale*오차; if stime == 090000 or (stime > 090000 and stime[1] < 090000) Then{ N1 = NP; Xcond = false; } daypl = np-n1; if TotalTrades > TotalTrades[1] and (IsExitName("bp",1) or IsExitName("sx",1)) Then Xcond = true; if ((stime >= 090000 and stime < 150000) or stime >= 170000 or stime < 030000) and Xcond == false and (daypl <= 당일수익-오차범위 or dayPL >= 당일수익+오차범위) then{ if var1 > 50 And crossup(var1) Then { if MarketPosition == 0 then Buy(""); } if var1 < 50 And CrossDown(var1) Then { if MarketPosition == 0 Then Sell(""); } if MarketPosition == 1 Then{ if CurrentContracts > CurrentContracts[1] Then var1 = H; if H > var1 Then var1 = H; if MaxEntries == 1 Then{ ExitLong("",Atlimit,EntryPrice+PriceScale*bs); if var1 >= EntryPrice+PriceScale*20 Then exitlong("",AtStop,EntryPrice+PriceScale*10); } } if MarketPosition == -1 Then{ if CurrentContracts > CurrentContracts[1] Then var2 = L; if L < var2 Then var2 = L; if MaxEntries == 1 Then{ ExitShort("",Atlimit,EntryPrice-PriceScale*ssss); if var2 <= EntryPrice-PriceScale*-10 Then ExitShort("",AtStop,EntryPrice-PriceScale*-10); } } if MarketPosition == 1 Then exitlong("bp",atlimit,EntryPrice+당일수익-daypl); if MarketPosition == -1 Then ExitShort("sp",atlimit,EntryPrice-당일수익+daypl); } 즐거운 하루되세요 > 생생파생 님이 쓴 글입니다. > 제목 : 목표수익 오차 변수 도움 부탁드립니다. > 수식 작성 감사드립니다. 다름이 아니라 지난번에 목표수익 50틱에 +- 오차 5틱 범위는 허용해서 매매정지를 부탁드렸는데 그부분이 누락된거 같습니다. 그래서 나타나는 현상이 청산을 했는데 48틱이나. 49틱 일 경우 다음번 매매신호에도 들어가서 기어이 1틱. 2틱을 청산하고 끝난다는 것입니다. 오차범위 넣을 수 있는 수식 부탁드립니다. 즐거운 하루 되세요^^ input : bs(10),ssss(10),당일수익틱수(50); var : MACDP1(40),MACDP2(70); var: P1(5),P2(20); var : np(0),n1(0),daypl(0),당일수익(0),Xcond(false); var1 = macd(MACDP1,MACDP2); NP = NetProfit; 당일수익 = PriceScale*당일수익틱수; if stime == 090000 or (stime > 090000 and stime[1] < 090000) Then{ N1 = NP; Xcond = false; } daypl = np-n1; if TotalTrades > TotalTrades[1] and (IsExitName("bp",1) or IsExitName("sx",1)) Then Xcond = true; if ((stime >= 090000 and stime < 150000) or stime >= 170000 or stime < 030000) and Xcond == false then{ if var1 > 50 And crossup(var1) Then { if MarketPosition == 0 then Buy(""); } if var1 < 50 And CrossDown(var1) Then { if MarketPosition == 0 Then Sell(""); } if MarketPosition == 1 Then{ if CurrentContracts > CurrentContracts[1] Then var1 = H; if H > var1 Then var1 = H; if MaxEntries == 1 Then{ ExitLong("",Atlimit,EntryPrice+PriceScale*bs); if var1 >= EntryPrice+PriceScale*20 Then exitlong("",AtStop,EntryPrice+PriceScale*10); } } if MarketPosition == -1 Then{ if CurrentContracts > CurrentContracts[1] Then var2 = L; if L < var2 Then var2 = L; if MaxEntries == 1 Then{ ExitShort("",Atlimit,EntryPrice-PriceScale*ssss); if var2 <= EntryPrice-PriceScale*-10 Then ExitShort("",AtStop,EntryPrice-PriceScale*-10); } } if MarketPosition == 1 Then exitlong("bp",atlimit,EntryPrice+당일수익-daypl); if MarketPosition == -1 Then ExitShort("sp",atlimit,EntryPrice-당일수익+daypl); }