커뮤니티

예스스팟 Q&A

관리자에 의해 프로그램 사용법 QnA로 이동되었습니다

프로필 이미지
고질라
2013-11-20
15
글번호 222718
0
답변완료

미체결 취소주문

주식 종목 오전에 매수 진입후 체결이 되지 않으면 13시 이후에 미체결된 주문들 모두 취소를 할려면 어떻게 해야되나요? ㅡㅡ; 이렇게 저렇게 해봤지만.. 맞는거 같지가 않네요. ㅠㅠ function Main_OnStart() { Main.MessageLog("시작") Main.SetTimer(1, 5000);//5초 간격으로 타이머 작동 } //지정시간 계좌 내 모든 종목 청산 function Main_OnTimer(nEventID) { var d = new Date(); var HHMMSS = d.getHours()*10000+d.getMinutes()*100+d.getSeconds(); Main.MessageList(HHMMSS); if (nEventID == 1 && HHMMSS >= 130000) { Main.KillTimer(1); Main.MessageLog("취소") num = Account1.GetTheNumberOfUnfills(); for(var i = 0; i < num; i++) { Account1.SetBalanceIndex(i); Account1.SetUnfillOrderNumber(i); if (Account1.Unfill.count > 0) { Account1.OrderCancel(i); } } } }
프로필 이미지
오토
2013-11-19
1032
글번호 222716
답변완료

사용자 모듈함수 문의 드립니다.

전략마다 지수가 플러스인지 마이너스인지 체크를 할려고 합니다. 사용자 모뮬함수를 이용하면 간단하게 전략마다 넣을 수 있을거 같아서 시도를 해보는데 어렵네요. ㅠㅠ plus_minus(KP); 만들고 var chk = 0; if KP.open <= KP.current { chk = 1;} else {chk = -1;} 이렇게하면 될 줄 알았는데 에러만 나네요. ㅡ,.ㅡ 예제 부탁드립니다. 메뉴얼 예제를봐도 쉽지가 않네요. ㅜㅜ
프로필 이미지
오토
2013-11-19
878
글번호 222715
답변완료

PrintOnFile 문의드립니다.

Main.PrintOnFile("C:₩APM_Setup₩htdocs₩load.txt", "1111"); 이렇게 했지만... 해당 경로에 저장이 안되네요. ㅡㅡ; 경로를 빼고 load.txt 만 넣으면 export 폴더에 파일이 저장이 되구요. ^^;;; 왜 경로는 먹히질 않는걸까요? ㅡㅡ;
프로필 이미지
오토
2013-11-18
945
글번호 222714
답변완료

수정문의

검증시 에러메세지가 뜨는데 확인부탁드립니다 감사합니다, var Start; var UNum; var LNum; var CallCode; var CallPrice; var PutCode; var PutPrice; var CC; var PP; var CallOrderCode; var PutOrderCode; function Main_OnStart() { Start = 0; } function Chart1_OnRiseSignal(Signal) { UNum = Option.uppersATM; LNum = Option.lowersATM; CallCode = new Array(UNum+LNum+1); PutCode = new Array(UNum+LNum+1); CallPrice = new Array(UNum+LNum+1); PutPrice = new Array(UNum+LNum+1); for (var i = -LNum; i <= UNum; i++) { if (Option.GetCurrent(0, i) <= 3.0 && Option.GetCurrent(0, i) >= 1.5)/ { CallPrice[i+LNum] = Math.abs(Option.GetCurrent(0, i)-2.3); CallCode[i+LNum] = Option.GetATMCallRecent(i); } else { CallPrice[i+LNum] = 9999999; CallCode[i+LNum] = 9999999; } } for (var ii = -UNum; ii <= LNum; ii++) { if (Option.GetCurrent(1, ii) <= 3.0 && Option.GetCurrent(1, ii) >= 1.5) { PutPrice[ii+UNum] = Math.abs(Option.GetCurrent(1, ii)-2.3); PutCode[ii+UNum] = Option.GetATMPutRecent(ii); } else { PutPrice[ii+UNum] = 9999999; PutCode[ii+UNum] = 9999999; } } //buy신호 발생시 if (Signal.signalKind == 1) { Start = 1; CC = 9999999; CallOrderCode = 9999999; for (var iii = -LNum; iii <= UNum; iii++) { if (CallPrice[iii+LNum] < CC) { CC = CallPrice[iii+LNum]; CallOrderCode = CallCode[iii+LNum] } } if (CC < 9999999) { Account1.OrderSell(CallOrderCode, 1, 0, 1); Main.MessageLog("B신호종류:"+Signal.signalKind+" /종목코드:"+CallOrderCode+" /START:"+Start); } else { Main.MessageLog("B신호종류:"+Signal.signalKind+" /종목코드: 지정한 가격대 종목이 없음"+" /START:"+Start); } } // Exitlong신호 발생시 if (Start == 1 && Signal.signalKind == 2) { Start = 0; if (CC > 0) { Account1.OrderBuy(CallOrderCode, 1, 0, 1); Main.MessageLog("B신호종류:"+Signal.signalKind+" /종목코드:"+CallOrderCode+" /START:"+Start); } else { Main.MessageLog("B신호종류:"+Signal.signalKind+" /종목코드: 지정한 가격대 종목이 없음"+" /START:"+Start); } } //sell신호 발생시 if (Signal.signalKind == 3) { Start = -1; PP = 9999999; PutOrderCode = 9999999; for (var iiii = -UNum; iiii <= LNum; iiii++) { if (PutPrice[iiii+UNum] < PP) { PP = PutPrice[iiii+UNum]; PutOrderCode = PutCode[iiii+UNum]; } } if (PP < 9999999) { Account1.OrderSellPutOrderCode, 1, 0, 1); Main.MessageLog("B신호종류:"+Signal.signalKind+" /종목코드:"+PutOrderCode+" /START:"+Start); } else { Main.MessageLog("B신호종류:"+Signal.signalKind+" /종목코드: 지정한 가격대 종목이 없음"+" /START:"+Start); } } //exitshort신호 발생시 if ( Start == -1 && Signal.signalKind == 4) { Start = 0; if (PP > 0) { Account1.OrderBuy(PutOrderCode, 1, 0, 1); Main.MessageLog("B신호종류:"+Signal.signalKind+" /종목코드:"+PutOrderCode+" /START:"+Start); } else { Main.MessageLog("B신호종류:"+Signal.signalKind+" /종목코드: 지정한 가격대 종목이 없음"+" /START:"+Start); } } }
프로필 이미지
털보
2013-11-18
810
글번호 222713
답변완료

OnTimer이벤트

수고 많으십니다. 꾸벅! 하이투자증권 하나의 ID로 복수계좌에 각각 복수전략을 운영하려하는데요 OnTimer이벤트가 계좌별, 전략별로 각각 발생하나요? 아니면 구분없이 다 발생하나요?
프로필 이미지
brucehan
2013-11-16
743
글번호 222712

마루아빠 님에 의해서 삭제되었습니다.

프로필 이미지
마루아빠
2013-11-14
19
글번호 222710
답변완료

수식문의 드립니다.

여러개의 차트에 시스템을 적용시켜놓은 상태에서 제일 처음 신호가 나와 진입이된다면 다른 차트에서 발생하는 신호는 진입을 하지 못하게 하는 게 가능할듯 해서 문의드립니다. 계좌상 미청산 계약이 없을시에만 진입신호 이후 주문이 발생하도록... 하는 수식 좀 부탁드립니다.
프로필 이미지
수리산독사
2013-11-09
800
글번호 222706
답변완료

문의

아래는 몇일전에 수정해주신 옵션매수식 인데요, 이것을 옵션매도로 바꾸고싶네요. 옵션가격 1.5 ~ 3 사이중 (2.3)에 가장 가까운 옵션매도로 수정 부탁드립니다. 감사합니다. var Start; var UNum; var LNum; var CallCode; var CallPrice; var PutCode; var PutPrice; var CC; var PP; var CallOrderCode; var PutOrderCode; function Main_OnStart() { Start = 0; } function Chart1_OnRiseSignal(Signal) { UNum = Option.uppersATM; LNum = Option.lowersATM; CallCode = new Array(UNum+LNum+1); PutCode = new Array(UNum+LNum+1); CallPrice = new Array(UNum+LNum+1); PutPrice = new Array(UNum+LNum+1); for (var i = -LNum; i <= UNum; i++) { if (Option.GetCurrent(0, i) <= 2.0 && Option.GetCurrent(0, i) >= 1.0) { CallPrice[i+LNum] = Math.abs(Option.GetCurrent(0, i)-1.5); CallCode[i+LNum] = Option.GetATMCallRecent(i); } else { CallPrice[i+LNum] = 9999999; CallCode[i+LNum] = 9999999; } } for (var ii = -UNum; ii <= LNum; ii++) { if (Option.GetCurrent(1, ii) <= 2.0 && Option.GetCurrent(1, ii) >= 1.0) { PutPrice[ii+UNum] = Math.abs(Option.GetCurrent(1, ii)-1.5); PutCode[ii+UNum] = Option.GetATMPutRecent(ii); } else { PutPrice[ii+UNum] = 9999999; PutCode[ii+UNum] = 9999999; } } //buy신호 발생시 if (Signal.signalKind == 1) { Start = 1; CC = 9999999; CallOrderCode = 9999999; for (var iii = -LNum; iii <= UNum; iii++) { if (CallPrice[iii+LNum] < CC) { CC = CallPrice[iii+LNum]; CallOrderCode = CallCode[iii+LNum] } } if (CC < 9999999) { Account1.OrderBuy(CallOrderCode, 1, 0, 1); Main.MessageLog("B신호종류:"+Signal.signalKind+" /종목코드:"+CallOrderCode+" /START:"+Start); } else { Main.MessageLog("B신호종류:"+Signal.signalKind+" /종목코드: 지정한 가격대 종목이 없음"+" /START:"+Start); } } // Exitlong신호 발생시 if (Start == 1 && Signal.signalKind == 2) { Start = 0; if (CC > 0) { Account1.OrderSell(CallOrderCode, 1, 0, 1); Main.MessageLog("B신호종류:"+Signal.signalKind+" /종목코드:"+CallOrderCode+" /START:"+Start); } else { Main.MessageLog("B신호종류:"+Signal.signalKind+" /종목코드: 지정한 가격대 종목이 없음"+" /START:"+Start); } } //sell신호 발생시 if (Signal.signalKind == 3) { Start = -1; PP = 9999999; PutOrderCode = 9999999; for (var iiii = -UNum; iiii <= LNum; iiii++) { if (PutPrice[iiii+UNum] < PP) { PP = PutPrice[iiii+UNum]; PutOrderCode = PutCode[iiii+UNum]; } } if (PP < 9999999) { Account1.OrderBuy(PutOrderCode, 1, 0, 1); Main.MessageLog("B신호종류:"+Signal.signalKind+" /종목코드:"+PutOrderCode+" /START:"+Start); } else { Main.MessageLog("B신호종류:"+Signal.signalKind+" /종목코드: 지정한 가격대 종목이 없음"+" /START:"+Start); } } //exitshort신호 발생시 if ( Start == -1 && Signal.signalKind == 4) { Start = 0; if (PP > 0) { Account1.OrderSell(PutOrderCode, 1, 0, 1); Main.MessageLog("B신호종류:"+Signal.signalKind+" /종목코드:"+PutOrderCode+" /START:"+Start); } else { Main.MessageLog("B신호종류:"+Signal.signalKind+" /종목코드: 지정한 가격대 종목이 없음"+" /START:"+Start); } } }
프로필 이미지
털보
2013-11-08
856
글번호 222705
답변완료

문의번호 759 관련입니다.

안녕하세요? 항상 수고 많으십니다. 저는 차트의 데이터를 GetIndicatorData(~~~)를 사용해서,완성신호가 아닌 지표검색으로 스팟수식을 작성하고 이를 수동매매하던 스캘핑에 적용하려고, 계속 시험적용으로 검토하고 있습니다. 저의 매매기준대로 지금의 스팟수식은 스캘핑을 위한 신속한 진입은 잘 이루어 지고 있어서, 감사드립니다. 하지만, 스캘핑의 속성상 STOP 매매를 해야 할 때가 허다합니다. 저의 매매기준이 잘 못 고안되어서 발생하는 청산손실은 제가 감수해야만 합니다만, 진입은 잘 이루어 지고 또한, 적절한 수익을 찍고도, 저항에 밀려서 손실로 청산되는 것을 방지하고 싶습니다. 그래서, 스탑(일정한 수익틱을 정해 놓고)을 적용하려고 귀사의 질의응답의 내용으로 시험적용해 봤습니다만, 원만한 결과물을 도출하지 못했습니다. 실 거래가 아닌 시험적용에서는 //계좌에 선물 종목이 편입될 때 function Main_OnUp*dateAccount(sAccntNum,sItemCode,IUp*dateID) 과 //선물종목 시세 업데이트가 되면 잔고 셋팅 function Main_OnUp*dateMarket(sItemCode,IUp*dateID) 이 작동하지 않는 건가요? 시험적용에서 작동하지 않는다면 검증해 보지 못 한 것을 실 거래에 적용할 수 없으니, 얼른 포기하려구요. 만일, 시험적용에서 검증할 방도가 있다면, 제가 만들어 놓은 수식으로 다시 질의드리려고 합니다. 감사합니다.
프로필 이미지
마루아빠
2013-11-08
798
글번호 222704