커뮤니티

신호가 발생하지 않는 시스템식 오류수정 부탁드립니다.

프로필 이미지
봉자
2014-11-01 14:17:18
197
글번호 79988
답변완료
안녕하세요 다음과 같은 매매식을 만들었는데 오류수정 부탁드립니다. Input: EntryStart(93000), EntryClose(143000), MaxTradeN(1), ExpiryDay(0); Var: Counter(0); // General Variables // 전역 변수를 선언한다 // 현재의 매매횟수, 장종료시간, 진입필터와 트리거, 청산트리거 등 Var: NthTrade(0), EndOfDay(150400); Var: LongFilter(False), ShortFilter(False), GeneralFilter(False); Var: LongTrigger(False), ShortTrigger(False), xLongTrigger(False), xShortTrigger(False); //Initialization //초기화 // 새로운 하루가 시작된다 If DayIndex == 0 || BarIndex == 0 Then { If ExpiryDay == 1 Then { EndOfDay = 144900; } NthTrade = 0; } // What to Do before TradingBarIndex If sTime < EntryStart Then { GeneralFilter = False; } // What to Do while Trading Else If sTime>=EntryStart && sTime<=EntryClose Then { GeneralFilter = True; } // What to Do after Last Entry // 신규진입이 거절된 이후 시간에 해야 할 일들을 정리한다 // 잔여 포지션의 청산 관련 Else { GeneralFilter = False; } // 기본 진입조건의 검증 // 분봉 상태에서 거래횟수 제한을 검증한다 GeneralFilter = GeneralFilter && DataCompress == 2 && NthTrade < MaxTradeN; // ENTRY // 기본적인 진입환경이 만족되면 진입을 위한 작업을 개시한다 // 선물 1계약 기준 If MarketPosition == 0 && GeneralFilter Then { // Filter Verification // 진입필터의 적용 LongFilter = data2(c)<0 and data3(c)<0 and data4(c)>0 ; ShortFilter = data2(c)>0 and data3(c) >0 and data4(c)<0; // 진입과 동시에 매매횟수 증가 If LongFilter && LongTrigger Then { Buy("B",AtMarket); NthTrade = NthTrade+1; } If ShortFilter && ShortTrigger Then { Sell("S",AtMarket); NthTrade = NthTrade+1; } } // EXIT //Else If MarketPosition != 0 Then //( // Long Exit // 매수 포지션의 청산 규칙 적용 If MarketPosition == 1 and (data2(c)>0 or data3(c)>0 or data4(c)<0) Then { ExitLong(); } // Short Exit // 매도 포지션의 청산 규칙 적용 If MarketPosition == -1 and (data2(c)>0 or data3(c)>0 or data4(c)<0) Then { ExitShort(); } //} // End of Day // 어쨌든 당일 청산 SetStopEndofday(EndOfDay);
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2014-11-03 11:01:31

안녕하세요 예스스탁입니다. LongTrigger와 ShortTrigger가 변수만 선언이 되어 있고 조건값이 없습니다. 계속 false이므로 신호가 발생하지 않습니다. 해당 내용 if문에서 삭제하면 신호가 발생합니다. 즐거운 하루되세요 > 봉자 님이 쓴 글입니다. > 제목 : 신호가 발생하지 않는 시스템식 오류수정 부탁드립니다. > 안녕하세요 다음과 같은 매매식을 만들었는데 오류수정 부탁드립니다. Input: EntryStart(93000), EntryClose(143000), MaxTradeN(1), ExpiryDay(0); Var: Counter(0); // General Variables // 전역 변수를 선언한다 // 현재의 매매횟수, 장종료시간, 진입필터와 트리거, 청산트리거 등 Var: NthTrade(0), EndOfDay(150400); Var: LongFilter(False), ShortFilter(False), GeneralFilter(False); Var: LongTrigger(False), ShortTrigger(False), xLongTrigger(False), xShortTrigger(False); //Initialization //초기화 // 새로운 하루가 시작된다 If DayIndex == 0 || BarIndex == 0 Then { If ExpiryDay == 1 Then { EndOfDay = 144900; } NthTrade = 0; } // What to Do before TradingBarIndex If sTime < EntryStart Then { GeneralFilter = False; } // What to Do while Trading Else If sTime>=EntryStart && sTime<=EntryClose Then { GeneralFilter = True; } // What to Do after Last Entry // 신규진입이 거절된 이후 시간에 해야 할 일들을 정리한다 // 잔여 포지션의 청산 관련 Else { GeneralFilter = False; } // 기본 진입조건의 검증 // 분봉 상태에서 거래횟수 제한을 검증한다 GeneralFilter = GeneralFilter && DataCompress == 2 && NthTrade < MaxTradeN; // ENTRY // 기본적인 진입환경이 만족되면 진입을 위한 작업을 개시한다 // 선물 1계약 기준 If MarketPosition == 0 && GeneralFilter Then { // Filter Verification // 진입필터의 적용 LongFilter = data2(c)<0 and data3(c)<0 and data4(c)>0 ; ShortFilter = data2(c)>0 and data3(c) >0 and data4(c)<0; // 진입과 동시에 매매횟수 증가 If LongFilter && LongTrigger Then { Buy("B",AtMarket); NthTrade = NthTrade+1; } If ShortFilter && ShortTrigger Then { Sell("S",AtMarket); NthTrade = NthTrade+1; } } // EXIT //Else If MarketPosition != 0 Then //( // Long Exit // 매수 포지션의 청산 규칙 적용 If MarketPosition == 1 and (data2(c)>0 or data3(c)>0 or data4(c)<0) Then { ExitLong(); } // Short Exit // 매도 포지션의 청산 규칙 적용 If MarketPosition == -1 and (data2(c)>0 or data3(c)>0 or data4(c)<0) Then { ExitShort(); } //} // End of Day // 어쨌든 당일 청산 SetStopEndofday(EndOfDay);