아래수식에서 매수 금액을 n 만큼 지정할수 있게 도와주세요
부탁드려요 머리가 안 돌아가 이것 저것 짜집기해도 안 되네요
//스팟 첫 실행시
function Main_OnStart()
{
//1번 타이머, 60초
Main.SetTimer(1, 5000);
}
function Main_OnTimer(nEventID)
{
if (nEventID == 1)
{
//종목검색 수행
Main.ReqPowerSearch("3")
}
}
//종목검색 완료
function Main_OnRcvItemList(aItemList, nCount)
{
//1종목 이상 검색되면
if (nCount >= 1)
{
//리스트 첫종목부터 마지막종목까지 순차적으로
//1번 타이머 동작
for (var i = 0; i < nCount; i++)
{
//잔고를 셋팅
Account1.SetBalance(aItemList[i],0);
//보유수량이 없으면
if (Account1.Balance.count == 0)
{
//매수주문
Account1.OrderBuy(aItemList[i], 1,0,1);
}
}
}
}
답변 1
예스스탁
예스스탁 답변
2022-09-15 14:50:23.0
안녕하세요
예스스탁입니다.
금액을 지정해 주문하기 위해서는
수량계산을 하기 위해 검색된 종목의 종목객체들이 필요합니다.
아래 내용을 참고하셔서 수정보완해 사용하시기 바랍니다.
아래 흐름으로 동작합니다.
종목검색 --> 검색된 종목 중 스팟시작 후 주문내지 않은 종목만 선별(OrderList)
--> OrderList의 종목에 대해 종목객체 생성(MK)
--> 종목객체 생성되면 매도1호가로 금액을 나누어 수량산정해 주문
기준식이 시장가로 주문되게 되어 있어
수량산정은 매도1호가로 하고 주문은 시장가로 집행됩니다.
Account1.OrderBuy(MarketData.code,Math.floor(n/ MarketData.Ask(1)),MarketData.Ask(1),0);
지정가로 주문하고자 하시면 주문함수 내용을 위와 같이 변경하시면 됩니다.
var 타이머간격 = 60;//초
var OrderList = [];
var MKList = [];
var req;
function Main_OnStart()
{
//1번 타이머, 60초
Main.SetTimer(1, 타이머간격*1000);
}
function Main_OnTimer(nEventID)
{
if (nEventID == 1)
{
//종목검색 수행
Main.ReqPowerSearch("3")
}
if (nEventID == 2)
{
Main.ReqMarketData(OrderList[req]);
}
}
function Main_OnRcvItemList(aItemList, nCount)
{
Main.KillTimer(1);
OrderList = [];
if (nCount >= 1)
{
if (MKList.length == 0)
{
OrderList = aItemList;
}
else
{
for (var a = 0; a < nCount; a++)
{
var Add = true;
for (var b = 0; b < MKList.length; b++)
{
if (aItemList[a] == MKList[b].code)
{
Add = false;
}
}
if (Add == true)
{
OrderList.push(aItemList[a]);
}
}
}
}
if (OrderList.length == 0)
{
Main.SetTimer(1, 타이머간격*1000);
}
else
{
req = 0;
Main.ReqMarketData(OrderList[req]);
}
}
function Main_OnRcvMarketData(MarketData)
{
if (MarketData.code == OrderList[req])
{
MKList.push(MarketData);
Account1.OrderBuy(MarketData.code,Math.floor(n/ MarketData.Ask(1)),0,1);
req = req+1;
if (req < OrderList.length)
{
var aa = Main.ReqMarketData(OrderList[req]);
if (aa == -1)
{
Main.SetTimer(2, 15000);
}
}
else
{
Main.SetTimer(1, 타이머간격*1000);
}
}
}
즐거운 하루되세요
> 아무다 님이 쓴 글입니다.
> 제목 : 부탁드려요
> 아래수식에서 매수 금액을 n 만큼 지정할수 있게 도와주세요
부탁드려요 머리가 안 돌아가 이것 저것 짜집기해도 안 되네요
//스팟 첫 실행시
function Main_OnStart()
{
//1번 타이머, 60초
Main.SetTimer(1, 5000);
}
function Main_OnTimer(nEventID)
{
if (nEventID == 1)
{
//종목검색 수행
Main.ReqPowerSearch("3")
}
}
//종목검색 완료
function Main_OnRcvItemList(aItemList, nCount)
{
//1종목 이상 검색되면
if (nCount >= 1)
{
//리스트 첫종목부터 마지막종목까지 순차적으로
//1번 타이머 동작
for (var i = 0; i < nCount; i++)
{
//잔고를 셋팅
Account1.SetBalance(aItemList[i],0);
//보유수량이 없으면
if (Account1.Balance.count == 0)
{
//매수주문
Account1.OrderBuy(aItemList[i], 1,0,1);
}
}
}
}