커뮤니티

수식 부탁드립니다.

프로필 이미지
우후훗
2019-11-19 08:18:57
3548
글번호 225089
답변완료
동일 시스템( systra-001)이 아래 2개의 챠트에서 동작 중 입니다. 챠트 1(거래종목: 코스피200종합 / 분봉: 10분봉 / 시스템명: systra-001) 챠트 2(거래종목: 코스피200선물 / 분봉: 20분봉 / 시스템명: systra-001) 시스템 systra-001 에는 매수 매도 각 2개의 진입이 있습니다. 즉 매수-1 / 매수-2 매도-1 / 매도-2 챠트 2(종목: 코스피200선물)를 중심으로 거래를 하는데 챠트 1(종목: 코스피200종합) 신호를 활용하고 싶습니다. 즉 챠트 2 에서 운용 중인 systra-001 이 진입할 때 마다 챠트 1 에서 반대 진입 중이면 진입을 못하게 하고 싶습니다. 예를 들어 챠트 2 systra-001 에 매수-1 신호가 발생하면 챠트 1 systra-001 에 매도-1 신호로 진입되어 있으면 ----> 챠트 2 systra-001 에서 매수-1 진입을 못하도록 하고 싶습니다. 챠트 2 systra-001 (분봉: 20분봉) 에서 매수-1 신호가 발생했을 때 챠트 1 systra-001 (분봉: 10분봉) 에서 신호가 없어 무진입(무보유) 중이거나 또는 동일한 매수-1로 선진입 되어 있거나 ------ 매수-2로 선진입 되어 있거나 ------ 매도-2로 선진입 되어 있으면 발생 신호대로 매수-1 진입합니다. ============================================================================ 챠트 2 systra-001 (분봉: 20분봉) 에서 매수-1 신호가 발생했을 때 챠트 1 systra-001 (분봉: 10분봉) 에서 먼저 반대인 매도-1 로 선진입 되어 있는 경우만 챠트 2 에서 매수-1 진입을 금지하고 싶은 것입니다. 마찬가지로 챠트 2 systra-001 (분봉: 20분봉) 에서 매도-1 신호가 발생했을 때 챠트 1 systra-001 (분봉: 10분봉) 에서 먼저 반대인 매수-1 로 선진입 되어 있으면 똑같이 챠트 2 에서 매도-1 진입을 금지하고 싶은 것입니다. 똑같이 챠트 2 systra-001 (분봉: 20분봉) 에서 매수-2 신호가 발생했을 때 챠트 1 systra-001 (분봉: 10분봉) 에서 먼저 반대인 매도-2 로 선진입 되어 있는 경우만 챠트 2 에서 매수-2 진입을 금지하고 싶은 것입니다. 마찬가지로 챠트 2 systra-001 (분봉: 20분봉) 에서 매도-2 신호가 발생했을 때 챠트 1 systra-001 (분봉: 10분봉) 에서 먼저 반대인 매수-2 로 선진입 되어 있으면 똑같이 챠트 2 에서 매도-2 진입을 금지하고 싶은 것입니다. ============================================================================= 이상 4가지 경우에 필요한 예스스팟 수식을 부탁드립니다. 매우 매우 감사합니다.
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2019-12-16 18:41:46

