커뮤니티

예스스팟 Q&A

답변완료

계좌 순손익이 일정금액을 초과하면 계좌 일괄청산을 하려고 합니다.

수고 하십니다. 일정 거래시간과 계좌 순손익이 일정금액을 초과하면 계좌 일괄청산을 하려고 다음과 같이 스크립트를 작성하였슴니다. 원하는 처리가 안되어서 스크립트에 오류가 있는지 확인 부탁 드립니다. function Main_OnStart() { Main.SetTimer(1, 5000); } function Main_OnTimer(nEventID) { var d = new Date(); var HHMMSS = d.getHours()*10000+d.getMinutes()*100+d.getSeconds(); Account1.Refresh(); Main.MessageLog(" profit : " + Account1.Balance.profit); if ((HHMMSS > closetime && HHMMSS < closetime+10) || (Account1.Balance.profit > profit) || (Account1.Balance.profit < loss)) { // Main.KillTimer(1); var num = Account1.GetTheNumberOfBalances(); for (var i = 0; i < num; i++) { Account1.SetBalanceIndex(i); if (Account1.Balance.position == 1) Account1.OrderBuy(Account1.Balance.code,Account1.Balance.count,0,1); else if (Account1.Balance.position == 2) Account1.OrderSell(Account1.Balance.code,Account1.Balance.count,0,1); } } }
프로필 이미지
고가행진
2022-05-10
1619
글번호 225663
답변완료

종목코드

안녕하세요 NH Global 해외선물 중에서 Micro S&P종목코드를 넣으니 에러가 발생합니다. Micro S&P종목코드와 S&P종목코드를 알려주세요. 아래 코드번호는 종목코드에서 선정하였는데 안되네요 수고하십시요 var start; function Main_OnStart() {Main.MessageLog("시작"); start=0;} function C5_OnRiseSignal(Signal){ //var dayma1=C5.GetIndicatorData("이평",1,0); //var dayma2=C5.GetIndicatorData("이평",2,0); if (Signal.signalKind==1 ) {A1.OrderBuy(12156821001,MESM22,1,0,1); Start=1;} if (Signal.signalKind==3 ) {A1.OrderSell(12156821001,MESM22,1,0,1);Start=1;} }
프로필 이미지
파도여
2022-05-06
1465
글번호 225662

택군아 님에 의해서 삭제되었습니다.

프로필 이미지
택군아
2022-05-05
31
글번호 225658

huhhh 님에 의해서 삭제되었습니다.

프로필 이미지
huhhh
2022-04-29
11
글번호 225657
답변완료

기능구현 문의드립니다

안녕하세요 하기기능이 구현가능한지 문의드립니다. 예를들어 변동성돌파전략 사용시 돌파 가격대에 예약주문후 봉마감시 주문체결이 되지않았을경우 예약주문 취소 후 변경된 돌파가격대에 예약주문하도록 돌파시 시장가로 매수하지않고 예약주문하는 이유는 슬리피지가 너무 심하여 딜레이를 줄여 슬리피지를 줄이기위함입니다 혹시 위에서 예시처럼 예약주문 후 취소 다시 예약주문하는게 가능할까요? 예스트레이더만으로는 예약주문취소가 안되어 예스스팟기능을사용하여 구현하고자 합니다 가능하다면 예약주문 후 취소하고 재주문 샘플부탁드립니다.
프로필 이미지
똘이는
2022-06-02
1585
글번호 225656

huhhh 님에 의해서 삭제되었습니다.

프로필 이미지
huhhh
2022-04-27
5
글번호 225655
답변완료

검색식 사용 가이드 부탁드려요

시스템식 사용하지 않고 아래의 함수를 이용 해서 매매식을 만들려고 합니다. OnBarAppended(nData) GetShowMeData(sShowMeName, nPlotNum, nPlotIndex) 가이드좀 부탁드려요.
프로필 이미지
oldforce
2022-04-26
1608
글번호 225654
답변완료

수식 수정 부탁합니다.

안녕하세요! 많은도움 받고 있습니다. 아래식은 정해진 시간에 한개식 매도하고 청산 시간에 한개식 메수하는 식인데 진입 매도는 잘되나 청산은 안되고 있으며 진입 매도 후 예스스팟 실행을 한번 종료 후 다시 실행시키면 한개씩 청산이 잘됩니다. 다시 실행하지 않아도 될 수 있게 수정 부탁합니다. var EntryTime = 094000; var ExitTime = 132000; var MaxEnryVol = 3; var Entry,Exit,CurrentVol; var CSV,PSV,CSX,PSX; var CallOrderCode,PutOrderCode; function Main_OnStart() { var d = new Date(); var YYYYMMDD = d.getFullYear()*10000+(d.getMonth()+1)*100+d.getDate(); var HHMMSS = d.getHours()*10000+d.getMinutes()*100+d.getSeconds(); Main.MessageList(HHMMSS,"Start"); Entry = true; if (HHMMSS >= EntryTime) { Entry = false; } Exit = true; if (HHMMSS >= ExitTime) { Exit = false; } if (Entry == true || Exit == true) { Main.MessageList(HHMMSS,"1번 타이머동작"); Main.SetTimer(1, 5000); } } function Main_OnTimer(nEventID) { var d = new Date(); var YYYYMMDD = d.getFullYear()*10000+(d.getMonth()+1)*100+d.getDate(); var HHMMSS = d.getHours()*10000+d.getMinutes()*100+d.getSeconds(); if (nEventID == 1) { if (Entry == true && HHMMSS >= EntryTime) { Main.MessageList(HHMMSS,"진입시작"); -------------------------------- 중략 --------------------------------------------- //종목을 찾았으면 Main.SetUserValue("SellDate",YYYYMMDD); Main.SetUserValue("CallOrderCode",CallOrderCode); Main.SetUserValue("PutOrderCode",PutOrderCode); Entry = false; if (ExitTime > EntryTime) Main.KillTimer(1); A1.OrderSell(CallOrderCode, 1, Option.GetBid(CallOrderCode, 2), 0); A1.OrderSell(PutOrderCode, 1, Option.GetBid(PutOrderCode, 2), 0); CurrentVol = 1; Main.SetTimer(2, 2000); } if (Exit == true && HHMMSS >= ExitTime) { Exit = false; if (ExitTime > EntryTime) Main.KillTimer(1); var SellDate = Main.GetUserValue("SellDate") if (YYYYMMDD == SellDate) { CallOrderCode = Main.GetUserValue("CallOrderCode"); PutOrderCode = Main.GetUserValue("PutOrderCode"); if (CallOrderCode != "") { A1.SetBalance(CallOrderCode, 0); if (A1.Balance.count > 0 && A1.Balance.position == 1) CSV = A1.Balance.count; else CSV = 0; if (PSV > 0) { Main.SetTimer(3, 2000); CSX = 1; A1.OrderBuy(CallOrderCode, 1, Option.GetAsk(CallOrderCode, 2),0); } } if (PutOrderCode != "") { A1.SetBalance(PutOrderCode, 0); if (A1.Balance.count > 0 && A1.Balance.position == 1) PSV = A1.Balance.count; else PSV = 0; if (PSV > 0) { Main.SetTimer(4, 2000); PSX = 1; A1.OrderBuy(PutOrderCode, 1, Option.GetAsk(PutOrderCode, 2),0); } } } } } if (nEventID == 2) { CurrentVol = CurrentVol+1; if (CurrentVol <= MaxEnryVol) { A1.OrderSell(CallOrderCode, 1, Option.GetBid(CallOrderCode, 2),0); A1.OrderSell(PutOrderCode, 1, Option.GetBid(PutOrderCode, 2), 0); } else { Main.KillTimer(2); } } if (nEventID == 3) { CSX = CSX+1; if (CSX <= CSV) { A1.OrderBuy(CallOrderCode, 1, Option.GetAsk(CallOrderCode, 2),0); A1.OrderBuy(PutOrderCode, 1, Option.GetAsk(PutOrderCode, 2),0); } else { Main.KillTimer(3); } } if (nEventID == 4) { PSX = PSX+1; if (PSX <= PSV) { A1.OrderBuy(CallOrderCode, 1, Option.GetAsk(CallOrderCode, 2),0); A1.OrderBuy(PutOrderCode, 1, Option.GetAsk(PutOrderCode, 2),0); } else { Main.KillTimer(4); } } }
프로필 이미지
팡팡
2022-04-25
1503
글번호 225653
답변완료

진입과 청산 또는 매수청산과 동시 매도

안녕하세요 시스템 설정창 에서 진입신호 와 모든신호 두가지가 있습니다 모든신호 선택시 매수 2계약체결되고 청산 무포 또는 청산과동시 매도2계약 체결됩니다 근데 저는 1계약씩 하고싶은데요 번거롭드라구요 처음에 진입신호로 선택해놓고 1계약 진입되었으면 다시 모든 신호로 변경해야되기때문에 불편하드라구요 혹시 진입신호 선택 계속 사용해도 문재없이 순서가 맞는지 질문드려봅니다
프로필 이미지
워런버핏100
2022-04-21
1532
글번호 225652

oldforce 님에 의해서 삭제되었습니다.

프로필 이미지
oldforce
2022-05-04
79
글번호 225651