예스스탁
예스스탁 답변
2015-08-05 17:03:02
안녕하세요
예스스탁입니다.
1. 정상적인건가요? (위탁계좌로 모의거래중이기 때문에 에러가 나는지요?)
위탁계좌이면 에러가 발생합니다.
선물종목은 선물옵션계좌이어야 합니다.
모의투자로 접속하시면 가상모의계좌로 선물 주문하실수 있습니다.
로그인하실때 설정화면에서 모의투자로 지정하시고
접속하셔서 모의투자신청후에 사용하시면 됩니다.
다만 하이투자증권은 지수선물만 가능합니다. 미니선물은 모의투자를 제공하고 있지 않습니다
첨부하신 그림은 계좌가 선옵계좌가 아니어서 발생하는 메세지로
정상적인 메세지입니다.
2. 주문낼때..어떤건 Ask를 쓰고, 어떤건 Bid를 쓰는데, 특별히 다르게 쓰는 이유가 있나요?
Ask는 매도호가, Bid는 매수호가입니다.
주문낼때 반대쪽 호가에 주문을 내야 체결이 빨리되므로
매수주문을 낼때는 주문가격을 매도호가로
매수주문을 낼때는 주문가격을 매수호가로 지정한 것뿐입니다.
3.주문을 저장해서..다음날 스팟시작할때 유지되고 있는 전포지션을 읽어올 필요가 꼭 있나요?
(이 기능이 필요할 것 같아서 짜집기하여 첨가하였지만요....)
이런것(UserValue) 필요없이, 그냥 신호오는데로 처리만 하면 되는건 아닌지 모르겠습니다.
위 내용은 사용자분이 전략의 내용에 따라서
처리하셔야 하는 부분입니다.
4
오버를 하는 식이면
스팟시작할때 잔고의 포지션을 읽어와 처리하셔야 합니다.
그래야 잔고포지션과 차트포지션이 다를때 처리를 대응을 하실수 있습나다.
5
예 미니연결선물로 하시면 해당 데이터는 근월물이 계속 연결되서 제공되므로
재설정 하실 필요가 없습니다.
6.
전화로 말씀드린 부분과 같이
간략히 해서 식 올려드립니다.
주문접수응답은 필요가 없어 삭제했습니다.
스크립트 객체설정창에
차트객체 추가 --> 속성에서 객체명은 Chart1,차트아이디 연결
계좌객게 추가 --> 속성에서 객체명은 Account1, 계좌번호 지정
종목객체 추가 --> 속성에서 주문낼 종목으로 지정
모의투자는 주가지수 선물만 되므로
차트에 연계해서 주문을 자동으로 내보고자 하시면
연결선물로 지정하셔서 테스트 후에 이후에 실전에서는 미니선물로
변경해 주시면 됩니다.
function Main_OnStart()
{
Main.MessageList("시작");
}
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),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), Signal.count, MarketData1.Ask(5), 0);
}
}
}
즐거운 하루되세요.
> 체로키 님이 쓴 글입니다.
> 제목 : 문의드립니다.
> ===========================================================
추가: 2015.8.4.
7.30. 질문올리고 나서....
답변주시길 마냥 기다리는 것보다 좀 더 공부해보자는 생각에.......^^
그동안 올라온 글들을 참고로 주말에 다음과 같이 작성하여 어제오늘 이틀간...모의거래를 하여보았습니다.
어제는 신호가 없어서, 점검이 안되었구요...
오늘은 스팟걸기전 매도포지션이 있어서, 아침에 매수(매도포지션청산)1번, 신규 매수포지션1번이 발생하였습니다....
그런데, 첨부한 그림과 같은 메세지가 뜨네요...
스팟적용 수식내용과 질문내용은 아래와 같습니다^^.
var ChartName = "Chart1";
var d = new Date();
var YYYYMMDD = d.getFullYear()*10000+(d.getMonth()+1)*d.getDate();
var Pst,EntryVol,EtryCode,EntryID,EntryNum;
function Main_OnStart()
{
Main.MessageLog("<<<<<< "+d.getHours()+":"+d.getMinutes()+":"+d.getSeconds()+ChartName+"지수선물신호 미니 전환스팟 >>>>>>");
Pst = 0;
var GetDate = Main.GetUserValue("S1_EntryDate");
var GetPst = Main.GetUserValue("S1_Pst");
var GetEntryCode = Main.GetUserValue("S1_EntryCode");
var GetEntryVol = Main.GetUserValue("S1_EntryVol");
var GetEntryNum = Main.GetUserValue("S1_EntryNum");
//직전종료시 매수나 매도포지션이었으면 // 포지션전략이라 당일날자 체크하는 부분을 제외함
if(Pst == 1 || Pst == -1)
{
Pst = GetPst;
EntryCode = GetEntryCode;
EntryVol = GetEntryVol;
EntryNum = GetEntryNum;
}
}
function Main_Onclose()
{
Main.SetUserValue("S1_EntryDate",EntryDate);
Main.SetUserValue("S1_Pst",Pst);
Main.SetUserValue("S1_EntryVol",EntryVol);
Main.SetUserValue("S1_EntryCode",EntryCode);
Main.SetUserValue("S1_EntryNum",EntryNum);
}
function Chart1_OnRiseSignal(Signal)
{
if (Signal.signalKind == 1)
{
Main.MessageList("Buy_Signal");
Account1.OrderBuy(Main.GetOrderCode(MarketData1.code), Signal.count, MarketData1.Ask(5), 0);
Pst = 1;
EntryDate = YYYYMMDD;
EntryCode = Main.GetOrderCode(MarketData1.code);
EntryVol = Signal.count;
EntryID = Account1.OrderBuy(EntryCode,EntryVol,MarketData1.GetAsk(EntryCode,5),0); // 이부분이 맞게 작성되었는지요?
}
if (Signal.signalKind == 2)
{
Main.MessageList("Exitlong_Signal");
Account1.OrderSell(Main.GetOrderCode(MarketData1.code), Signal.count, MarketData1.Bid(5), 0); // Ask 대신 Bid로 쓴 특별한 이유가 있는지요?
Pst = 0;
EntryCode = "";
EntryVol = 0;
EntryNum = 0;
}
if (Signal.signalKind == 3)
{
Main.MessageList("Sell_Signal");
Account1.OrderSell(Main.GetOrderCode(MarketData1.code), Signal.count, MarketData1.Bid(5), 0);
Pst = -1;
EntryDate = YYYYMMDD;
EntryCode = Main.GetOrderCode(MarketData1.code);
EntryVol = Signal.count;
EntryID = Account1.OrderSell(EntryCode,EntryVol,MarketData1.GetBid(EntryCode,5),0); // 이부분이 맞게 작성되었는지요?
}
if (Signal.signalKind == 4)
{
Main.MessageList("ExitShort_Signal");
Account1.OrderBuy(Main.GetOrderCode(MarketData1.code), Signal.count, MarketData1.Ask(5), 0); // Bid 대신 Ask로 쓴 특별한 이유가 있는지요?
Pst = 0;
EntryCode = "";
EntryVol = 0;
EntryNum = 0;
}
}
function Main_OnOrderResponse(OrderResponse) // 이수식 전체적으로 볼때 꼭 필요한지요?
{
if (EntryID == OrderResponse.orderNum)
{
EntryNum = OrderResponse.orderNum;
}
}
지수선물신호를 받아, 미니선물을 거래하는 스팟식을 작성하고자 합니다.
포지션전략식이라.....값들을 저장하여 다음날 읽어오도록 하고 있습니다.(그래야될것 같기도해서요)
지금은 스팟운영되는 조건이
1.선물계좌(하이투자) 개설전이라....계좌에 일단 위탁계좌(하이투자)를 지정하고,
2.모의거래 중이며,
3.포지션전략이라...당일청산이 아닙니다.
그런데...첨부한 그림과 같이 에러가 나는데....
질문의 요지는 아래와 같습니다...
1. 정상적인건가요? (선물옵션계좌가 아니라 위탁계좌로 모의거래중이기 때문에 메세지 나 주문상태가 그림과 같이 나타나는지요?)
2. 전반적인 수식 점검도 좀 부탁드립니다....^^ (제가 이것저것 합쳐서 짜집기한거라서요)
- 주문낼때..어떤건 Ask를 쓰고, 어떤건 Bid를 쓰는데, 특별히 다르게 쓰는 이유가 있나요?
- 주문을 저장해서..다음날 스팟시작할때 유지되고 있는 전포지션을 읽어올 필요가 꼭 있나요? (이 기능이 필요할 것 같아서 짜집기하여 첨가하였지만요....)
이런것(UserValue) 필요없이, 그냥 신호오는데로 처리만 하면 되는건 아닌지 모르겠습니다. 포지션전략이라도 그냥 신경 안쓰고 YT에서 매매신호만 받아와서 스팟에서 처리하면 되는 건 아닌지요......손매매로 지수선물 YT신호와 맞춰놓고 시작하면 문제가 없을수도 있을 것 같기도 하구요....^^
- EntryID를 읽어올때...모의라서 거래가 완성되질 않아 GetAsk...등에 에러가 나는지요?
- 주문상태에 "계좌번호 및 종목코드값이 서로 불일치"라는 메세지가 위탁계좌연결한 모의거래여서 그런건지요?
3. 기존에 보유한 매수포지션이 있을 경우, 그 이후 스팟이 실행되어 Signal.signalKind == 2 가 발생되면, 기존매수포지션을 청산하는지, 아니면 새로운 매도포지션을 가지게 되는지요?
(스팟은 매도주문을 내나, 실계좌에는 매수포지션이 있어서 그게 청산정리되어서 문제가 되질 않을까요?)
4. 미니선물만기일에 미청산된 보유포지션이 있어서 롤오버를 할 경우, YT식에서 만기일날 청산하고 다음날 새로운 월물 시초가에 주문하는 방법으로 해결해야만 하나요? (YT검색해 보니 그런내용과 관련 수식이 있던데요...원신호가 발생되는 YT수식에 그 내용을 적용만 하면 스팟식에서는 신경 안써도 되는지요?)
5. 미니선물을 거래할때, 스크립트객체에서 종목객체에 미니연결선물로 설정하면, 만기일 이후 재설정 등에 신경안써도 되는지요?
6. 선물신호 1계약당 미니선물 2계약으로 거래할 수 있게 수식도 좀 부탁드립니다.
바쁘신데...질문이 많네요...ㅠㅠ(죄송)
감사합니다...^^
좋은 하루 되세요.
=================================================================================
아래부터는 윗부분 글 첨부 전에 작성한 글입니다...
=================================================================================
2015.7.30.
수고 많으십니다.^^
다름이 아니오라,
하이투자증권 YT로, 연결지수선물 차트에서 매수매도진입 및 청산신호를 발생시켜서....
이 신호를 이용하여 새로이 상장한 미니선물을 그대로 거래하고 싶은데요....
수식을 작성할려니....에러나고... YT언어랑 달라서..참 어렵네요...ㅠㅠ
이번달 교대지점에서 한 강의도 열심히 듣긴들었는데...처음부터 제가 작성해 볼려니..
너무 어렵네요....ㅠㅠ
혹시 스팟 수식 (연결선물지수 신호발생시, 미니선물로 거래) 있으시면....부탁드려요...^^
1.신호발생 : 연결선물지수
2.실거래 : 미니선물
주의사항도 있으시면 간단히 알려주시면....감사하겠습니다...^^
좋은 하루 되셔요...^^
================================================================================