커뮤니티

함수요청

프로필 이미지
흰둥이아빠
2022-02-15 16:58:37
963
글번호 156325
답변완료
안녕하세요? 아래 작성주신 지표함수 (글번호 74517번)을 활용하여 전략을 작성하고 싶습니다. (글번호 75951번의 작성 주실 스크립트를 다시 응용해보고자 합니다.) Input : short(12), long(26), signal(9); Var : MACDv(0), MACDs(0),macdo(0),T(0),HH(0),LL(0); var : d1(0),t1(0),tl1(0),tl2(0); MACDv = MACD(short, long); MACDs = ema(MACDv,signal); macdo = MACDv-MACDs; if Bdate != Bdate[1] Then { d1 = sDate; t1 = sTime; HH = macdo; LL = macdo; Condition1 = False; } if d1 > 0 Then { if macdo > hh Then hh = macdo; if macdo < ll Then ll = macdo; if Condition1 == False and hh >= ll+0.5 Then { Condition1 = true; var1 = DayHigh; Var2 = DayLow; TL1 = TL_New(d1,t1,var1,NextBarSdate,NextBarStime,var1); TL2 = TL_New(d1,t1,var2,NextBarSdate,NextBarStime,var2); } if Condition1 == true Then { TL_SetEnd(TL1,sDate,sTime,var1); TL_SetEnd(TL2,sDate,sTime,var2); } } 선물 5분봉으로 거래를 하고자 하는데 9시에 장이 개장하고 상기 지표(의미있는 고점 HH, 의미있는 저점 LL) 에서 100ma가 HH 위에 있다가 아래로 이탈하면 익봉 시가에서 5틱 위로 지정가 매도 진입 (이탈 완성 시가에 5틱 위로 지정가 주문이 안되면 이탈봉 종가를 기준으로 5틱 위 지정가로 주문을 생성하고 싶습니다. 다만 주문이 생성되고 n개봉 이내에서 체결이 안되면 그 매도주문은 취소를 하고 다음 신호를 기다릴 것입니다.) 100ma가 LL 아래에 있다가 위로 돌파하면 익봉 시가에서 5틱 아래 지정가 매수 진입 (이탈 완성 시가에 5틱 아래로 지정가 주문이 안되면 돌파봉 종가를 기준으로 5틱 아래 지정가로 주문을 생성하고 싶습니다. 다만 주문이 생성되고 n개봉 이내에서 체결이 안되면 그 매수주문은 취소를 하고 다음 신호를 기다릴 것입니다.) 현주가가 100ma 상향돌파 완성하면 익봉 시가에 매도 청산 (역시 상향돌파의 의미가 그 값이 작다가 커졌다는 의미입니다. 즉 매도 진입 당시에는 현주가가 100ma 아래 있었고 매도 진입 이후 현주가가 100ma를 돌파하면 익봉시가에 매도분 청산입니다.) 현주가가 100ma 하향이탈 완성하면 익봉 시가에 매수 청산 (역시 하향이탈의 의미가 그 값이 컸다가 작아졌다는 의미입니다. 즉 매수 진입 당시에는 현주가가 100ma 위에 있었고 매수 진입 이후 현주가가 100ma를 돌파하면 익봉시가에 매수분 청산입니다.) 진입봉에서 청산이 발생하면 안됩니다. 매수든 매도든 진입과 청산은 각 1번입니다. 따라서 매수 신호 발생 후 매도 신호가 발생되면 매수청산만 하고 신규진입은 하지 않습니다. 15시 15분 강제청산입니다.
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2022-02-16 10:48:09

