커뮤니티

문의드립니다.

프로필 이미지
선물대장
2025-10-28 15:25:29
98
글번호 227419
답변완료

Input : Period(14), sigPeriod(9),수량(1); var : TRIXv(0),TRIXs(0);   TRIXv = TRIX(Period); TRIXs = ema(TRIXv,sigPeriod);   if MarketPosition <= 0 and CrossUp(TRIXv,TRIXs) and TRIXv < 0 Then Buy("B",OnClose,def,수량);   if MarketPosition == 1 and CrossDown(TRIXv,TRIXs) Then ExitLong("BX");   if MarketPosition >= 0 and CrossDown(TRIXv,TRIXs) and TRIXv > 0 Then Sell("S",OnClose,def,수량);   if MarketPosition == -1 and CrossUp(TRIXv,TRIXs) Then ExitShort("SX");   위에 식은 아래의 요구 사항에 따라 잘 작용합니다.   TRIX 14 9 가 기준선 0선 아래에 있을 때 골든크로스 발생 하면 매수 진입 매수 후 데드크로스 발생 시 매도 청산 완료(기준선0선 상관없이 데드크로스 발생 하면 매도 청산할 것) TRIX 14 9 가 기준선 0선 위에 있을 때 데드크로스 발생 하면 매도 진입 매수 후 데드크로스 발생 시 매수 청산 완료(기준선0선 상관없이 골든크로스 발생 하면 매도 청산할 것)   그런데 위에 식에서 이평선 5 20 60 120 정배열에서는 매수가 적용되도록하고/ 이평선 5 20 60 120 역배열에서 매도가 적용되도록 추가 부탁드립니다. 감사합니다^.^

시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2025-10-29 09:15:17

안녕하세요 예스스탁입니다. 1 매수-매수청산은 정배열, 매도-매도청산은 역배열에서만 신호를 발생하신다면 아래와 같습니다. Input : Period(14), sigPeriod(9),수량(1); input : P1(5),P2(20),P3(60),P4(120); var : TRIXv(0),TRIXs(0); var : mav1(0),mav2(0),mav3(0),mav4(0); TRIXv = TRIX(Period); TRIXs = ema(TRIXv,sigPeriod); mav1 = ma(c,P1); mav2 = ma(c,P2); mav3 = ma(c,P3); mav4 = ma(c,P4); Condition1 = mav1 > mav2 and mav2 > mav3 and mav3 > mav4; Condition2 = mav1 < mav2 and mav2 < mav3 and mav3 < mav4; if Condition1 == true Then { if MarketPosition <= 0 and CrossUp(TRIXv,TRIXs) and TRIXv < 0 Then Buy("B",OnClose,def,수량); if MarketPosition == 1 and CrossDown(TRIXv,TRIXs) Then ExitLong("BX"); } if Condition2 == true Then { if MarketPosition >= 0 and CrossDown(TRIXv,TRIXs) and TRIXv > 0 Then Sell("S",OnClose,def,수량); if MarketPosition == -1 and CrossUp(TRIXv,TRIXs) Then ExitShort("SX"); } 2 각 진입만 정배열, 역배열 적용하시면 아래와 같습니다. Input : Period(14), sigPeriod(9),수량(1); input : P1(5),P2(20),P3(60),P4(120); var : TRIXv(0),TRIXs(0); var : mav1(0),mav2(0),mav3(0),mav4(0); TRIXv = TRIX(Period); TRIXs = ema(TRIXv,sigPeriod); mav1 = ma(c,P1); mav2 = ma(c,P2); mav3 = ma(c,P3); mav4 = ma(c,P4); Condition1 = mav1 > mav2 and mav2 > mav3 and mav3 > mav4; Condition2 = mav1 < mav2 and mav2 < mav3 and mav3 < mav4; if MarketPosition <= 0 and CrossUp(TRIXv,TRIXs) and TRIXv < 0 and Condition1 == true Then Buy("B",OnClose,def,수량); if MarketPosition == 1 and CrossDown(TRIXv,TRIXs) Then ExitLong("BX"); if MarketPosition >= 0 and CrossDown(TRIXv,TRIXs) and TRIXv > 0 and Condition2 == true Then Sell("S",OnClose,def,수량); if MarketPosition == -1 and CrossUp(TRIXv,TRIXs) Then ExitShort("SX"); 즐거운 하루되세요