커뮤니티

미완성 신호 이벤트 함수

프로필 이미지
클릭한번
2014-11-20 15:51:09
234
글번호 80587
답변완료
<랭귀지> (일봉 적용) IF( C / C[50] >= 1.20 ) { Buy("매수"); } <스팟> function Main_OnStart() { Main.MessageLog("프로그램 실행"); Start = 0; } function Chart1_OnRiseIncompleteSignal(IncompleteSignal) { Main.MessageLog("시그널 수신"); Skind = IncompleteSignal.signalKind; // 미완성 신호의 종류 Scout = IncompleteSignal.count; // 주문수량 Scode = IncompleteSignal.code; // 미완성 신호의 종목코드 if( Skind == 1 ) { Main.ReqMarketData(IncompleteSignal.code,350);// 종목객체 생성 Main.MessageLog("종목 객체 생성"); } } 1. 랭귀지에서 Buy("매수") 함수 사용 했을때, OnRiseIncompleteSignal()로 받아서 Main.ReqMarketData() 함수를 사용하면 종목객체를 반복 요청하여 "Type error : 이미 만들어진 종목 입니다."라고 나옵니다. 어떻게 하면 종목객체를 한번만 요청되게 할 수 있을까요? (아무리 생각 해봐도 모르겠어요 ㅠㅠ) 2. "Type error : 이미 만들어진 종목 입니다." 뜨기 전에 "비정상적인 데이터가 입력 되었 습니다."라고 나오는데 이건 어떻게 해야할까요?
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2014-11-20 17:48:11

안녕하세요 예스스탁입니다. 1. 예를 들어 스팟시작시에(OnStart) 변수에 0을 할당하고 최초 한번 종목을 요청하면 1을 할당해서 한번만 동작하게 하셔야 합니다. function Main_OnStart() { Main.MessageLog("프로그램 실행"); Start = 0; } function Chart1_OnRiseIncompleteSignal(IncompleteSignal) { Main.MessageLog("시그널 수신"); Skind = IncompleteSignal.signalKind; // 미완성 신호의 종류 Scout = IncompleteSignal.count; // 주문수량 Scode = IncompleteSignal.code; // 미완성 신호의 종목코드 if( Skind == 1 && Start == 0 ) { Start = 1; Main.ReqMarketData(Main.GetOrderCode(IncompleteSignal.code),300);// 종목객체 생성 Main.MessageLog("종목 객체 생성"); } } 2. 차트가 연결선물일 경우 종목코드가 0000000 입니다. 실제 근원물종목코드가 아니므로 차트가 연결선물이시면 주문종목코드로 변경하는 함수로 변환해 주셔야 합니다. Main.GetOrderCode(IncompleteSignal.code) 즐거운 하루되세요 > 김현석 님이 쓴 글입니다. > 제목 : 미완성 신호 이벤트 함수 > <랭귀지> (일봉 적용) IF( C / C[50] >= 1.20 ) { Buy("매수"); } <스팟> function Main_OnStart() { Main.MessageLog("프로그램 실행"); Start = 0; } function Chart1_OnRiseIncompleteSignal(IncompleteSignal) { Main.MessageLog("시그널 수신"); Skind = IncompleteSignal.signalKind; // 미완성 신호의 종류 Scout = IncompleteSignal.count; // 주문수량 Scode = IncompleteSignal.code; // 미완성 신호의 종목코드 if( Skind == 1 ) { Main.ReqMarketData(IncompleteSignal.code,350);// 종목객체 생성 Main.MessageLog("종목 객체 생성"); } } 1. 랭귀지에서 Buy("매수") 함수 사용 했을때, OnRiseIncompleteSignal()로 받아서 Main.ReqMarketData() 함수를 사용하면 종목객체를 반복 요청하여 "Type error : 이미 만들어진 종목 입니다."라고 나옵니다. 어떻게 하면 종목객체를 한번만 요청되게 할 수 있을까요? (아무리 생각 해봐도 모르겠어요 ㅠㅠ) 2. "Type error : 이미 만들어진 종목 입니다." 뜨기 전에 "비정상적인 데이터가 입력 되었 습니다."라고 나오는데 이건 어떻게 해야할까요?