안녕하세요 예스스탁입니다. Input : short(12), long(26), signal(9),P(100); Var : MACDv(0), MACDs(0),macdo(0),T(0),HH(0),LL(0); var : d1(0),t1(0),tl1(0),tl2(0),mav(0),entry(0); MACDv = MACD(short, long); MACDs = ema(MACDv,signal); macdo = MACDv-MACDs; mav = ma(C,P); if Bdate != Bdate[1] Then { d1 = sDate; t1 = sTime; HH = macdo; LL = macdo; Condition1 = False; entry = 0; } if (MarketPosition != 0 and MarketPosition != MarketPosition[1]) or (MarketPosition == MarketPosition[1] and TotalTrades > TotalTrades[1]) Then entry = entry+1; if d1 > 0 Then { if macdo > hh Then hh = macdo; if macdo < ll Then ll = macdo; if Condition1 == False and hh >= ll+0.5 Then { Condition1 = true; var1 = DayHigh; Var2 = DayLow; TL1 = TL_New(d1,t1,var1,NextBarSdate,NextBarStime,var1); TL2 = TL_New(d1,t1,var2,NextBarSdate,NextBarStime,var2); } if Condition1 == true Then { TL_SetEnd(TL1,sDate,sTime,var1); TL_SetEnd(TL2,sDate,sTime,var2); if CrossDown(mav,HH) Then { if MarketPosition == 0 and entry < 1 Then Sell("s",AtStop,NextBarOpen+PriceScale*5); Else ExitLong("bx1",AtStop,NextBarOpen+PriceScale*5); } if CrossUp(mav,LL) Then { if MarketPosition == 0 and entry < 1 Then Buy("b",AtStop,NextBarOpen-PriceScale*5); Else ExitShort("sx1",AtStop,NextBarOpen-PriceScale*5); } if MarketPosition == -1 and CrossUp(c,mav) Then ExitShort("sx",AtMarket); if MarketPosition == 1 and CrossDown(c,mav) Then ExitLong("bx",AtMarket); } } SetStopEndofday(151500); 즐거운 하루되세요 > 흰둥이아빠 님이 쓴 글입니다. > 제목 : 함수요청 > 안녕하세요? 아래 작성주신 지표함수 (글번호 74517번)을 활용하여 전략을 작성하고 싶습니다. (글번호 75951번의 작성 주실 스크립트를 다시 응용해보고자 합니다.) Input : short(12), long(26), signal(9); Var : MACDv(0), MACDs(0),macdo(0),T(0),HH(0),LL(0); var : d1(0),t1(0),tl1(0),tl2(0); MACDv = MACD(short, long); MACDs = ema(MACDv,signal); macdo = MACDv-MACDs; if Bdate != Bdate[1] Then { d1 = sDate; t1 = sTime; HH = macdo; LL = macdo; Condition1 = False; } if d1 > 0 Then { if macdo > hh Then hh = macdo; if macdo < ll Then ll = macdo; if Condition1 == False and hh >= ll+0.5 Then { Condition1 = true; var1 = DayHigh; Var2 = DayLow; TL1 = TL_New(d1,t1,var1,NextBarSdate,NextBarStime,var1); TL2 = TL_New(d1,t1,var2,NextBarSdate,NextBarStime,var2); } if Condition1 == true Then { TL_SetEnd(TL1,sDate,sTime,var1); TL_SetEnd(TL2,sDate,sTime,var2); } } 선물 5분봉으로 거래를 하고자 하는데 9시에 장이 개장하고 상기 지표(의미있는 고점 HH, 의미있는 저점 LL) 에서 100ma가 HH 위에 있다가 아래로 이탈하면 익봉 시가에서 5틱 위로 지정가 매도 진입 (이탈 완성 시가에 5틱 위로 지정가 주문이 안되면 이탈봉 종가를 기준으로 5틱 위 지정가로 주문을 생성하고 싶습니다. 다만 주문이 생성되고 n개봉 이내에서 체결이 안되면 그 매도주문은 취소를 하고 다음 신호를 기다릴 것입니다.) 100ma가 LL 아래에 있다가 위로 돌파하면 익봉 시가에서 5틱 아래 지정가 매수 진입 (이탈 완성 시가에 5틱 아래로 지정가 주문이 안되면 돌파봉 종가를 기준으로 5틱 아래 지정가로 주문을 생성하고 싶습니다. 다만 주문이 생성되고 n개봉 이내에서 체결이 안되면 그 매수주문은 취소를 하고 다음 신호를 기다릴 것입니다.) 현주가가 100ma 상향돌파 완성하면 익봉 시가에 매도 청산 (역시 상향돌파의 의미가 그 값이 작다가 커졌다는 의미입니다. 즉 매도 진입 당시에는 현주가가 100ma 아래 있었고 매도 진입 이후 현주가가 100ma를 돌파하면 익봉시가에 매도분 청산입니다.) 현주가가 100ma 하향이탈 완성하면 익봉 시가에 매수 청산 (역시 하향이탈의 의미가 그 값이 컸다가 작아졌다는 의미입니다. 즉 매수 진입 당시에는 현주가가 100ma 위에 있었고 매수 진입 이후 현주가가 100ma를 돌파하면 익봉시가에 매수분 청산입니다.) 진입봉에서 청산이 발생하면 안됩니다. 매수든 매도든 진입과 청산은 각 1번입니다. 따라서 매수 신호 발생 후 매도 신호가 발생되면 매수청산만 하고 신규진입은 하지 않습니다. 15시 15분 강제청산입니다.