새해 복 많이 받으십시요!!!!!
지난 한 해에도 변함없이 성심 것 답변 해 주신데 대하여 감사드립니다.
NO. 1500 의 2 번 사항에 대한 추가 질문드립니다.
미완성신호가 발생하고 조건에 부합하여
Main.SetTimer(1,10000); 또는 Main.SetTimer(2,10000); 의 타임어가 작동 하면 미완성신호가 중도에 소멸하여도 타임어는 계속 진행하게 됩니다.
이 때 미완성신호가 중도에 소멸(null을 반환) 하면 타임어도 중단 되도록 수식을 작성하여 주시면 대단히 감사 하겠습니다.
답변 1
예스스탁
예스스탁 답변
2017-01-11 17:29:17
안녕하세요
예스스탁입니다.
타이머 동작 후 주문시
마지막봉 미완성 신호상태가 매수나 매도로 유지중일때만
주문이 집행되게 추가했습니다.
var T;
function Main_OnStart()
{
T = 0;
Main.MessageList("시작");
OrderCode = Main.GetOrderCode(KP.code);
}
function C1_OnRiseIncompleteSignal(IncompleteSignal)
{
Main.MessageList("미완성신호발생/" + IncompleteSignal.signalKind);
A1.SetBalance(Main.GetOrderCode(IncompleteSignal.code))
if ((A1.Balance.position == 1 || A1.Balance.position == 0) && IncompleteSignal.signalKind == 1)
{
T = 1;
if (A1.Balance.position == 0)
VV = 1;
else
VV = 2;
Main.SetTimer(1,10000);
}
if ( A1.Balance.position == 1 && IncompleteSignal.signalKind == 3)
{
T = 0;
Main.KillTimer(1);
Main.SetTimer(2,10000);
}
if ((A1.Balance.position == 2 || A1.Balance.position == 0) && IncompleteSignal.signalKind == 3)
{
T = -1;
if(A1.Balance.position == 0)
VV = 1;
else
VV = 2;
Main.SetTimer(2,10000);
}
if (A1.Balance.position == 2 && IncompleteSignal.signalKind == 1)
{
T = 0;
Main.KillTimer(2);
Main.SetTimer(1,10000);
}
}
Chart1.()
function Main_OnTimer(nEventID)
{
//마지막봉 미완성 신호정보 셋팅
var Incom = Chart1.GetIncompleteSignal();
if (nEventID == 1 && T == 1)
{
Main.MessageLog("매수진입");
Main.KillTimer(1);
if (VV >= 1 && VV <= 2 && Incom[0].signalKind == 1)
{
A1.OrderBuy(KP.code, 1, KP.Ask(5),2);
}
if (VV == 2)
{
Main.SetTimer(11,5000);
}
}
if (nEventID == 1 && T == 0)
{
Main.KillTimer(1);
Main.MessageLog("중복매수진입금지");
}
if (nEventID == 2 && T == -1)
{
Main.MessageLog("매도진입");
Main.KillTimer(2);
if (VV >= 1 && VV <= 2 && Incom[0].signalKind == 3)
{
A1.OrderSell(KP.code, 1, KP.Bid(5),2);
}
if (VV == 2)
{
Main.SetTimer(22,5000);
}
}
if (nEventID == 2 && T == 0)
{
Main.KillTimer(2);
Main.MessageLog("중복매도진입금지");
}
if (nEventID == 11 && Incom[0].signalKind == 1)
{
Main.KillTimer(11);
A1.OrderBuy(KP.code, 1, KP.Ask(5),2);
}
if (nEventID == 22 && Incom[0].signalKind == 3)
{
Main.KillTimer(22);
A1.OrderSell(KP.code, 1, KP.Bid(5),2);
}
}
즐거운 하루되세요
> 너무조아 님이 쓴 글입니다.
> 제목 : 새해 복 많이 받으십시요!!!
> 새해 복 많이 받으십시요!!!!!
지난 한 해에도 변함없이 성심 것 답변 해 주신데 대하여 감사드립니다.
NO. 1500 의 2 번 사항에 대한 추가 질문드립니다.
미완성신호가 발생하고 조건에 부합하여
Main.SetTimer(1,10000); 또는 Main.SetTimer(2,10000); 의 타임어가 작동 하면 미완성신호가 중도에 소멸하여도 타임어는 계속 진행하게 됩니다.
이 때 미완성신호가 중도에 소멸(null을 반환) 하면 타임어도 중단 되도록 수식을 작성하여 주시면 대단히 감사 하겠습니다.