아래수식에서
var T;
function Main_OnStart()
{
T = 0;
Main.MessageLog("시작");
OrderCode = Main.GetOrderCode(KP.code);
}
function C1_OnRiseIncompleteSignal(IncompleteSignal)
{
Main.MessageLog("미완성신호/"+IncompleteSignal.signalKind);
A1.SetBalance(Main.GetOrderCode(IncompleteSignal.code))
if (T <= 0 && (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,5000);
}
if (T >= 0 && A1.Balance.position == 1 && IncompleteSignal.signalKind == 3)
{
T = 0;
Main.KillTimer(1);
Main.SetTimer(2,5000);
}
if (T >= 0 && (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,5000);
}
if (T <= 0 && A1.Balance.position == 2 && IncompleteSignal.signalKind == 1)
{
T = 0;
Main.KillTimer(2);
Main.SetTimer(1,5000);
}
}
function Main_OnTimer(nEventID)
{
//마지막봉 미완성 신호정보 셋팅
var Incom = C1.GetIncompleteSignal();
if (nEventID == 1 && T == 1 && Incom[0] == 1)
{
Main.KillTimer(1);
A1.OrderBuy(KP.code, VV, KP.Ask(2),2);
Main.MessageLog("매수진입");
}
if (nEventID == 1 && T == 0 )
{
Main.KillTimer(1);
Main.MessageLog("중복매수진입금지");
}
if (nEventID == 2 && T == -1 && Incom[0] == 3)
{
Main.KillTimer(2);
A1.OrderSell(KP.code, VV, KP.Bid(2),2);
Main.MessageLog("매도진입");
}
if (nEventID == 2 && T == 0)
{
Main.KillTimer(2);
Main.MessageLog("중복매도진입금지");
}
}
위 수식을 적용 한 결과
TypeError : Cannot read property '0' of null 과 같이 에러메세지가 뜸니다.
if (nEventID == 1 && T == 1 && Incom[0] == 1)
if (nEventID == 2 && T == -1 && && Incom[0] == 3) 에서 오류가 발생 되는것 깉습니다
바르게 수정해 주시면 감사 하겠습니다.
답변 1
예스스탁
예스스탁 답변
2019-03-14 09:19:26
안녕하세요
예스스탁입니다.
객체의 함수지정에 오류가 있었습니다.
수정한 식입니다.
var T;
function Main_OnStart()
{
T = 0;
Main.MessageLog("시작");
OrderCode = Main.GetOrderCode(KP.code);
}
function C1_OnRiseIncompleteSignal(IncompleteSignal)
{
Main.MessageLog("미완성신호/"+IncompleteSignal.signalKind);
A1.SetBalance(Main.GetOrderCode(IncompleteSignal.code))
if (T <= 0 && (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,5000);
}
if (T >= 0 && A1.Balance.position == 1 && IncompleteSignal.signalKind == 3)
{
T = 0;
Main.KillTimer(1);
Main.SetTimer(2,5000);
}
if (T >= 0 && (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,5000);
}
if (T <= 0 && A1.Balance.position == 2 && IncompleteSignal.signalKind == 1)
{
T = 0;
Main.KillTimer(2);
Main.SetTimer(1,5000);
}
}
function Main_OnTimer(nEventID)
{
//마지막봉 미완성 신호정보 셋팅
var Incom = C1.GetIncompleteSignal();
if (nEventID == 1 && T == 1 && Incom[0].signalKind == 1)
{
Main.KillTimer(1);
A1.OrderBuy(KP.code, VV, KP.Ask(2),2);
Main.MessageLog("매수진입");
}
if (nEventID == 1 && T == 0 )
{
Main.KillTimer(1);
Main.MessageLog("중복매수진입금지");
}
if (nEventID == 2 && T == -1 && Incom[0].signalKind == 3)
{
Main.KillTimer(2);
A1.OrderSell(KP.code, VV, KP.Bid(2),2);
Main.MessageLog("매도진입");
}
if (nEventID == 2 && T == 0)
{
Main.KillTimer(2);
Main.MessageLog("중복매도진입금지");
}
}
즐거운 하루되세요
> 너무조아 님이 쓴 글입니다.
> 제목 : 에러가 발생하는데....
> 아래수식에서
var T;
function Main_OnStart()
{
T = 0;
Main.MessageLog("시작");
OrderCode = Main.GetOrderCode(KP.code);
}
function C1_OnRiseIncompleteSignal(IncompleteSignal)
{
Main.MessageLog("미완성신호/"+IncompleteSignal.signalKind);
A1.SetBalance(Main.GetOrderCode(IncompleteSignal.code))
if (T <= 0 && (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,5000);
}
if (T >= 0 && A1.Balance.position == 1 && IncompleteSignal.signalKind == 3)
{
T = 0;
Main.KillTimer(1);
Main.SetTimer(2,5000);
}
if (T >= 0 && (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,5000);
}
if (T <= 0 && A1.Balance.position == 2 && IncompleteSignal.signalKind == 1)
{
T = 0;
Main.KillTimer(2);
Main.SetTimer(1,5000);
}
}
function Main_OnTimer(nEventID)
{
//마지막봉 미완성 신호정보 셋팅
var Incom = C1.GetIncompleteSignal();
if (nEventID == 1 && T == 1 && Incom[0] == 1)
{
Main.KillTimer(1);
A1.OrderBuy(KP.code, VV, KP.Ask(2),2);
Main.MessageLog("매수진입");
}
if (nEventID == 1 && T == 0 )
{
Main.KillTimer(1);
Main.MessageLog("중복매수진입금지");
}
if (nEventID == 2 && T == -1 && Incom[0] == 3)
{
Main.KillTimer(2);
A1.OrderSell(KP.code, VV, KP.Bid(2),2);
Main.MessageLog("매도진입");
}
if (nEventID == 2 && T == 0)
{
Main.KillTimer(2);
Main.MessageLog("중복매도진입금지");
}
}
위 수식을 적용 한 결과
TypeError : Cannot read property '0' of null 과 같이 에러메세지가 뜸니다.
if (nEventID == 1 && T == 1 && Incom[0] == 1)
if (nEventID == 2 && T == -1 && && Incom[0] == 3) 에서 오류가 발생 되는것 깉습니다
바르게 수정해 주시면 감사 하겠습니다.