해당 차트아이디는 동일한것으로 확인되었습니다.
첨부파일에 스크린샷을 올렸습니다.
왜 신호완성 로그가 안찍히는지,
확인부탁드립니다.
감사합니다.
---------------------------------------------------
안녕하세요
예스스탁입니다.
차트에서 신호가 발생했는데
신호완성이라는 메세지로그가 동작하지 않는다면
차트객체와 차트가 연결이 되어 있지 않기 때문입니다.
차트객체 속성화면에서 차트아이디와
신호를 받고자하는 차트의 아이디를 동일하게 부여하셔야 합니다.
대소문자를 엄격히 구분하므로 대소문자 유의하셔서 지정해 보시기 바랍니다.
즐거운 하루되세요
> 별이777 님이 쓴 글입니다.
> 제목 : 체결 문의
>
선물신호참조해서, 스팟으로 주문나가는데요.
선물신호에서 신호가 나왔는데도.
스팟으로 주문이 안나갑니다.
스크립트메세지에는 '시작' 만 찍히고, 그뒤는 안찍힙니다.
그뒤 아무런 로그도 없습니다.
"신호완성" 로그가 안찍힙니다.
답변 부탁드립니다.
yt 선물신호는 '시험'모드로 적용해놓은상태이고,
예스스팟은 '자동'모드를 적용해놓은 상태입니다.
yt는 선물계좌,
스폿은 현물계좌로 세팅한 상태입니다.
스팟로직은 아래와 같습니다.
var ID;
var Number;
function Main_OnOrderResponse(OrderResponse)
{
if (OrderResponse.orderID == ID)
{
Number = OrderResponse.orderNum;
Main.SetTimer(1, 60000);
}
}
function Main_OnTimer(nEventID)
{
if (nEventID == 1)
{
A1.OrderReplacePrice(Number,F2.Ask(2));
Main.KillTimer(1);
}
}
function Main_OnNotifyFill(NotifyFill)
{
if (NotifyFill.orderNum == Number)
Main.KillTimer(1);
}
var Position;
var OrdeCode;
var BID;
var SID;
var Snum;
var Bnum;
var BuyFill;
var SellFill;
function Main_OnStart()
{
Main.MessageLog("시작");
Position = 0;
OrdeCode = Main.GetOrderCode(F2.code);
// OrdeCode = Option.GetATMCallRecent(0);
}
// if (Signal.signalKind == 1)
// {
// ID = Main.OrderBuy(A2231.number, Option.GetATMCallRecent(0), 1, 0, 1);
// }
//A1.Orderbuy(Option.GetATMCallRecent(0),1,0,1)
function C1_OnRiseSignal(Signal)
{
Main.MessageLog("신호완성/"+Signal.signalKind);
// Vol = A1.balance / F2.current / 20
Vol = 1;
if (Signal.signalKind == 1 )
{
Position = 1;
BID = A1.OrderBuy(OrdeCode, Vol,F2.current, 0);
// BID = A1.OrderBuy(OrdeCode, Signal.count,F1.current, 0);
// BID = A1.Orderbuy(Option.GetATMCallRecent(0),1,0,1)
Main.MessageLog("매수진입");
BuyFill = 0;
}
if (Position == 1 && Signal.signalKind == 2 )
{
if (BuyFill == 1)
{
A1.OrderSell(OrdeCode, Vol,F2.Bid(2), 0);
Main.MessageLog("매수청산실행");
}
if (BuyFill == 0)
{
A1.OrderCancel(BNum);
Main.MessageLog("매수청산취소");
}
}
if (Signal.signalKind == 3 )
{
Position = -1;
SellFill = 0;
SID = A1.OrderSell(OrdeCode, Vol, F2.current, 0);
Main.MessageLog("매도진입");
}
if (Position == -1 && Signal.signalKind == 4 )
{
if (SellFill == 1)
{
A1.OrderBuy(OrdeCode, Vol,F2.Ask(2), 0);
Main.MessageLog("매도청산");
}
if (SellFill == 0)
{
A1.OrderCancel(SNum);
Main.MessageLog("매도청산취소");
}
}
}
function Main_OnOrderResponse(OrderResponse)
{
if (Position == 1 && OrderResponse.orderID == BID)
{
BNum = OrderResponse.orderNum;
}
if (Position == -1 && OrderResponse.orderID == SID)
{
SNum = OrderResponse.orderNum;
}
}
function Main_OnNotifyFill(NotifyFill)
{
if (Position == 1 && NotifyFill.orderNum == BNum)
{
BuyFill = 1;
}
if (Position == -1 && NotifyFill.orderNum == SNum)
{
SellFill = 1;
}
}
답변 1
예스스탁
예스스탁 답변
2013-01-21 14:23:53
> 별이777 님이 쓴 글입니다.
> 제목 : 체결문의 (재문의)
>
해당 차트아이디는 동일한것으로 확인되었습니다.
첨부파일에 스크린샷을 올렸습니다.
왜 신호완성 로그가 안찍히는지,
확인부탁드립니다.
감사합니다.
---------------------------------------------------
안녕하세요
예스스탁입니다.
차트에서 신호가 발생했는데
신호완성이라는 메세지로그가 동작하지 않는다면
차트객체와 차트가 연결이 되어 있지 않기 때문입니다.
차트객체 속성화면에서 차트아이디와
신호를 받고자하는 차트의 아이디를 동일하게 부여하셔야 합니다.
대소문자를 엄격히 구분하므로 대소문자 유의하셔서 지정해 보시기 바랍니다.
즐거운 하루되세요
> 별이777 님이 쓴 글입니다.
> 제목 : 체결 문의
>
선물신호참조해서, 스팟으로 주문나가는데요.
선물신호에서 신호가 나왔는데도.
스팟으로 주문이 안나갑니다.
스크립트메세지에는 '시작' 만 찍히고, 그뒤는 안찍힙니다.
그뒤 아무런 로그도 없습니다.
"신호완성" 로그가 안찍힙니다.
답변 부탁드립니다.
yt 선물신호는 '시험'모드로 적용해놓은상태이고,
예스스팟은 '자동'모드를 적용해놓은 상태입니다.
yt는 선물계좌,
스폿은 현물계좌로 세팅한 상태입니다.
스팟로직은 아래와 같습니다.
var ID;
var Number;
function Main_OnOrderResponse(OrderResponse)
{
if (OrderResponse.orderID == ID)
{
Number = OrderResponse.orderNum;
Main.SetTimer(1, 60000);
}
}
function Main_OnTimer(nEventID)
{
if (nEventID == 1)
{
A1.OrderReplacePrice(Number,F2.Ask(2));
Main.KillTimer(1);
}
}
function Main_OnNotifyFill(NotifyFill)
{
if (NotifyFill.orderNum == Number)
Main.KillTimer(1);
}
var Position;
var OrdeCode;
var BID;
var SID;
var Snum;
var Bnum;
var BuyFill;
var SellFill;
function Main_OnStart()
{
Main.MessageLog("시작");
Position = 0;
OrdeCode = Main.GetOrderCode(F2.code);
// OrdeCode = Option.GetATMCallRecent(0);
}
// if (Signal.signalKind == 1)
// {
// ID = Main.OrderBuy(A2231.number, Option.GetATMCallRecent(0), 1, 0, 1);
// }
//A1.Orderbuy(Option.GetATMCallRecent(0),1,0,1)
function C1_OnRiseSignal(Signal)
{
Main.MessageLog("신호완성/"+Signal.signalKind);
// Vol = A1.balance / F2.current / 20
Vol = 1;
if (Signal.signalKind == 1 )
{
Position = 1;
BID = A1.OrderBuy(OrdeCode, Vol,F2.current, 0);
// BID = A1.OrderBuy(OrdeCode, Signal.count,F1.current, 0);
// BID = A1.Orderbuy(Option.GetATMCallRecent(0),1,0,1)
Main.MessageLog("매수진입");
BuyFill = 0;
}
if (Position == 1 && Signal.signalKind == 2 )
{
if (BuyFill == 1)
{
A1.OrderSell(OrdeCode, Vol,F2.Bid(2), 0);
Main.MessageLog("매수청산실행");
}
if (BuyFill == 0)
{
A1.OrderCancel(BNum);
Main.MessageLog("매수청산취소");
}
}
if (Signal.signalKind == 3 )
{
Position = -1;
SellFill = 0;
SID = A1.OrderSell(OrdeCode, Vol, F2.current, 0);
Main.MessageLog("매도진입");
}
if (Position == -1 && Signal.signalKind == 4 )
{
if (SellFill == 1)
{
A1.OrderBuy(OrdeCode, Vol,F2.Ask(2), 0);
Main.MessageLog("매도청산");
}
if (SellFill == 0)
{
A1.OrderCancel(SNum);
Main.MessageLog("매도청산취소");
}
}
}
function Main_OnOrderResponse(OrderResponse)
{
if (Position == 1 && OrderResponse.orderID == BID)
{
BNum = OrderResponse.orderNum;
}
if (Position == -1 && OrderResponse.orderID == SID)
{
SNum = OrderResponse.orderNum;
}
}
function Main_OnNotifyFill(NotifyFill)
{
if (Position == 1 && NotifyFill.orderNum == BNum)
{
BuyFill = 1;
}
if (Position == -1 && NotifyFill.orderNum == SNum)
{
SellFill = 1;
}
}