안녕하세요 예스스탁입니다. 아래 내용을 참고하셔서 수정보완해 사용하시기 바랍니다. 스팟이 적용되기 이전에 발생한 신호에 대해서는 이름을 알수 없습니다. 적용이후 발생한 신호에 대해서만 신호발생시 이름저장해 제어합니다. 스크립트 객체설정 차트객체 추가 --> 객체명 Chart1, 코스피200종합차트와 연결 차트객체 추가 --> 객체명 Chart2, 코스피200선물차트와 연결 계좌객체 추가 --> 객체명 Account1, 계좌번호 지정 종목객체 추가 --> 객체명 MarketData1, 코스피200선물로 지정 var S, name1; function Main_OnStart() { Main.MessageList("start") S = 0; } //차트1에서 신호 발생 function Chart1_OnRiseSignal(Signal) { //매수진입신호 if (Signal.signalKind == 1) { //이름저장 name1 = Signal.name; } //매수청산신호 if ( Signal.signalKind == 2) { //이름저장 name1 = Signal.name; } //매도진입신호 if (Signal.signalKind == 3) { //이름저장 name1 = Signal.name; } //매도청산신호가 발생하면 if (Signal.signalKind == 4) { //이름저장 name1 = Signal.name; } } //차트2에서 신호 발생 function Chart2_OnRiseSignal(Signal) { //매수진입신호이고 //신호명이 매수-1이면 차트2가 매도-1이 아닐때만 진입 //신호명이 매수-2이면 차트2가 매도-2가 아닐때만 진입 if (Signal.signalKind == 1 && (Signal.name == "매수-1" && name1 != "매도-1") || (Signal.name == "매수-2" && name1 != "매도-2")) { S = 1; //매수주문(매도3호가로주문) Account1.OrderBuy(MarketData1.code, Signal.count,MarketData1.Ask(3), 0); } //매수청산신호가 발생하면 청산주문 if (S == 1 && Signal.signalKind == 3) { S = 0; T = Signal.name; //매도주문(매수3호가로주문) Account1.OrderSell(MarketData1.code, Signal.count,MarketData1.Bid(3), 0); } //매도진입신호이고 //신호명이 매도-1이면 차트2가 매수-1이 아닐때만 진입 //신호명이 매도-2이면 차트2가 매수-2가 아닐때만 진입 if (Signal.signalKind == 1 && (Signal.name == "매도-1" && name1 != "매수-1") || (Signal.name == "매도-2" && name1 != "매수-2")) { S = -1; T = Signal.name; //매도주문(매수3호가로주문) Account1.OrderSell(MarketData1.code, Signal.count,MarketData1.Bid(3), 0); } //매도청산신호가 발생하면 if (S == -1 && Signal.signalKind == 4) { S = 0; T = Signal.name; Account1.OrderBuy(MarketData1.code, Signal.count,MarketData1.Ask(3), 0); } } 즐거운 하루되세요 > 우후훗 님이 쓴 글입니다. > 제목 : 수식 부탁드립니다. > 동일 시스템( systra-001)이 아래 2개의 챠트에서 동작 중 입니다. 챠트 1(거래종목: 코스피200종합 / 분봉: 10분봉 / 시스템명: systra-001) 챠트 2(거래종목: 코스피200선물 / 분봉: 20분봉 / 시스템명: systra-001) 시스템 systra-001 에는 매수 매도 각 2개의 진입이 있습니다. 즉 매수-1 / 매수-2 매도-1 / 매도-2 챠트 2(종목: 코스피200선물)를 중심으로 거래를 하는데 챠트 1(종목: 코스피200종합) 신호를 활용하고 싶습니다. 즉 챠트 2 에서 운용 중인 systra-001 이 진입할 때 마다 챠트 1 에서 반대 진입 중이면 진입을 못하게 하고 싶습니다. 예를 들어 챠트 2 systra-001 에 매수-1 신호가 발생하면 챠트 1 systra-001 에 매도-1 신호로 진입되어 있으면 ----> 챠트 2 systra-001 에서 매수-1 진입을 못하도록 하고 싶습니다. 챠트 2 systra-001 (분봉: 20분봉) 에서 매수-1 신호가 발생했을 때 챠트 1 systra-001 (분봉: 10분봉) 에서 신호가 없어 무진입(무보유) 중이거나 또는 동일한 매수-1로 선진입 되어 있거나 ------ 매수-2로 선진입 되어 있거나 ------ 매도-2로 선진입 되어 있으면 발생 신호대로 매수-1 진입합니다. ============================================================================ 챠트 2 systra-001 (분봉: 20분봉) 에서 매수-1 신호가 발생했을 때 챠트 1 systra-001 (분봉: 10분봉) 에서 먼저 반대인 매도-1 로 선진입 되어 있는 경우만 챠트 2 에서 매수-1 진입을 금지하고 싶은 것입니다. 마찬가지로 챠트 2 systra-001 (분봉: 20분봉) 에서 매도-1 신호가 발생했을 때 챠트 1 systra-001 (분봉: 10분봉) 에서 먼저 반대인 매수-1 로 선진입 되어 있으면 똑같이 챠트 2 에서 매도-1 진입을 금지하고 싶은 것입니다. 똑같이 챠트 2 systra-001 (분봉: 20분봉) 에서 매수-2 신호가 발생했을 때 챠트 1 systra-001 (분봉: 10분봉) 에서 먼저 반대인 매도-2 로 선진입 되어 있는 경우만 챠트 2 에서 매수-2 진입을 금지하고 싶은 것입니다. 마찬가지로 챠트 2 systra-001 (분봉: 20분봉) 에서 매도-2 신호가 발생했을 때 챠트 1 systra-001 (분봉: 10분봉) 에서 먼저 반대인 매수-2 로 선진입 되어 있으면 똑같이 챠트 2 에서 매도-2 진입을 금지하고 싶은 것입니다. ============================================================================= 이상 4가지 경우에 필요한 예스스팟 수식을 부탁드립니다. 매우 매우 감사합니다.