커뮤니티

ask

프로필 이미지
좌오비우오비
2024-09-02 12:36:43
202
글번호 109149
답변완료

첨부 이미지

수식 시뮬레이션 결과 오류가 있습니다. 일관된 오류는 시뮬레이션 기간동안 2차 sell 거래를 안합니다............그림 1 참조 선택적 오류는 1차 sell 거래 후 손절은 정상 작동합니다. 하지만 익절의 경우에는 작동하지 않고 end of day로 청산합니다..........그림 2 참조 아마도 2차 sell 거래가 작동하지 않아서 생기는 문제 같습니다. 변경 전 buy 수식(2회만 거래)에서는 상황별로 아래 기능이 정상적으로 작동합니다 1차 buy 진입,손절,익절,end of day 2차 buy 진입,손절,익절,end of day 살펴주세요. *** 안녕하세요 예스스탁입니다. input : b1(11),b2(13),X1(13),X2(13),진입눌림(4),진입돌파(4),청산눌림(4),청산돌파(4); var : T1(0),entry(0),HH(0),LL(0),EH(0),EL(0),E1(0),H1(0),i1(0),S1(0),L1(0); if Bdate != Bdate[1] Then{ T1 = TotalTrades; E1 = 0; } if MarketPosition == 0 Then entry = TotalTrades-T1; Else entry = (TotalTrades-T1)+1; if MarketPosition == 0 and entry == 0 Then{ if E1 == 0 and C <= DayHigh-PriceScale*B1 and C[1] < DayHigh-PriceScale*B1 Then{ E1 = 1; L1 = L; i1 = index; } if E1 == 1 and index > i1 then{ if L < L1 Then L1 = L; if H >= L1+PriceScale*진입눌림 Then{ E1 = 2; i1 = index; S1 = L1; } } if E1 == 2 and index > i1 and C <= S1-PriceScale*진입돌파 Then{ sell("s1"); E1 = 0; } } if MarketPosition == -1 Then{ if entry == 1 then{ if CurrentContracts > CurrentContracts[1] Then{ EL = L; E1 = 0; } if L < EL Then EL = L; if E1 == 0 and C >= EL+PriceScale*X1 Then{ E1 = 1; H1 = H; i1 = index; } if E1 == 1 and index > i1 Then{ if H > H1 Then H1 = H; if L <= H1-PriceScale*청산눌림 Then{ E1 = 2; I1 = index; S1 = H1; } } if E1 == 2 and index > i1 and C >= S1+PriceScale*청산돌파 Then{ ExitShort("sx1"); E1 = 0; } } } if TotalTrades > TotalTrades[1] Then HH = H; if L < HH Then HH = H; if MarketPosition == 0 and entry == 1 Then{ if E1 == 0 and C <= HH-PriceScale*B2 and C[1] < HH-PriceScale*B2 Then{ E1 = 1; L1 = L; i1 = index; } if E1 == 1 and index > i1 then{ if L < L1 Then L1 = L; if H >= L1+PriceScale*진입눌림 Then{ E1 = 2; i1 = index; S1 = L1; } } if E1 == 2 and index > i1 and C <= S1-PriceScale*진입돌파 Then{ sell("s2"); } } if MarketPosition == -1 Then{ if entry == 2 then{ if CurrentContracts > CurrentContracts[1] Then E1 = 0; if E1 == 0 and H >= EntryPrice+PriceScale*13 Then{ E1 = 1; H1 = H; i1 = index; } if E1 == 1 and index > i1 Then{ if H > H1 Then H1 = H; if L <= H1-PriceScale*청산눌림 Then{ E1 = 2; I1 = index; S1 = H1; } } if E1 == 2 and index > i1 and C >= S1+PriceScale*청산돌파 Then{ ExitShort("sx3"); E1 = 0; } } } 즐거운 하루되세요 > 좌오비우오비 님이 쓴 글입니다. > 제목 : 하락2회 수식 > 아래 수식은 상승추세시 buy만 2회 하는 수식입니다. 하락추세시 sell만 2회 하는 수식으로 전환바랍니다. 거래 방식은 BUY와 같고 역방향이므로 BUY와 SELL의 진입과 청산 지점은 다릅니다. (BUY1->SELL1->BUY2->SELL2 reverse 거래) 늘 고맙습니다. ****** input : b1(11),b2(13),X1(13),X2(13),진입눌림(4),진입돌파(4),청산눌림(4),청산돌파(4); var : T1(0),entry(0),LL(0),EH(0),E1(0),H1(0),i1(0),S1(0),L1(0); if Bdate != Bdate[1] Then{ T1 = TotalTrades; E1 = 0; } if MarketPosition == 0 Then entry = TotalTrades-T1; Else entry = (TotalTrades-T1)+1; if MarketPosition == 0 and entry == 0 Then{ if E1 == 0 and C >= daylow+PriceScale*B1 and C[1] < daylow+PriceScale*B1 Then{ E1 = 1; H1 = H; i1 = index; } if E1 == 1 and index > i1 then{ if H > H1 Then H1 = H; if L <= H1-PriceScale*진입눌림 Then{ E1 = 2; i1 = index; S1 = H1; } } if E1 == 2 and index > i1 and C >= S1+PriceScale*진입돌파 Then{ buy("b1"); E1 = 0; } } if MarketPosition == 1 Then{ if entry == 1 then{ if CurrentContracts > CurrentContracts[1] Then{ EH = H; E1 = 0; } if H > EH Then EH = H; if E1 == 0 and C <= EH-PriceScale*X1 Then{ E1 = 1; L1 = L; i1 = index; } if E1 == 1 and index > i1 Then{ if L < L1 Then L1 = L; if H >= L1+PriceScale*청산눌림 Then{ E1 = 2; I1 = index; S1 = L1; } } if E1 == 2 and index > i1 and C <= S1-PriceScale*청산돌파 Then{ exitlong("bx1"); E1 = 0; } } } if TotalTrades > TotalTrades[1] Then LL = L; if L < LL Then LL = L; if MarketPosition == 0 and entry == 1 Then{ if E1 == 0 and C >= LL+PriceScale*B2 and C[1] < LL+PriceScale*B2 Then{ E1 = 1; H1 = H; i1 = index; } if E1 == 1 and index > i1 then{ if H > H1 Then H1 = H; if L <= H1-PriceScale*진입눌림 Then{ E1 = 2; i1 = index; S1 = H1; } } if E1 == 2 and index > i1 and C >= S1+PriceScale*진입돌파 Then{ buy("b2"); } } #if MarketPosition == 1 Then{ # if MarketPosition== 1 and entry == 2 Then # exitlong("bx3",AtStop,EntryPrice-PriceScale*13); #} if MarketPosition == 1 Then{ if entry == 2 then{ if CurrentContracts > CurrentContracts[1] Then E1 = 0; if E1 == 0 and L <= EntryPrice-PriceScale*13 Then{ E1 = 1; L1 = L; i1 = index; } if E1 == 1 and index > i1 Then{ if L < L1 Then L1 = L; if H >= L1+PriceScale*청산눌림 Then{ E1 = 2; I1 = index; S1 = L1; } } if E1 == 2 and index > i1 and C <= S1-PriceScale*청산돌파 Then{ exitlong("bx3"); E1 = 0; } } }
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2017-04-26 10:06:06

