예스스탁
예스스탁 답변
2019-10-25 09:06:47
안녕하세요
예스스탁입니다.
콜과 풋 신호는 차트에서 발생하는 것으로 간주하고 작성해 드립니다.
가이드 수식 내용 참고하셔서 수정보완해 사용하시기 바랍니다.
스크립트 객체설정
차트객체 추가 --> 속성에서 객체명은 Chart1, 콜시스템이 적용된 차트와 동일아이디 부여
차트객체 추가 --> 속성에서 객체명은 Chart2, 풋시스템이 적용된 차트와 동일아이디 부여
종목객체 추가 --> 속성에서 객체명은 MarketData1, Chart1종목과 동일종목으로 설정
차트객체 추가 --> 속성에서 객체명은 MarketData2, Chart2종목과 동일종목으로 설정
계좌객체 추가 --> 속성에서 객체명은 Account1, 주문낼 계좌번호 지정
var CallSignal;//콜 신호종류 저장할 변수
var CallVol = 1;//콜매수진입수량
var PutSignal;//풋 신호종류 저장할 변수
var PutVol = 1;//콜매수진입수량
function Main_OnStart()
{
CallSignal = 0;
S2 = 0;
}
//Chart1에서 신호발생
function Chart1_OnRiseSignal(Signal)
{
//매수진입신호발생
if (Signal.signalKind == 1)
{
CallSignal = 1;
if (PutSignal == 0)
{
//매도3호가로 콜 매수주문
Account1.OrderBuy(MarketData1.code, CallVol, MarketData1.Ask(3), 0);
}
if (PutSignal == 1)
{
PutSignal = 0;
//매도3호가로 풋 매도주문
Account1.OrderSell(MarketData2.code, PutVol, MarketData2.Bid(3), 0);
//매도3호가로 콜 매수주문
Account1.OrderBuy(MarketData1.code, CallVol, MarketData1.Ask(3), 0);
}
}
//매수포지션 청산신호 발생
if (CallSignal == 1 && Signal.signalKind == 2)
{
CallSignal = 0;
//매도3호가로 콜 매도주문
Account1.OrderSell(MarketData1.code, CallVol, MarketData1.Bid(3), 0);
}
}
//Chart2에서 신호발생
function Chart2_OnRiseSignal(Signal)
{
//매수신호 발생
if (Signal.signalKind == 1)
{
PutSignal = 1;
if (CallSignal == 0)
{
//매도3호가로 풋 매수주문
Account1.OrderBuy(MarketData2.code, PutVol, MarketData2.Ask(3), 0);
}
if (CallSignal == 1)
{
CallSignal = 0;
//매도3호가로 콜 매도주문
Account1.OrderSell(MarketData1.code, CallVol, MarketData1.Bid(3), 0);
//매도3호가로 풋 매수주문
Account1.OrderBuy(MarketData2.code, PutVol, MarketData2.Ask(3), 0);
}
}
//매수포지션 청산신호 발
if (PutSignal == 1 && Signal.signalKind == 2)
{
PutSignal = 0;
//매도3호가로 풋 매도주문
Account1.OrderSell(MarketData2.code, PutVol, MarketData2.Bid(3), 0);
}
}
즐거운 하루되세요
> 브라질산아나콘다 님이 쓴 글입니다.
> 제목 : 콜, 풋 매수처리
> 예스스팟 예제 부탁드립니다.
당일 콜에서 매수신호후 진입후 청산신호가 나오면 콜청산 과 풋진입 또는 콜 매수 신호중 풋 진입 신호가 나오면 풋진입 과 콜청산.
반대로 풋에서도 동일하게 적용. 풋에서 매수 진입 이후 청산 신호가 나오면 콜진입 또는 콜신호가 뜨면 콜진입 과 풋청산.
감사합니다.