동일 시스템( 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가지 경우에 필요한 예스스팟 수식을 부탁드립니다. 매우 매우 감사합니다.