커뮤니티

[79724] 오류

프로필 이미지
민현종
2023-01-09 11:07:08
898
글번호 165216
답변완료
금요일 마감 직전 청산과 관련해 지난번에 주신 수식대로 NH YesSpot을 적용했는데 작동이 되지 않습니다. (VI에서는 작동이 됨) 스크립트에 문제가 있나요? var TT, TT1, ExitTime; var RF1, RF2; function Main_OnStart() { TT = getHHMMSS(); Dax_ExitTime = 55500; Dax_endTime = 55800; ExitTime = 65500; endTime = 65800; var d = new Date(); var YYYYMMDD = d.getFullYear()*10000+(d.getMonth()+1)*100+d.getDate(); Week = getDateStr(YYYYMMDD); Main.MessageLog(TT + " 스팟작동, 오늘의 요일은 : " + Week); Main.SetTimer(1, 60000); Main.SetTimer(2, 60000); } function Main_OnTimer(nEventID) { TT1 = getHHMMSS(); if(nEventID == 1 && TT1 > Dax_ExitTime && TT1 < Dax_endTime && Week == "금") { Main.MessageLog(TT1 + " 오늘의 요일은 : " + Week + " Dax_포지션정리 시작 "); Main.KillTimer(1); A1.Refresh(); RF1 = true; } if(nEventID == 2 && TT1 > ExitTime && TT1 < endTime && Week == "금") { Main.MessageLog(TT1 + " 오늘의 요일은 : " + Week + " 포지션정리 시작 "); Main.KillTimer(2); A1.Refresh(); RF2 = true; } } function Main_OnUp*dateAccount(sAccntNum, sItemCode, lUp*dateID) { if (RF1 == true && lUp*dateID == 30000) { RF1 = false; var num1 = A1.GetTheNumberOfBalances(); for (j = 0; j < num1; j++) { A1.SetBalance(j); var Code1 = A1.Balance.code ; var avgC1 = A1.Balance.avgUnitCost ; var Count1 = A1.Balance.count ; var Price1 = A1.Balance.current ; if(Code1.substring(0,3) == "FDX") if (A1.Balance.position == 2) {A1.OrderSell(Code1, Count1, 0, 1); Main.MessageLog(TT1 + " #001계좌 매수포지션청산 - 종목 : " + Code1 + " " + Count1 + " 계약 , 현재가 : " + Price1); } if (A1.Balance.position == 1) {A1.OrderBuy(Code1, Count1,0, 1); Main.MessageLog(TT1 + " #001계좌 매도포지션청산 - 종목 : " + Code1 + " " + Count1 + " 계약 , 현재가 : " + Price1); } } } if (RF2 == true && lUp*dateID == 30000) { RF2 = false; var num2 = A1.GetTheNumberOfBalances(); for (j = 0; j < num2; j++) { A1.SetBalance(j); var Code1 = A1.Balance.code ; var avgC1 = A1.Balance.avgUnitCost ; var Count1 = A1.Balance.count ; var Price1 = A1.Balance.current ; if (A1.Balance.position == 2) {A1.OrderSell(Code1, Count1, 0, 1); Main.MessageLog(TT1 + " #001계좌 매수포지션청산 - 종목 : " + Code1 + " " + Count1 + " 계약 , 현재가 : " + Price1); } if (A1.Balance.position == 1) {A1.OrderBuy(Code1, Count1,0, 1); Main.MessageLog(TT1 + " #001계좌 매도포지션청산 - 종목 : " + Code1 + " " + Count1 + " 계약 , 현재가 : " + Price1); } } } }
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2023-01-09 13:53:41

> 민현종 님이 쓴 글입니다. > 제목 : [79724] 오류 > 금요일 마감 직전 청산과 관련해 지난번에 주신 수식대로 NH YesSpot을 적용했는데 작동이 되지 않습니다. (VI에서는 작동이 됨) 스크립트에 문제가 있나요? var TT, TT1, ExitTime; var RF1, RF2; function Main_OnStart() { TT = getHHMMSS(); Dax_ExitTime = 55500; Dax_endTime = 55800; ExitTime = 65500; endTime = 65800; var d = new Date(); var YYYYMMDD = d.getFullYear()*10000+(d.getMonth()+1)*100+d.getDate(); Week = getDateStr(YYYYMMDD); Main.MessageLog(TT + " 스팟작동, 오늘의 요일은 : " + Week); Main.SetTimer(1, 60000); Main.SetTimer(2, 60000); } function Main_OnTimer(nEventID) { TT1 = getHHMMSS(); if(nEventID == 1 && TT1 > Dax_ExitTime && TT1 < Dax_endTime && Week == "금") { Main.MessageLog(TT1 + " 오늘의 요일은 : " + Week + " Dax_포지션정리 시작 "); Main.KillTimer(1); A1.Refresh(); RF1 = true; } if(nEventID == 2 && TT1 > ExitTime && TT1 < endTime && Week == "금") { Main.MessageLog(TT1 + " 오늘의 요일은 : " + Week + " 포지션정리 시작 "); Main.KillTimer(2); A1.Refresh(); RF2 = true; } } function Main_OnUp*dateAccount(sAccntNum, sItemCode, lUp*dateID) { if (RF1 == true && lUp*dateID == 30000) { RF1 = false; var num1 = A1.GetTheNumberOfBalances(); for (j = 0; j < num1; j++) { A1.SetBalance(j); var Code1 = A1.Balance.code ; var avgC1 = A1.Balance.avgUnitCost ; var Count1 = A1.Balance.count ; var Price1 = A1.Balance.current ; if(Code1.substring(0,3) == "FDX") if (A1.Balance.position == 2) {A1.OrderSell(Code1, Count1, 0, 1); Main.MessageLog(TT1 + " #001계좌 매수포지션청산 - 종목 : " + Code1 + " " + Count1 + " 계약 , 현재가 : " + Price1); } if (A1.Balance.position == 1) {A1.OrderBuy(Code1, Count1,0, 1); Main.MessageLog(TT1 + " #001계좌 매도포지션청산 - 종목 : " + Code1 + " " + Count1 + " 계약 , 현재가 : " + Price1); } } } if (RF2 == true && lUp*dateID == 30000) { RF2 = false; var num2 = A1.GetTheNumberOfBalances(); for (j = 0; j < num2; j++) { A1.SetBalance(j); var Code1 = A1.Balance.code ; var avgC1 = A1.Balance.avgUnitCost ; var Count1 = A1.Balance.count ; var Price1 = A1.Balance.current ; if (A1.Balance.position == 2) {A1.OrderSell(Code1, Count1, 0, 1); Main.MessageLog(TT1 + " #001계좌 매수포지션청산 - 종목 : " + Code1 + " " + Count1 + " 계약 , 현재가 : " + Price1); } if (A1.Balance.position == 1) {A1.OrderBuy(Code1, Count1,0, 1); Main.MessageLog(TT1 + " #001계좌 매도포지션청산 - 종목 : " + Code1 + " " + Count1 + " 계약 , 현재가 : " + Price1); } } } }