예스스탁
예스스탁 답변
2025-02-19 19:32:28.0
안녕하세요
예스스탁입니다.
1
확장차트 객체에 시스템은 모두 시험으로만 적용됩니다.
시스템이 적용되고 차트에서 신호가 발생하면 스팟에서 주문나가게 구현하셔야 합니다.
2
타이머의 종료위치가 스크립트 상단에 잇어
검색된 종목수보다 1회더 요청하고 있습니다.
아래와 같이 가장 아래로 위치되게 하시면 됩니다.
function Main_OnTimer(nEventID)
{
//2초 단위로 한종목씩 차트 생성
if (nEventID == 1)
{
//ReqCount번째 종목요청
//종목검색 후 종목코드가 aItemList에 배열로 담겨오는데 [0]번방 부터 요청
//차트설정 : 연결선물,1분봉,5000개, 수정주가X, 갭보정X
var C1 = new ReqChartItem(List[ReqCount],1,CHART_PERIOD_DAILY,5000,CHART_REQCOUNT_BAR,false,false);
//시스템 설정
var S1 = new SystemInfo("WT");
//C1차트설정, S1시스템설정으로 첫번째 종목 차트 생성
Main.ReqChartEx(C1,S1);
ReqCount = ReqCount+1;//요청횟수 1증가
//요청이 검색된 종목수 만큼 되었으면 터이머 종료
if (ReqCount == ListCnt)
Main.KillTimer(1);
}
}
3
//차트설정 : 연결선물,1분봉,5000개, 수정주가X, 갭보정X
var C1 = new ReqChartItem(List[ReqCount],1,CHART_PERIOD_DAILY,5000,CHART_REQCOUNT_BAR,false,false);
수식에서 위 내용이 확장차트설정입니다.
ReqChartItem객체에서 두번째와 세번째에 지정하는 옵션이 주기입니다.
두번째는 주기, 세번째는 주기구분입니다.
주기구분이 CHART_PERIOD_DAILY로 되어 있으면 일봉입니다.
분봉은 CHART_PERIOD_MINUTE로 지정하시면 됩니다.
3,5,10과 같은 세부주기는 두번째에 지정하시면 됩니다.
아래와 같이 변경하시면 3분봉입니다.
스팟도움말에서 ReqChartItem객체 도움말 참고하시기 바랍니다.
var C1 = new ReqChartItem(List[ReqCount],3,CHART_PERIOD_MINUTE,5000,CHART_REQCOUNT_BAR,false,false);
즐거운 하루되세요
> 심프로1 님이 쓴 글입니다.
> 제목 : 종목 검색 후 트레이딩 적용 - 시험적용 표시가 뜹니다
> 안녕하세요, 예스트레이더 담당자님,
게시판에 있는 수식을 그대로 가져와서 제가 사용하는 트레이딩 식으로 적용했는데, 적용은 잘되었으나 몇가지 궁금한 적이 있습니다.
1. 종목들이 확장차트에 '시험적용'으로 적용되고 있습니다. 원래 '자동' 빨간색 아이콘으로 붙어야 실매매가 가능한 것으로 알고 있습니다. 실매매를 하고 싶습니다.
2. 실행하고 있는 스팟 옆에 'undefined 는 조회 대상 종목이 아닙니다' 라고 뜹니다. 원하는 종목들이 뜨는 것으로 보아 큰문제는 아니지만 확인 부탁드립니다.
3. 아래 이용식으로는 확장차트가 일봉으로 구현이 되는데, 3분봉/다른 봉으로 변환하는 구문예제 좀 부탁드립니다.
이용하고 있는 수식은 아래와 같고, 첨부파일도 혹시몰라 올려드립니다.
늘 감사드립니다,
심프로
-------------------------------------
var List;
var ListCnt;
var ReqCount;
//스팟 첫 실행시
function Main_OnStart()
{
// 파워종목검색의 test Search라는 이름의 사용자검색조건 검색 요청
Main.ReqPowerSearch("WT 3MIN")
}
//종목검색 완료되어 리스트(검색된 종목코드) 수신
function Main_OnRcvItemList(aItemList, nCount)
{
//검색된 종목코드를 저장
List = aItemList;
//검색된 종목수 저장
ListCnt = nCount;
Main.SetTimer(1,2000);//2 타이머
ReqCount = 0;
}
function Main_OnTimer(nEventID)
{
//2초 단위로 한종목씩 차트 생성
if (nEventID == 1)
{
//요청이 검색된 종목수 만큼 되었으면 터이머 종료
if (ReqCount == ListCnt)
Main.KillTimer(1);
//ReqCount번째 종목요청
//종목검색 후 종목코드가 aItemList에 배열로 담겨오는데 [0]번방 부터 요청
//차트설정 : 연결선물,1분봉,5000개, 수정주가X, 갭보정X
var C1 = new ReqChartItem(List[ReqCount],1,CHART_PERIOD_DAILY,5000,CHART_REQCOUNT_BAR,false,false);
//시스템 설정
var S1 = new SystemInfo("WT");
//C1차트설정, S1시스템설정으로 첫번째 종목 차트 생성
Main.ReqChartEx(C1,S1);
ReqCount = ReqCount+1;//요청횟수 1증가
}
}
//#생성된 차트에서 신호가 발생하면
function Main_OnRiseSignal(ChartEx, Signal)
{
//매수신호 발생하면 매수주문
if (Signal.signalKind == 1)
{
Account1.OrderBuy(Main.GetOrderCode(ChartEx.code),1,0,1);
}
//청산신호 발생하면 매도주문
if (Signal.signalKind == 2)
{
Account1.OrderSell(Main.GetOrderCode(ChartEx.code),1,0,1);
}
}
----------------------------------------------------------------------