커뮤니티

예스스팟 Q&A

답변완료

보완 부탁드립니다...^^

아래와 같이 보완 부탁드립니다. 1) 매수 수량을 수시로 변경해서 사용 할 수 있도록 조건을 추가 해주세요. // Account1.OrderBuy(MarketData.code,1,0,1); // n주를 시장가 주문 - n주 부분에 수량을 임의로 바꾸어 쓸 수 있도록 2) 매수 후 손절 기준에 오면 자동 매도할 수 있도록 조건을 추가 해주세요. - 매수가 기준 -5%( 수치를 변경해서 사용할 수 있도록 해주세요) 3) 매수 후 익절 기준에 오면 자동 매도할 수 있도록 조건을 추가 해주세요. - 매수가 기준 +5%( 수치를 변경해서 사용할 수 있도록 해주세요)
프로필 이미지
비밀통로
2024-12-18
444
글번호 226161

오아시스3 님에 의해서 삭제되었습니다.

프로필 이미지
오아시스3
2024-11-22
18
글번호 226156
답변완료

문의

요청내용은 2가지 입니다. 1. 아래 수식은 "084500 부터" 시세감시와 계산을 통해 진입합니다. 이 수식을 "차트에서 sell 신호가 나오면" 그때부터 시세감시와 계산을 하는 수식으로 변경하고 싶습니다. 084500 작동 내용은 삭제하여 주십시요. 2. 오후 3시 15분에 손절 또는 익절이 안된 상태로 미결제 콜풋 한쌍이 남아있을 때 청산하는 수식 추가해 주십시요. 항상 고맙습니다. ********************************************************************************* var ID1,ID2,num1,num2; var Entry,CallCode,PutCode; var Xvol1,Xvol2; function Main_OnStart() { Main.MessageList("Start"); Main.SetTimer(1, 5000); Entry = 0; } function Main_OnTimer(nEventID) { var d = new Date(); var HHMMSS = d.getHours()*10000+d.getMinutes()*100+d.getSeconds(); if (HHMMSS >= 84500) { var sum = Option1.GetCurrent(0,0)+Option1.GetCurrent(1, 0); var diff = Math.abs(Option1.GetCurrent(0,0)-Option1.GetCurrent(1, 0)); if (Entry == 0 && sum <= 20 && diff <= 0.10) { Entry = sum; CallCode = Option1.GetATMCallRecent(0); PutCode = Option1.GetATMPutRecent(0); ID1 = Account1.OrderBuy(CallCode, 1, Option1.GetAsk(CallCode, 5), 0); ID2 = Account1.OrderBuy(PutCode, 1, Option1.GetAsk(PutCode, 5), 0); Xvo11 = 1; Xvo12 = 1; } if (Entry > 0 && (Option1.GetCurrent(CallCode)+Option1.GetCurrent(PutCode) >= Entry+1) || (Option1.GetCurrent(CallCode)+Option1.GetCurrent(PutCode) <= Entry-1)) { if (Xvol1 > 0) { Account1.SetUnfill(num1); if (Account1.Unfill.count > 0) { Xvol1 = Xvol1-Account1.Unfill.count; Account1.OrderCancel(num1); } } if (Xvol2 > 0) { Account1.SetUnfill(num2); if (Account1.Unfill.count > 0) { Xvol2 = Xvol2-Account1.Unfill.count; Account1.OrderCancel(num2); } } if (Xvol1 > 0) { Account1.OrderSell(CallCode, Xvol1, Option1.GetBid(CallCode, 5), 0); } if (Xvol2 > 0) { Account1.OrderSell(PutCode, Xvol2, Option1.GetBid(PutCode, 5), 0); } //Entry = 0; Main.KillTimer(1); } } } function Main_OnOrderResponse(OrderResponse) { if (OrderResponse.orderID == ID1) { num1 = OrderResponse.orderNum; } if (OrderResponse.orderID == ID2) { num2 = OrderResponse.orderNum; } }
프로필 이미지
좌오비우오비
2024-11-19
463
글번호 226155
답변완료

yesspot으로 pair trading을 작성했는데 중복주문이 동시에 여러번 들어갑니다.

MarketData1과 MarketData2 간에 호가차이가 8bp 이하면 entry해서 15bp 이상에서 exit하는 로직입니다. 그런데entry, exit시에 중복으로 3~5건 계약이 중복되고 주문시간이 같아서 Main.SetTimer(1,10000); 를 추가했지만 그래도 중복으로 들어갑니다. 검토 부탁드립니다.ㅠ.ㅜ var A1orderOfUnfills; //A1 미체결 주문 var A2orderOfUnfills; //A2 미체결 주문 var obsevationSpreadForBuy; var obsevationSpreadForSell; var obsevationSpreadForStopLoss; var buySpread = 0.08; var sellSpread = 0.15; function Main_OnU*pdateMarket(sItemCode, lU*pdateID) { obsevationSpreadForBuy = MarketData2.Bid(1) - MarketData1.Ask(1); obsevationSpreadForSell = MarketData2.Ask(1) - MarketData1.Bid(1); obsevationSpreadForStopLoss = MarketData2.Ask(1) - MarketData1.Bid(1); // spread 0 이하인지 Account1.SetBalanceItem(MarketData1.code, 0); //nPosition 0: 구분없음, 1:매도, 2:매수 Account2.SetBalanceItem(MarketData2.code, 0); A1orderOfUnfills = Account1.GetTheNumberOfUnfills(); A2orderOfUnfills = Account2.GetTheNumberOfUnfills() if(Account1.Balance.count == 0 && Account2.Balance.count == 0 && A1orderOfUnfills == 0 && A2orderOfUnfills == 0) { if (obsevationSpreadForBuy <= buySpread) { Main.MessageLog("매수 신호 구간"); Main.MessageLog("MarketData1 Ask/"+ MarketData1.Ask(1)); Main.MessageLog("MarketData2 Bid/"+ MarketData2.Bid(2)); //MarketData1 2계약 매수1호가로 매도 Account1.OrderSell(Main.GetOrderCode(MarketData1.code), 1, MarketData1.Ask(1),2); //MarketData2 1계약 매도1호가로 매수 Account2.OrderBuy(Main.GetOrderCode(MarketData2.code), 1, MarketData2.Bid(1),2); Main.SetTimer(1,10000);//10초 지연. 미체결 주문 확인해도 중복 체결돼서 추가함 ---------------------------------------> 그래도 계속 중복 주문이 들어감 } } else if(Account1.Balance.count == 1 && Account2.Balance.count == 1 && A1orderOfUnfills == 0 && A2orderOfUnfills == 0) { //MarketData1(10년물) 매도1호가와 MarketData2(2년물) 매수1호가 간에 금리차이가 buySpread 이상이면 매수 if (obsevationSpreadForSell > sellSpread) { Main.MessageLog("obsevationSpreadForSell/" + obsevationSpreadForSell); Main.MessageLog("sellSpread/" + sellSpread); Main.MessageLog("청산 신호 구간"); Main.MessageLog("MarketData1 Ask/"+ MarketData1.Ask(1)); Main.MessageLog("MarketData2 Bid/"+ MarketData2.Bid(2)); //MarketData1 2계약 매도1호가로 매수 Account1.OrderBuy(Main.GetOrderCode(MarketData1.code), 1, MarketData1.Bid(1),2); //MarketData2 1계약 매수1호가로 매도 Account2.OrderSell(Main.GetOrderCode(MarketData2.code), 1, MarketData2.Ask(1),2); Main.SetTimer(1,10000);//10초 지연. 미체결 주문 확인해도 중복 체결돼서 추가함 ---------------------------------------> 그래도 계속 중복 주문이 들어감 } } }
프로필 이미지
typeb
2024-11-14
419
글번호 226154

오아시스3 님에 의해서 삭제되었습니다.

프로필 이미지
오아시스3
2024-11-15
12
글번호 226153
답변완료

처분 관련

A1.SetBalance(Callcode,0); A1.SetBalance(Putcode,0); if ( A1.Balance.count > 0 && A1.Balance.position == 2 && (BuyCond == 0 || SellCond == 0) ) { if ( A1.Balance.current <= A1.Balance.avgUnitCost*0.63 ) { A1.OrderSell(A1.Balance.code, A1.Balance.count, 0, 1); BuyCond = 0; SellCond = 0; Main.MessageList("BuyCond:" ,BuyCond) Main.MessageList("SellCond:" ,SellCond) } }
프로필 이미지
지나리
2024-11-07
395
글번호 226152
답변완료

ReqPowerSearch함수를 사용 시 관심종목내에서 검색이 가능한지 문의드립니다.

ReqPowerSearch함수를 사용 시 관심종목내에서 검색이 가능한지 문의드립니다.
프로필 이미지
bnf52
2024-11-03
436
글번호 226148

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

프로필 이미지
1000djr
2024-10-28
7
글번호 226144

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

프로필 이미지
1000djr
2024-10-25
15
글번호 226143

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

프로필 이미지
1000djr
2024-10-24
0
글번호 226142