첨부 이미지
그림1
자꾸 주문가능 수량 오류가 납니다ㅠㅠ
현제 메뉴얼의 예제 7번 진행중입니다.
먼저 수식이며
var Skind;
var Scode;
var Scount;
var Start;
function Main_OnStart()
{
Main.MessageLog("시작");
Start = 0;
}
function C1_OnRiseSignal(Signal)
{
Skind = Signal.signalKind; //완성신호종류
Scode = Signal.code; //완성신호 종목코드
Scount = Signal.count; //완성신호 주문수량
Main.ReqMarketData(Signal.code, 0);
}
function Main_OnRcvMarketData(MarketData)
{
var SSEobject = MarketData;
var dayma1 = C2.GetIndicatorData("이동평균 5_20_60", 1, 0);
var dayma2 = C2.GetIndicatorData("이동평균 5_20_60", 2, 0);
var dayma3 = C2.GetIndicatorData("이동평균 5_20_60", 3, 0);
var predayma1= C2.GetIndicatorData("이동평균 5_20_60", 1, 1);
var slowK = C2.GetIndicatorData("Stochastics", 1, 0);
if (Skind == 1
&& dayma1 > dayma2 && dayma2 > dayma3
&& dayma1 > predayma1 //5일 이평값이 바로 전 봉보다 크고
&& slowK <= 100)
{
SID = A1.OrderSell(Scode,Scount,SSEobject.Bid(2),0);
Main.MessageList(atTime()
," 매도진입(종목) : "
, Scode
," 신호명 : "
, Scount
, " 주문식별번호 : "
, SID
, " 현재가 : "
, SSEobject.current
);
Start = 1;
}
if (Start ==1 && Skind ==2)
{
SID = A1.OrderSell(Scode,Scount,SSEobject.Bid(2),0);
Main.MessageList(atTime()
," 매도진입(종목) : "
, Scode
," 신호명 : "
, Scount
, " 주문식별번호 : "
, SID
, " 현재가 : "
, SSEobject.current
);
}
//SSEobject 종목객체 삭제
Main.RemoveMarketData(SSEobject);
}
사진 첨부합니다.
답변 1
예스스탁
예스스탁 답변
2016-10-19 14:26:19
안녕하세요
예스스탁입니다.
작성하신 식에서는 계속 매도주문만 내게 되어 있습니다.
차트 매수신호 발생 --> 매도주문
차트 매수청산신호 발생 --> 매도주문
잔고에 수량에 없는상태에서 발생하므로 오류가 발생하는 것입니다.
즐거운 하루되세요
> 노르웨이 님이 쓴 글입니다.
> 제목 : 모의투자 주문가능수량 오류 원인을 알고 싶습니다
> 자꾸 주문가능 수량 오류가 납니다ㅠㅠ
현제 메뉴얼의 예제 7번 진행중입니다.
먼저 수식이며
var Skind;
var Scode;
var Scount;
var Start;
function Main_OnStart()
{
Main.MessageLog("시작");
Start = 0;
}
function C1_OnRiseSignal(Signal)
{
Skind = Signal.signalKind; //완성신호종류
Scode = Signal.code; //완성신호 종목코드
Scount = Signal.count; //완성신호 주문수량
Main.ReqMarketData(Signal.code, 0);
}
function Main_OnRcvMarketData(MarketData)
{
var SSEobject = MarketData;
var dayma1 = C2.GetIndicatorData("이동평균 5_20_60", 1, 0);
var dayma2 = C2.GetIndicatorData("이동평균 5_20_60", 2, 0);
var dayma3 = C2.GetIndicatorData("이동평균 5_20_60", 3, 0);
var predayma1= C2.GetIndicatorData("이동평균 5_20_60", 1, 1);
var slowK = C2.GetIndicatorData("Stochastics", 1, 0);
if (Skind == 1
&& dayma1 > dayma2 && dayma2 > dayma3
&& dayma1 > predayma1 //5일 이평값이 바로 전 봉보다 크고
&& slowK <= 100)
{
SID = A1.OrderSell(Scode,Scount,SSEobject.Bid(2),0);
Main.MessageList(atTime()
," 매도진입(종목) : "
, Scode
," 신호명 : "
, Scount
, " 주문식별번호 : "
, SID
, " 현재가 : "
, SSEobject.current
);
Start = 1;
}
if (Start ==1 && Skind ==2)
{
SID = A1.OrderSell(Scode,Scount,SSEobject.Bid(2),0);
Main.MessageList(atTime()
," 매도진입(종목) : "
, Scode
," 신호명 : "
, Scount
, " 주문식별번호 : "
, SID
, " 현재가 : "
, SSEobject.current
);
}
//SSEobject 종목객체 삭제
Main.RemoveMarketData(SSEobject);
}
사진 첨부합니다.