커뮤니티

예스스팟 Q&A

유경완 님에 의해서 삭제되었습니다.

프로필 이미지
유경완
32
글번호 225665
답변완료

수식 질문드립니다.

항상 수고가 많으십니다. 수식작성중 어려움이 있어 도움을 받고자 글 남깁니다. 제가 구현하고자 하는 수식은 1. 볼벤 상,하단을 일목균형표의 후행스팬이 상향,하향 돌파했을시. 그 값을 저장 (이후부터는 빠른 이해를 위해 상향돌파 기준으로만 작성하지만 실제식은 하,상향 둘다 적용시길 예정) 2. 후행스팬이 볼벤 상단을 유지중일때 1번값 밑으로 내려간가면 손절, 다시 위로 올라간다면 재진입 3. 340틱 이상 상승했을시 or 볼벤안으로 후행스팬이 재진입했을시 익절 4. 하루 340틱 이상 수익이 나왔을시 그날은 거래 중지. 5. 340포인트의 수익을 봤다면 볼밴 상단 혹은 하단돌파 전까지는 거래 중지. 6. 볼밴 상단 돌파이후 볼밴내부에서 후행스팬이 유지되고 있을시 거래중지. 7. 모든 거래는 실시간으로 현재값 기준으로 진입.(차트가 완성되기 전에도 진입가능) 이렇게 수식을 짜고싶습니다. 지금 대략적으로 수식을 짠게 있지만 생각처럼 작동하지 않아서 한번 부탁드립니다. 언제나 고생이 많으십니다. 감사합니다
프로필 이미지
소망이
1475
글번호 225664
답변완료

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

수고 하십니다. 일정 거래시간과 계좌 순손익이 일정금액을 초과하면 계좌 일괄청산을 하려고 다음과 같이 스크립트를 작성하였슴니다. 원하는 처리가 안되어서 스크립트에 오류가 있는지 확인 부탁 드립니다. 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); } } }
프로필 이미지
고가행진
1551
글번호 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;} }
프로필 이미지
파도여
1425
글번호 225662

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

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

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

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

기능구현 문의드립니다

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

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

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

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

시스템식 사용하지 않고 아래의 함수를 이용 해서 매매식을 만들려고 합니다. OnBarAppended(nData) GetShowMeData(sShowMeName, nPlotNum, nPlotIndex) 가이드좀 부탁드려요.
프로필 이미지
oldforce
1553
글번호 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); } } }
프로필 이미지
팡팡
1447
글번호 225653