예스스탁
예스스탁 답변
2019-11-20 12:41:01
안녕하세요
예스스탁입니다.
아래 수식 참고하셔서 수정보완해 사용하시기 바랍니다.
var ChartTime = 5; //주기(분)
var SystemName = "시스템명"; //차트에 적용할 시스템 이름
var List = [],CT = [];
var step,HHMMSS,HHMMSS1,req;
function Main_OnStart()
{
step =0;
Main.SetTimer(1, 5000);
}
function Main_OnTimer(nEventID)
{
var d = new Date();
HHMMSS1 = HHMMSS;
HHMMSS = d.getHours()*10000+d.getMinutes()*100+d.getSeconds();
if (step == 0 && HHMMSS >= 091000 && HHMMSS1 < 091000)
{
step = 1;
Main.ReqPowerSearch("hancom25");
}
if (step == 1 && HHMMSS >= 091500 && HHMMSS1 < 091500)
{
step = 2;
Main.ReqPowerSearch("내검색");
}
}
function Main_OnRcvItemList(aItemList, nCount)
{
if (step == 1 && nCount > 0)
{
Main.MessageList("OnRcvItemList 1 : ",nCount);
for (var i = 0; i < Math.min(nCount,50); i++ )
{
List.push(aItemList[i]);
}
req = 0;
var CTSet = new ReqChartItem(List[req],ChartTime,CHART_PERIOD_MINUTE,1000,CHART_REQCOUNT_BAR,false,false);
var STSet = new SystemInfo(SystemName);
Main.MessageList(req,"차트객체요청 : ",List[req]);
Main.ReqChartEx(CTSet, STSet);
}
if (step == 2 && nCount > 0 && List.length < 50 )
{
Main.MessageList("OnRcvItemList 1 : ",nCount);
var AddList = [];
for (var i = 0; i < nCount; i++ )
{
var add = true;
for (var z = 0; z < List.length; z++ )
{
if (aItemList[i] == List[z])
{
add = false;
}
}
if (add == true)
{
AddList.push(aItemList[i]);
}
}
var ii = Math.min(AddList.length,50-List.length);
for (var i = 0; i < ii; i++ )
{
List.push(AddList[i]);
}
var CTSet = new ReqChartItem(List[req],ChartTime,CHART_PERIOD_MINUTE,1000,CHART_REQCOUNT_BAR,false,false);
var STSet = new SystemInfo(SystemName);
Main.MessageList(req,"차트객체요청 : ",List[req]);
Main.ReqChartEx(CTSet, STSet);
}
}
function Main_OnRcvChartEx(ChartEx)
{
if (step == 1 && List[req] == ChartEx.GetCode(1))
{
CT[req] = ChartEx;
Main.MessageList(req,"차트객체생성 : ",CT[req].GetCode(1));
req = req + 1;
if (req < List.length)
{
Main.MessageList(req,"차트객체요청 : ",List[req]);
var CTSet = new ReqChartItem(List[req],ChartTime,CHART_PERIOD_MINUTE,1000,CHART_REQCOUNT_BAR,false,false);
var STSet = new SystemInfo(SystemName);
Main.ReqChartEx(CTSet, STSet);
}
else
{
Main.MessageList("Search1 차트객체요청종료");
}
}
if (step == 2 && List[req] == ChartEx.GetCode(1))
{
CT[req] = ChartEx;
Main.MessageList(req,"차트객체생성 : ",CT[req].GetCode(1));
req = req + 1;
if (req < List.length)
{
Main.MessageList(req,"차트객체요청 : ",List[req]);
var CTSet = new ReqChartItem(List[req],ChartTime,CHART_PERIOD_MINUTE,1000,CHART_REQCOUNT_BAR,false,false);
var STSet = new SystemInfo(SystemName);
Main.ReqChartEx(CTSet, STSet);
}
else
{
Main.MessageList("Search2 차트객체요청종료");
}
}
}
즐거운 하루되세요
> feel29na 님이 쓴 글입니다.
> 제목 : 0915시에 사용자종목검색식으로 검색 후 해당 종목에 시스템 적용하기 문의
> 안녕하세요.
스팟 수식 작성 문의 입니다...
1. 0910시에 사용자 종목검색식으로 종목 검색
2. 검색된 종목에 대해 차트 생성
3. 생성된 차트에 시스템 적용
4. 0915시에 사용자 종목검색식으로 종목 검색
5. 검색된 종목 중 0910시에 검색된 종목 제외하고 추가 차트 생성
6. 생성된 차트에 시슽템 적용
7. 차트 생성이 50개가 되면 완료