커뮤니티

문의드려요.

프로필 이미지
팽구
2017-03-15 18:36:50
150
글번호 107848
답변완료

첨부 이미지

한국투자증권 해외선물 s&p500 60분봉 과거1년치인데요 디버깅해보면 16년 5월 3일 05시에 매수시그널은 잡히는데 주문이 나가지 않습니다. 이유설명 부탁드려요.. ####################################################################### Input: 시작날짜(20160502),시작시간(180000),진입수량(2); Var: Bcond(False),Scond(False); Bcond = Highest(H[1],40) < H; Scond = Lowest(L[1],20) > L; If Date >= 시작날짜 && Time >= 시작시간 Then If MarketPosition == 0 Then{ If Bcond == True Then{ Buy("매수",AtMarket,DEF,진입수량); } If Scond == True Then{ Sell("매도",AtMarket,DEF,진입수량); } } If MarketPosition == 1 Then{ If Scond == True Then{ Sell("매도전환",AtMarket,DEF,진입수량); } } If MarketPosition == -1 Then{ If Bcond == True Then{ Buy("매수전환",AtMarket,DEF,진입수량); } } MessageLog("시가%.2f 종가%.2f 미결%.0f Bcond_%s Scond_%s 진입수량%.0f",O,C,MarketPosition*CurrentContracts,Bcond,Scond,진입수량);
시스템
답변 3
프로필 이미지

예스스탁 예스스탁 답변

2017-03-16 09:01:01

안녕하세요 예스스탁입니다. 1 수식의 날짜시간제한 조건이 잘못되어 있습니다. 지정한날짜,지정한시간 이후에 신호발생을 시작하고자 작성하신 내용 같은데 실제로 작성하신 내용은 지정한 날짜이후에 특정시간대에만 거래한다는 의미입니다. 20160502이후에 180000이후의 시간(18시에서 0시)에만 거래하라는 식입니다. MessageLog는 시간제한 조건없이 출력된 내용입니다. 차트에 아래내용 적용해 보시기 바랍니다. Input: 시작날짜(20160502),시작시간(180000); If Date >= 시작날짜 && Time >= 시작시간 Then var1 = 1; Else var1 = 0; plot1(var1); 2. 수정한 식입니다. Input: 시작날짜(20160502),시작시간(180000),진입수량(2); Var: Bcond(False),Scond(False); Bcond = Highest(H[1],40) < H; Scond = Lowest(L[1],20) > L; If Date >= 시작날짜 && Time >= 시작시간 Then Condition1 = true; if Condition1 == true then{ If MarketPosition == 0 Then{ If Bcond == True Then{ Buy("매수",AtMarket,DEF,진입수량); } If Scond == True Then{ Sell("매도",AtMarket,DEF,진입수량); } } If MarketPosition == 1 Then{ If Scond == True Then{ Sell("매도전환",AtMarket,DEF,진입수량); } } If MarketPosition == -1 Then{ If Bcond == True Then{ Buy("매수전환",AtMarket,DEF,진입수량); } } } MessageLog("시가%.2f 종가%.2f 미결%.0f Bcond_%s Scond_%s 진입수량%.0f",O,C,MarketPosition*CurrentContracts,Bcond,Scond,진입수량); 즐거운 하루되세요 > 팽구 님이 쓴 글입니다. > 제목 : 문의드려요. > 한국투자증권 해외선물 s&p500 60분봉 과거1년치인데요 디버깅해보면 16년 5월 3일 05시에 매수시그널은 잡히는데 주문이 나가지 않습니다. 이유설명 부탁드려요.. ####################################################################### Input: 시작날짜(20160502),시작시간(180000),진입수량(2); Var: Bcond(False),Scond(False); Bcond = Highest(H[1],40) < H; Scond = Lowest(L[1],20) > L; If Date >= 시작날짜 && Time >= 시작시간 Then If MarketPosition == 0 Then{ If Bcond == True Then{ Buy("매수",AtMarket,DEF,진입수량); } If Scond == True Then{ Sell("매도",AtMarket,DEF,진입수량); } } If MarketPosition == 1 Then{ If Scond == True Then{ Sell("매도전환",AtMarket,DEF,진입수량); } } If MarketPosition == -1 Then{ If Bcond == True Then{ Buy("매수전환",AtMarket,DEF,진입수량); } } MessageLog("시가%.2f 종가%.2f 미결%.0f Bcond_%s Scond_%s 진입수량%.0f",O,C,MarketPosition*CurrentContracts,Bcond,Scond,진입수량);
프로필 이미지

팽구

2017-03-16 13:30:39

실제 거래에서는 답변주신 내용이나 지표와는 다르게 참조그림처럼 첫진입만 안들어가고 그 이후엔 24시간 진입 청산이 잘 이루어집니다. 그 이유도 알려주세요! 33333333333333333333333333333333333333333333333333333333333333333 수식의 날짜시간제한 조건이 잘못되어 있습니다. 지정한날짜,지정한시간 이후에 신호발생을 시작하고자 작성하신 내용 같은데 실제로 작성하신 내용은 지정한 날짜이후에 특정시간대에만 거래한다는 의미입니다. 20160502이후에 180000이후의 시간(18시에서 0시)에만 거래하라는 식입니다. MessageLog는 시간제한 조건없이 출력된 내용입니다.
프로필 이미지

예스스탁 예스스탁 답변

2017-03-16 15:26:58

안녕하세요 예스스탁입니다. If Date >= 시작날짜 && Time >= 시작시간 Then If MarketPosition == 0 Then{ If Bcond == True Then{ Buy("매수",AtMarket,DEF,진입수량); } If Scond == True Then{ Sell("매도",AtMarket,DEF,진입수량); } } 올리신 식에 보시면 If Date >= 시작날짜 && Time >= 시작시간 Then 위 조건이 "매수"나 "매도" 진입식에만 적용이 됩니다. "매수전환", "매도전환" 수식에는 날짜시간 제한조건에 해당 되지 않습니다. 무포지션에서 진입하는 "매수"와 "매도"진입식만 지정한 날짜이후에 지정한 시간대(18시~0시전)에만 진입하게 되게 되어 있습니다. 기존 수식에 손절이나 목표수익등 강제청산을 추가해 보시면 청산 후 무포지션이 되면 "매수"와 "매도"가 시간조건때문에 발생하지 못하는 것을 확인할수 있습니다. 즐거운 하루되세요 > 팽구 님이 쓴 글입니다. > 제목 : Re : Re : 문의드려요. > 실제 거래에서는 답변주신 내용이나 지표와는 다르게 참조그림처럼 첫진입만 안들어가고 그 이후엔 24시간 진입 청산이 잘 이루어집니다. 그 이유도 알려주세요! 33333333333333333333333333333333333333333333333333333333333333333 수식의 날짜시간제한 조건이 잘못되어 있습니다. 지정한날짜,지정한시간 이후에 신호발생을 시작하고자 작성하신 내용 같은데 실제로 작성하신 내용은 지정한 날짜이후에 특정시간대에만 거래한다는 의미입니다. 20160502이후에 180000이후의 시간(18시에서 0시)에만 거래하라는 식입니다. MessageLog는 시간제한 조건없이 출력된 내용입니다.