| Q&A 게시판 | HOME > Q&A 게시판 |
작성자 :
와사비
작성일 : 2021-11-04 21:05:00
조회수 : 425
종목코드값이 출력 안됩니다.
스팟에서 아래 Main_OnUpdateMarket 이밴트가 발생할때 출력값을 리스트로 보냈는데요..
아래 결과에서 sItemCode 값이 출력안됩니다.
코딩이 잘못되었는지 확인해주시면 감사하겠습니다.
var Ymoney = 10000000;
var ListCnt;
var ItemList = [];//검색 후 생성할 종목의 리스트를 저장하기 위한 배열변수
var CT = [];
var CTcnt = 0;
var MD = [];
var ID;
var Number = []; // order주문 번호
var OrderTime = []; // 종목별주문 시간
var req = 0, BNum;
var RSIPeriod = 9; //RSI지표 기간
var RSIPercent = 98; //RSI지표 지수(매도조건)
function Main_OnStart()
{
Main.MessageList("시작");
CTcnt = 0;
var num = Main.GetItemCountOfInterest("업비트_추세전략1"); // 관심그룹명 지정
Main.MessageList("관심그룹 종목수",num);
if (num > 0)
{
for(var i = 0; i < num; i++)
{
ItemList.push(Main.GetItemCodeInInterest("업비트_추세전략1", i));
Main.MessageList("순번:",i,"관심그룹 종목리스트",ItemList[i]);
}
}
if(ItemList.length > 0)
{
req = 0;
//시스템 설정
var StopSet = new SystemStopInfo(new StopLoss(4, CALCMETHOD_PERCENT, 0xFFDA93),
new StopTrailing(2, 5, CALCMETHOD_PERCENT, 0)
//new StopProfitTarget(10, CALCMETHOD_PERCENT, 0xFFDA93),
//new StopInactivity(0.5, 6, CALCMETHOD_PERCENT, 0xFFDA93),
//new StopEndOfDay(151500)
);
var ChartSet = new ReqChartItem(ItemList[req].exchange,ItemList[req].market,ItemList[req].code,1,CHART_PERIOD_DAILY,1000,CHART_REQCOUNT_BAR,false,StopSet);
var SystemSet = new SystemInfo(SystemName, YL_TYPE_NORMAL, null, null, StopSet);
Main.ReqChartEx(ChartSet,SystemSet);
}
}
function Main_OnTimer(nEventID)
{
}
function Main_OnRcvChartEx(ChartEx)
{
var cx = ChartEx.GetCode(1);
if (ItemList[req].exchange == cx.exchange && ItemList[req].market == cx.market && ItemList[req].code == cx.code)
{
CT[CTcnt] = ChartEx;
Main.ReqMarketData(ItemList[req].exchange,ItemList[req].market,ItemList[req].code);
}
}
function Main_OnRcvMarketData(MarketData)
{
var vol;
A1.Refresh();
//Ymoney = A1.GetBalanceETCinfo(0);
var num = A1.GetTheNumberOfBalances();
if (num < ACnt && ItemList[req].exchange == MarketData.exchange && ItemList[req].market == MarketData.market && ItemList[req].code == MarketData.code)
{
Main.MessageList("종목객체생성 : ",MarketData);
MD.push(MarketData);
CTcnt = CTcnt +1;
req = req + 1;
if (req < ACnt && req < ItemList.length)
{
//시스템 설정
var StopSet = new SystemStopInfo(new StopLoss(4, CALCMETHOD_PERCENT, 0xFFDA93),
new StopTrailing(2, 5, CALCMETHOD_PERCENT, 0)
//new StopProfitTarget(10, CALCMETHOD_PERCENT, 0xFFDA93),
//new StopInactivity(0.5, 6, CALCMETHOD_PERCENT, 0xFFDA93),
//new StopEndOfDay(151500)
);
var ChartSet = new ReqChartItem(ItemList[req].exchange,ItemList[req].market,ItemList[req].code,1,CHART_PERIOD_DAILY,1000,CHART_REQCOUNT_BAR,false,StopSet);
var SystemSet = new SystemInfo(SystemName, YL_TYPE_NORMAL, null, null, StopSet);
Main.ReqChartEx(ChartSet,SystemSet);
}
}
}
function Main_OnUpdateMarket(exchange, market, sItemCode, lUpdateID)
{
var Scnt = 0;
Main.MessageList("exchange:",exchange,"market:",market,"sItemCode:",sItemCode);
}
결과 : exchange:006 market:KRW sItemCode:undefined
아래 결과에서 sItemCode 값이 출력안됩니다.
코딩이 잘못되었는지 확인해주시면 감사하겠습니다.
var Ymoney = 10000000;
var ListCnt;
var ItemList = [];//검색 후 생성할 종목의 리스트를 저장하기 위한 배열변수
var CT = [];
var CTcnt = 0;
var MD = [];
var ID;
var Number = []; // order주문 번호
var OrderTime = []; // 종목별주문 시간
var req = 0, BNum;
var RSIPeriod = 9; //RSI지표 기간
var RSIPercent = 98; //RSI지표 지수(매도조건)
function Main_OnStart()
{
Main.MessageList("시작");
CTcnt = 0;
var num = Main.GetItemCountOfInterest("업비트_추세전략1"); // 관심그룹명 지정
Main.MessageList("관심그룹 종목수",num);
if (num > 0)
{
for(var i = 0; i < num; i++)
{
ItemList.push(Main.GetItemCodeInInterest("업비트_추세전략1", i));
Main.MessageList("순번:",i,"관심그룹 종목리스트",ItemList[i]);
}
}
if(ItemList.length > 0)
{
req = 0;
//시스템 설정
var StopSet = new SystemStopInfo(new StopLoss(4, CALCMETHOD_PERCENT, 0xFFDA93),
new StopTrailing(2, 5, CALCMETHOD_PERCENT, 0)
//new StopProfitTarget(10, CALCMETHOD_PERCENT, 0xFFDA93),
//new StopInactivity(0.5, 6, CALCMETHOD_PERCENT, 0xFFDA93),
//new StopEndOfDay(151500)
);
var ChartSet = new ReqChartItem(ItemList[req].exchange,ItemList[req].market,ItemList[req].code,1,CHART_PERIOD_DAILY,1000,CHART_REQCOUNT_BAR,false,StopSet);
var SystemSet = new SystemInfo(SystemName, YL_TYPE_NORMAL, null, null, StopSet);
Main.ReqChartEx(ChartSet,SystemSet);
}
}
function Main_OnTimer(nEventID)
{
}
function Main_OnRcvChartEx(ChartEx)
{
var cx = ChartEx.GetCode(1);
if (ItemList[req].exchange == cx.exchange && ItemList[req].market == cx.market && ItemList[req].code == cx.code)
{
CT[CTcnt] = ChartEx;
Main.ReqMarketData(ItemList[req].exchange,ItemList[req].market,ItemList[req].code);
}
}
function Main_OnRcvMarketData(MarketData)
{
var vol;
A1.Refresh();
//Ymoney = A1.GetBalanceETCinfo(0);
var num = A1.GetTheNumberOfBalances();
if (num < ACnt && ItemList[req].exchange == MarketData.exchange && ItemList[req].market == MarketData.market && ItemList[req].code == MarketData.code)
{
Main.MessageList("종목객체생성 : ",MarketData);
MD.push(MarketData);
CTcnt = CTcnt +1;
req = req + 1;
if (req < ACnt && req < ItemList.length)
{
//시스템 설정
var StopSet = new SystemStopInfo(new StopLoss(4, CALCMETHOD_PERCENT, 0xFFDA93),
new StopTrailing(2, 5, CALCMETHOD_PERCENT, 0)
//new StopProfitTarget(10, CALCMETHOD_PERCENT, 0xFFDA93),
//new StopInactivity(0.5, 6, CALCMETHOD_PERCENT, 0xFFDA93),
//new StopEndOfDay(151500)
);
var ChartSet = new ReqChartItem(ItemList[req].exchange,ItemList[req].market,ItemList[req].code,1,CHART_PERIOD_DAILY,1000,CHART_REQCOUNT_BAR,false,StopSet);
var SystemSet = new SystemInfo(SystemName, YL_TYPE_NORMAL, null, null, StopSet);
Main.ReqChartEx(ChartSet,SystemSet);
}
}
}
function Main_OnUpdateMarket(exchange, market, sItemCode, lUpdateID)
{
var Scnt = 0;
Main.MessageList("exchange:",exchange,"market:",market,"sItemCode:",sItemCode);
}
결과 : exchange:006 market:KRW sItemCode:undefined
