답변완료
시스템 수식 수정 문의
0915시에 "분봉장중단타1.5" 파워검색 실시 후 나온 종목들에 대해 시스템을 실행하려고 합니다.
아래와 같이 코딩했는데... 어디가 문제인지 모르겠습니다. ㅜㅡ
var List;
var ListCnt;
var ReqCount;
var HHMMSS,HHMMSS1;
//스팟 첫 실행시
function Main_OnStart()
{
Main.MessageLog("시작"); //시작 메세지 출력
Main.SetTimer(1,60000);
}
function Main_OnTimer(nEventID)
{
if (nEventID == 1)
{
var d = new Date();
HHMMSS1 = HHMMSS;
HHMMSS = d.getHours()*10000+d.getMinutes()*100+d.getSeconds();
if (HHMMSS >= 093000 && HHMMSS1 < 0930) // 0930시 파워검색 실시
{
Main.ReqPowerSearch("분봉장중단타1.5");
Main.MessageLog("파워검색시작");
Main.KillTimer(1);
}
}
}
function Main_OnRcvItemList(aItemList, nCount) //종목검색 완료되어 리스트(검색된 종목코드) 수신
{
List = aItemList; //검색된 종목코드를 저장
ListCnt = nCount; //검색된 종목수 저장
Main.SetTimer(2,2000);//2초 타이머
ReqCount = 0;
}
function Main_OnTimer(nEventID)
{
if (nEventID == 2) //2초 단위로 한종목씩 차트 생성
{
if (ReqCount == ListCnt) //요청이 검색된 종목수 만큼 되었으면 터이머 종료
Main.KillTimer(2);
//ReqCount번째 종목요청
//종목검색 후 종목코드가 aItemList에 배열로 담겨오는데 [0]번방 부터 요청
//차트설정 :종목, 주기 분봉, 조회건수 1500
var C1 = new ReqChartItem(List[ReqCount], 1, CHART_PERIOD_MINUTE, 1500, CHART_REQCOUNT_BAR, false, false);
//시스템 설정
var S1 = new SystemInfo("feel29na_ver_1.0");
//C1차트설정, S1시스템설정으로 첫번째 종목 차트 생성
Main.ReqChartEx(C1,S1);
ReqCount = ReqCount+1;//요청횟수 1증가
}
}
//생성된 차트에서 신호가 발생하면
function Main_OnRiseSignal(ChartEx, Signal)
{
//신호완성 출력
Main.MessageLog("신호발생");
//매수신호 발생하면 매수주문
if (Signal.signalKind == 1)
{
Account1.OrderBuy(Main.GetOrderCode(ChartEx.code),1,0,1);
Main.MessageLog("매수");
}
//청산신호 발생하면 매도주문
if (Signal.signalKind == 2)
{
Account1.OrderSell(Main.GetOrderCode(ChartEx.code),1,0,1);
Main.MessageLog("매수청산");
}
}
2020-08-17
2347
글번호 225298
답변완료
수식 점검 좀 해 주세요^^;;
3.0 근접 옵션 매수식인데..
예스스팟에서 실행하면 12번째 줄이 ubexpected token;; 이라고 나오네요..
12번째줄이 요놈...
function Main::OnStart()
혹시 수식연습할 수 있는데 예제들이 있나요?
----------------------------------------------------------
var CPrice = new Array(101);
var CCode = new Array(101);
var PPrice = new Array(101);
var PCode = new Array(101);
var MaxCall;
var MaxCallCode;
var MaxPut;
var MaxPutCode;
function Main::OnStart()
{
//ATM-50~+50까지 종목중 0~3사이 종목을 제외하고 모두 -1처리
for(var i = -50; i <= 50; i++)
{
if (Option.GetCurrent(0,i) < 3 && Option.GetCurrent(0,i) > 0)
{
CPrice[50+i] = Option.GetCurrent(0,i);
CCode[50+i] = Option.GetATMCallRecent(i);
}
else
{
CPrice[50+i] = -1;
CCode[50+i] = -1;
}
if (Option.GetCurrent(1,i) < 3 && Option.GetCurrent(1,i) > 0)
{
PPrice[50+i] = Option.GetCurrent(1,i);
PCode[50+i] = Option.GetATMPutRecent(i);
}
else
{
PPrice[50+i] = -1;
PCode[50+i] = -1;
}
}
//저장된 CPrice, PPrice값중 최고값 계산
MaxCall = -1;
MaxCallcode = -1;
MaxPut = -1;
MaxPutcode = -1;
for(var A = 0; A <= 100; A++)
{
if (CPrice[A] > MaxCall)
{
MaxCall = CPrice[A];
MaxCallcode = CCode[A];
}
if (PPrice[A] > MaxPut)
{
MaxPut = PPrice[A];
MaxPutcode = PCode[A];
}
}
Main.MessageLog("가격:"+MaxCall+"종목코드:"+MaxCallcode);
Main.MessageLog("가격:"+MaxPut+"종목코드:"+MaxPutcode);
}
2020-07-27
2006
글번호 225289