안녕하세요 예스스탁입니다. 값할당이 잘못된 부분이 있어 수정했습니다. input : b1(11),b2(13),X1(13),X2(13),진입눌림(4),진입돌파(4),청산눌림(4),청산돌파(4); var : T1(0),entry(0),HH(0),LL(0),EH(0),EL(0),E1(0),H1(0),i1(0),S1(0),L1(0); if Bdate != Bdate[1] Then{ T1 = TotalTrades; E1 = 0; } if MarketPosition == 0 Then entry = TotalTrades-T1; Else entry = (TotalTrades-T1)+1; if MarketPosition == 0 and entry == 0 Then{ if E1 == 0 and C <= DayHigh-PriceScale*B1 and C[1] < DayHigh-PriceScale*B1 Then{ E1 = 1; L1 = L; i1 = index; } if E1 == 1 and index > i1 then{ if L < L1 Then L1 = L; if H >= L1+PriceScale*진입눌림 Then{ E1 = 2; i1 = index; S1 = L1; } } if E1 == 2 and index > i1 and C <= S1-PriceScale*진입돌파 Then{ sell("s1"); E1 = 0; } } if MarketPosition == -1 Then{ if entry == 1 then{ if CurrentContracts > CurrentContracts[1] Then{ EL = L; E1 = 0; } if L < EL Then EL = L; if E1 == 0 and C >= EL+PriceScale*X1 Then{ E1 = 1; H1 = H; i1 = index; } if E1 == 1 and index > i1 Then{ if H > H1 Then H1 = H; if L <= H1-PriceScale*청산눌림 Then{ E1 = 2; I1 = index; S1 = H1; } } if E1 == 2 and index > i1 and C >= S1+PriceScale*청산돌파 Then{ ExitShort("sx1"); E1 = 0; } } } if TotalTrades > TotalTrades[1] Then HH = H; if H > HH Then HH = H; if MarketPosition == 0 and entry == 1 Then{ if E1 == 0 and C <= HH-PriceScale*B2 and C[1] < HH-PriceScale*B2 Then{ E1 = 1; L1 = L; i1 = index; } if E1 == 1 and index > i1 then{ if L < L1 Then L1 = L; if H >= L1+PriceScale*진입눌림 Then{ E1 = 2; i1 = index; S1 = L1; } } if E1 == 2 and index > i1 and C <= S1-PriceScale*진입돌파 Then{ sell("s2"); } } if MarketPosition == -1 Then{ if entry == 2 then{ if CurrentContracts > CurrentContracts[1] Then E1 = 0; if E1 == 0 and H >= EntryPrice+PriceScale*13 Then{ E1 = 1; H1 = H; i1 = index; } if E1 == 1 and index > i1 Then{ if H > H1 Then H1 = H; if L <= H1-PriceScale*청산눌림 Then{ E1 = 2; I1 = index; S1 = H1; } } if E1 == 2 and index > i1 and C >= S1+PriceScale*청산돌파 Then{ ExitShort("sx3"); E1 = 0; } } } 즐거운 하루되세요 > 좌오비우오비 님이 쓴 글입니다. > 제목 : 1차 익절 및 2차 진입 안함 > 수식 시뮬레이션 결과 오류가 있습니다. 일관된 오류는 시뮬레이션 기간동안 2차 sell 거래를 안합니다............그림 1 참조 선택적 오류는 1차 sell 거래 후 손절은 정상 작동합니다. 하지만 익절의 경우에는 작동하지 않고 end of day로 청산합니다..........그림 2 참조 아마도 2차 sell 거래가 작동하지 않아서 생기는 문제 같습니다. 변경 전 buy 수식(2회만 거래)에서는 상황별로 아래 기능이 정상적으로 작동합니다 1차 buy 진입,손절,익절,end of day 2차 buy 진입,손절,익절,end of day 살펴주세요. *** 안녕하세요 예스스탁입니다. input : b1(11),b2(13),X1(13),X2(13),진입눌림(4),진입돌파(4),청산눌림(4),청산돌파(4); var : T1(0),entry(0),HH(0),LL(0),EH(0),EL(0),E1(0),H1(0),i1(0),S1(0),L1(0); if Bdate != Bdate[1] Then{ T1 = TotalTrades; E1 = 0; } if MarketPosition == 0 Then entry = TotalTrades-T1; Else entry = (TotalTrades-T1)+1; if MarketPosition == 0 and entry == 0 Then{ if E1 == 0 and C <= DayHigh-PriceScale*B1 and C[1] < DayHigh-PriceScale*B1 Then{ E1 = 1; L1 = L; i1 = index; } if E1 == 1 and index > i1 then{ if L < L1 Then L1 = L; if H >= L1+PriceScale*진입눌림 Then{ E1 = 2; i1 = index; S1 = L1; } } if E1 == 2 and index > i1 and C <= S1-PriceScale*진입돌파 Then{ sell("s1"); E1 = 0; } } if MarketPosition == -1 Then{ if entry == 1 then{ if CurrentContracts > CurrentContracts[1] Then{ EL = L; E1 = 0; } if L < EL Then EL = L; if E1 == 0 and C >= EL+PriceScale*X1 Then{ E1 = 1; H1 = H; i1 = index; } if E1 == 1 and index > i1 Then{ if H > H1 Then H1 = H; if L <= H1-PriceScale*청산눌림 Then{ E1 = 2; I1 = index; S1 = H1; } } if E1 == 2 and index > i1 and C >= S1+PriceScale*청산돌파 Then{ ExitShort("sx1"); E1 = 0; } } } if TotalTrades > TotalTrades[1] Then HH = H; if L < HH Then HH = H; if MarketPosition == 0 and entry == 1 Then{ if E1 == 0 and C <= HH-PriceScale*B2 and C[1] < HH-PriceScale*B2 Then{ E1 = 1; L1 = L; i1 = index; } if E1 == 1 and index > i1 then{ if L < L1 Then L1 = L; if H >= L1+PriceScale*진입눌림 Then{ E1 = 2; i1 = index; S1 = L1; } } if E1 == 2 and index > i1 and C <= S1-PriceScale*진입돌파 Then{ sell("s2"); } } if MarketPosition == -1 Then{ if entry == 2 then{ if CurrentContracts > CurrentContracts[1] Then E1 = 0; if E1 == 0 and H >= EntryPrice+PriceScale*13 Then{ E1 = 1; H1 = H; i1 = index; } if E1 == 1 and index > i1 Then{ if H > H1 Then H1 = H; if L <= H1-PriceScale*청산눌림 Then{ E1 = 2; I1 = index; S1 = H1; } } if E1 == 2 and index > i1 and C >= S1+PriceScale*청산돌파 Then{ ExitShort("sx3"); E1 = 0; } } } 즐거운 하루되세요 > 좌오비우오비 님이 쓴 글입니다. > 제목 : 하락2회 수식 > 아래 수식은 상승추세시 buy만 2회 하는 수식입니다. 하락추세시 sell만 2회 하는 수식으로 전환바랍니다. 거래 방식은 BUY와 같고 역방향이므로 BUY와 SELL의 진입과 청산 지점은 다릅니다. (BUY1->SELL1->BUY2->SELL2 reverse 거래) 늘 고맙습니다. ****** input : b1(11),b2(13),X1(13),X2(13),진입눌림(4),진입돌파(4),청산눌림(4),청산돌파(4); var : T1(0),entry(0),LL(0),EH(0),E1(0),H1(0),i1(0),S1(0),L1(0); if Bdate != Bdate[1] Then{ T1 = TotalTrades; E1 = 0; } if MarketPosition == 0 Then entry = TotalTrades-T1; Else entry = (TotalTrades-T1)+1; if MarketPosition == 0 and entry == 0 Then{ if E1 == 0 and C >= daylow+PriceScale*B1 and C[1] < daylow+PriceScale*B1 Then{ E1 = 1; H1 = H; i1 = index; } if E1 == 1 and index > i1 then{ if H > H1 Then H1 = H; if L <= H1-PriceScale*진입눌림 Then{ E1 = 2; i1 = index; S1 = H1; } } if E1 == 2 and index > i1 and C >= S1+PriceScale*진입돌파 Then{ buy("b1"); E1 = 0; } } if MarketPosition == 1 Then{ if entry == 1 then{ if CurrentContracts > CurrentContracts[1] Then{ EH = H; E1 = 0; } if H > EH Then EH = H; if E1 == 0 and C <= EH-PriceScale*X1 Then{ E1 = 1; L1 = L; i1 = index; } if E1 == 1 and index > i1 Then{ if L < L1 Then L1 = L; if H >= L1+PriceScale*청산눌림 Then{ E1 = 2; I1 = index; S1 = L1; } } if E1 == 2 and index > i1 and C <= S1-PriceScale*청산돌파 Then{ exitlong("bx1"); E1 = 0; } } } if TotalTrades > TotalTrades[1] Then LL = L; if L < LL Then LL = L; if MarketPosition == 0 and entry == 1 Then{ if E1 == 0 and C >= LL+PriceScale*B2 and C[1] < LL+PriceScale*B2 Then{ E1 = 1; H1 = H; i1 = index; } if E1 == 1 and index > i1 then{ if H > H1 Then H1 = H; if L <= H1-PriceScale*진입눌림 Then{ E1 = 2; i1 = index; S1 = H1; } } if E1 == 2 and index > i1 and C >= S1+PriceScale*진입돌파 Then{ buy("b2"); } } #if MarketPosition == 1 Then{ # if MarketPosition== 1 and entry == 2 Then # exitlong("bx3",AtStop,EntryPrice-PriceScale*13); #} if MarketPosition == 1 Then{ if entry == 2 then{ if CurrentContracts > CurrentContracts[1] Then E1 = 0; if E1 == 0 and L <= EntryPrice-PriceScale*13 Then{ E1 = 1; L1 = L; i1 = index; } if E1 == 1 and index > i1 Then{ if L < L1 Then L1 = L; if H >= L1+PriceScale*청산눌림 Then{ E1 = 2; I1 = index; S1 = L1; } } if E1 == 2 and index > i1 and C <= S1-PriceScale*청산돌파 Then{ exitlong("bx3"); E1 = 0; } } }