예스스탁
예스스탁 답변
2015-12-04 17:01:25
안녕하세요
예스스탁입니다.
해당식 수식에 특별히 수정할 내용이 없습니다.
차트에서 신호가 발생하면 종목객체로 지정한 종목으로 주문이 나가게 되어 있습니다.
외부변수만 추가해 드립니다.
해당식은 차트에서 신호가 발생하면 주문이 됩니다.
차트에 적용된 식에서 당일청산 신호 발생하면 매수청산이나 매도청산이므로
자동으로 스팟에서 주문집행됩니다.
즉 식 자체가 포지션이나 데이를 구분하는 것은 아닙니다.
스크립트 객체화면 설정
차트객체 추가 --> 속성에서 객체명은 Chart1, 차트와 아이디 연결
종목객체 추가 --> 속성에서 객체명은 MarketData1, 속성에서 미니연결선물로 지정
계좌객체 추가 --> 속성에서 주문낼 계좌지정
입력변수 추가 --> 속성에서 변수명은 수량, 초기값 1, 데이터형 숫자
만약 주문시 잔고체크를 원하지 않으시면 2번식 사용하시면 됩니다.
1.
function Main_OnStart()
{
Main.MessageList("선물to미니_스팟_시작");
}
function Chart1_OnRiseSignal(Signal)
{
//매수신호 발생
if(Signal.signalKind == 1)
{
Main.MessageList("Buy_Signal");
//잔고셋팅
Account1.SetBalanceItem(Main.GetOrderCode(MarketData1.code), 0);
//잔고가 매수포지션이 아니면
if (Account1.Balance.position != 2)
{
//매도5호가로 2계약 매수주문
Account1.OrderBuy(Main.GetOrderCode(MarketData1.code),수량, MarketData1.Ask(5),0);
}
}
//매수청산신호발생
if(Signal.signalKind == 2)
{
Main.MessageList("ExitLong_Signal");
//잔고셋팅
Account1.SetBalanceItem(Main.GetOrderCode(MarketData1.code), 0);
//잔고가 매수포지션이면
if (Account1.Balance.position == 2)
{
//매수5호가로 잔고수량만큼만 매도주문
Account1.OrderSell(Main.GetOrderCode(MarketData1.code), 수량,MarketData1.Bid(5), 0);
}
}
//매도신호 발생
if(Signal.signalKind == 3)
{
Main.MessageList("Sell_Signal");
//잔고셋팅
Account1.SetBalanceItem(Main.GetOrderCode(MarketData1.code), 0);
//잔고가 매도포지션이 아니면
if (Account1.Balance.position != 1)
{
//매수5호가로 2계약 매도주문
Account1.OrderSell(Main.GetOrderCode(MarketData1.code),수량, MarketData1.Bid(5),0);
}
}
//매도청산신호발생
if (Signal.signalKind== 4)
{
Main.MessageList("ExitShort_Signal");
//잔고셋팅
Account1.SetBalanceItem(Main.GetOrderCode(MarketData1.code), 0);
//잔고가 매도포지션이면
if (Account1.Balance.position == 1)
{
//매도5호가로 잔고수량만큼만 매수주문
Account1.OrderBuy(Main.GetOrderCode(MarketData1.code), 수량,MarketData1.Ask(5), 0);
}
}
}
2.
function Main_OnStart()
{
Main.MessageList("선물to미니_스팟_시작");
}
function Chart1_OnRiseSignal(Signal)
{
//매수신호 발생
if(Signal.signalKind == 1)
{
Main.MessageList("Buy_Signal");
//매도5호가로 매수주문
Account1.OrderBuy(Main.GetOrderCode(MarketData1.code),수량, MarketData1.Ask(5),0);
}
//매수청산신호발생
if(Signal.signalKind == 2)
{
Main.MessageList("ExitLong_Signal");
//매수5호가로 매도주문
Account1.OrderSell(Main.GetOrderCode(MarketData1.code), 수량,MarketData1.Bid(5), 0);
}
//매도신호 발생
if(Signal.signalKind == 3)
{
Main.MessageList("Sell_Signal");
//잔고셋팅
//매수5호가로 매도주문
Account1.OrderSell(Main.GetOrderCode(MarketData1.code),수량, MarketData1.Bid(5),0);
}
//매도청산신호발생
if (Signal.signalKind== 4)
{
Main.MessageList("ExitShort_Signal");
//잔고셋팅
//매도5호가로 매수주문
Account1.OrderBuy(Main.GetOrderCode(MarketData1.code), 수량,MarketData1.Ask(5), 0);
}
}
즐거운 하루되세요
> mao 님이 쓴 글입니다.
> 제목 : 문의드림니다
> 수식 문의드림니다
선물신호를 이용하여 미니선물을 매매하고자 합니다
선물시스템 매수신호시 미니선물 매수진입하고, 매수청산시 미니선물 매수청산하고
선물시스템 매도신호시 미니선물 매도진입하고, 매도청산시 미니선물 매도청산하는
수식 부탁드림니다
아래 수식은 이전에 다른 분이 문의드려 작성해 주신건데
포지션시스템으로 작성된 것으로 알고 있읍니다
저는 데이당일매매를 하고자 하는데 아래 수식을 수정하여
선물신호를 이용하여 미니선물을 매매핳 수 있는 스팟수식 부탁 드림니다
수량은 외부변수로 만들어 주시면 좋겠습니다
부탁드림니다
//////////////////////////////////////////////////////////////////////////////////
function Main_OnStart()
{
Main.MessageList("선물to미니_스팟_시작");
}
functionChart1_OnRiseSignal(Signal)
{
//매수신호 발생
if(Signal.signalKind == 1)
{
Main.MessageList("Buy_Signal");
//잔고셋팅
Account1.SetBalanceItem(Main.GetOrderCode(MarketData1.code), 0);
//잔고가 매수포지션이 아니면
if (Account1.Balance.position != 2)
{
//매도5호가로 2계약 매수주문
Account1.OrderBuy(Main.GetOrderCode(MarketData1.code),2, MarketData1.Ask(5),0);
}
}
//매수청산신호발생
if(Signal.signalKind == 2)
{
Main.MessageList("ExitLong_Signal");
//잔고셋팅
Account1.SetBalanceItem(Main.GetOrderCode(MarketData1.code), 0);
//잔고가 매수포지션이면
if (Account1.Balance.position == 2)
{
//매수5호가로 잔고수량만큼만 매도주문
Account1.OrderSell(Main.GetOrderCode(MarketData1.code), Account1.Balance.count,MarketData1.Bid(5), 0);
}
}
//매도신호 발생
if(Signal.signalKind == 3)
{
Main.MessageList("Sell_Signal");
//잔고셋팅
Account1.SetBalanceItem(Main.GetOrderCode(MarketData1.code), 0);
//잔고가 매도포지션이 아니면
if (Account1.Balance.position != 1)
{
//매수5호가로 2계약 매도주문
Account1.OrderSell(Main.GetOrderCode(MarketData1.code),2, MarketData1.Bid(5),0);
}
}
//매도청산신호발생
if (Signal.signalKind== 4)
{
Main.MessageList("ExitShort_Signal");
//잔고셋팅
Account1.SetBalanceItem(Main.GetOrderCode(MarketData1.code), 0);
//잔고가 매도포지션이면
if (Account1.Balance.position == 1)
{
//매도5호가로 잔고수량만큼만 매수주문
Account1.OrderBuy(Main.GetOrderCode(MarketData1.code), Account1.Balance.count,MarketData1.Ask(5), 0);
}
}
}