커뮤니티

예스스팟 Q&A

관리자에 의해 수식작성 QnA로 이동되었습니다

프로필 이미지
매매의추억
2013-12-05
33
글번호 222736
0
답변완료

730번 수식 다시 문의드립니다

항상 수고 많으십니다.장문의 수식을 짜주셔서 감사합니다. 730번 수식 다시 문의 드립니다. 진입과 장중 10%이득 청산은 문제 없이 제대로 돌아갑니다. 1. 우선 14시50분에서 3시까지 장종반 동시호가에 청산주문이 나가지 않습니다. 시간을 145100으로 바꿔서 장종반 동시호가에 시장가로 청산되도록 하였는데 여러 가지 방법을 써 보았지만(예상체결업데이트를 써보았지만 실폐함 20003번), 동시호가 주문이 나가지 않습니다. 우선 2시 51분에 동시호가에 주문이 나갈 수 있도록 수정 부탁 드립니다. 2. 아 그리고 제가 뭔가 착각하고 글을 수정했는데요.. 지금 주문은 Account1.OrderSell(Account1.Balance.code, Account1.Balance.count,0,12); 하고 시간외종가 주문을 내고 있느데 15시 01분에 주문이 나가도록 설정해 놓은 상태인데 15시 10분에 주문이 나가는데 15시 10분이전에 주문이 나가게 할려면 어떻게 해야하나요.. 그리고, TodayOrderList는 종목의 가격을 불러 오는 변수값인듯 하여, SetBalanceItem에 에 종목코드를 리턴하는 변수값을 새로 만들었습니다. 감사합니다.
프로필 이미지
재령
2013-12-10
1005
글번호 222734

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

프로필 이미지
마루아빠
2013-12-03
6
글번호 222732
답변완료

감사합니다. ^^

문의 드리는 사항에 대해서 항상 친절한 답변 너무 감사드립니다. 글에 답변을 하나하나 달려고 했으나 게시판 공해인거 같아 글 하나로 남깁니다. 2013년도 이제 얼마 남지 않았네요. 건강 유의하시구요. 2014년에는 주식관련 예스프로그램 나온다는 얘길 들었습니다. 엄청 기대가 됩니다. ^^ 항상 즐거운 하루 되세요. ^^
프로필 이미지
오토
2013-12-02
1014
글번호 222731

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

프로필 이미지
마루아빠
2013-11-29
18
글번호 222730
답변완료

수식 문의 드립니다

검토 후 수정바랍니다. ◎ 연결선물지수차트에서 완성신호가 발생하면 선물 잔고객체를 세팅하고 포지션상태를 확인합니다. ◎ 완성신호가 무포지션 상태에서 발생한 Buy이면, 1. 혹시 있을지 모를 미체결주문을 확인하여 모두 취소하고 주문수량 : 선물계좌 주문가능금액의 50%, 최대 20계약내 산출수량을 (주문수량계산 로직이 틀린 것 같은데... ㅠ) 주문가격 : 매도2호가로 매수주문합니다. 2. 선물 매도포지션 보유시 발생한 Buy이면 - 매도포지션 전량 청산하고, 매수포지션 주문합니다 ① 매도포지션 청산 청산 : 미체결주문을 확인하여 모두 취소하고 청산주문을 집행합니다. 주문수량 : 보유 매도포지션 전량 청산주문 주 문 가 : "매도2호가", 1분 동안 미체결 잔량이 발생하면 "시장가"로 정정 청산주문합니다. ② 청산완료 되어 잔고상 포지션계약수가 0 이 응답확인 후 매수 주문합니다 주문수량 : 변경된 선물계좌 주문가능금액을 재확인하여 금액의 50%, 최대 20계약내 산출수량을 주문가격 : 매도2호가로 매수주문합니다. ◎ 차트에서 ExitLong 완성신호가 발생하면 청산 : 미체결주문을 확인하여 모두 취소하고 청산주문을 집행합니다. 주문수량 : 보유 매수포지션 전량 주 문 가 : "매도2호가", 1분 동안 미체결 잔량이 발생하면 "시장가"로 정정 청산주문합니다. 종목객체 F1 계좌객체 A1 차트객체 C1 var Position; var OrdeCode; var BID; var SID; var Number ; var EntryVol function Main_OnStart() { Main.MessageLog("시작"); OrdeCode = Main.GetOrderCode(F1.code); } function C1_OnRiseSignal(Signal) { Main.MessageLog("신호완성/"+Signal.signalKind); A1.SetBalanceItem(OrdeCode, 0) ; // 차트 주종목의 잔고 객체 생성 if (A1.Balance.count == 0) { Position = 0; } A1.SetBalanceItem(OrdeCode, 1) ; // (0: 구분없음, 1:매도, 2: 매수) if (A1.Balance.count > 0) { Position = -1; } A1.SetBalanceItem(OrdeCode, 2) ; if (A1.Balance.count > 0) { Position = 1; } if (Position == 0 && Signal.signalKind == 1 ) { Main.MessageLog("매수진입"); // 종목 미체결주문 모두 취소 var UFnum = A1.GetTheNumberOfUnfills(); for (var i = 0; i < UFnum; i++) { A1.SetUnfillIndex(i); if (A1.Unfill.code == OrdeCode && A1.Unfill.count > 0) { A1.OrderCancel(A1.Unfill.orderNum); Main.MessageLog("미체결주문 모두 취소"); } } //주문수량 : 선물계좌 잔고금액의 50%, 최대 20계약내 산출수량 EntryVol = Math.floor(A1.GetBalanceETCinfo(30) * 0.5 / OrdeCode.current); if (EntryVol >= 20) { EntryVol = 20 ; } if (EntryVol < 1) { Main.MessageLog("잔고불충분"); } A1.OrderBuy(OrdeCode, EntryVol , OrdeCode.Ask(2), 0); } if (Position == -1 && Signal.signalKind == 1 ) // buy { Main.MessageLog("매도청산후 매수진입"); // 종목 미체결주문 모두 취소 var UFnum = A1.GetTheNumberOfUnfills(); // 미체결리스트 개수 for (var i = 0; i < UFnum; i++) { A1.SetUnfillIndex(i); if (A1.Unfill.code == OrdeCode && A1.Unfill.count > 0) { A1.OrderCancel(A1.Unfill.orderNum); Main.MessageLog("미체결주문 모두 취소"); } } // 매도2호 청산주문하고 1분후 시장가로 정정하여 매도청산 BID = A1.OrderBuy (OrdeCode, A1.Balance.count, OrdeCode.Ask(2),0); // 청산완료확인 후 변경된 잔고금액으로 주문수량결정 진입 A1.SetBalanceItem(OrdeCode, 0) ; // (0: 구분없음, 1:매도, 2: 매수) if (A1.Balance.count == 0) { //주문수량 : 선물계좌 잔고금액의 50%, 최대 20계약내 산출수량 EntryVol = Math.floor(A1.GetBalanceETCinfo(30) * 0.5 / OrdeCode.current); if (EntryVol >= 20) { EntryVol = 20 ; } if (EntryVol < 1) { Main.MessageLog("잔고불충분"); } A1.OrderBuy(OrdeCode, EntryVol , OrdeCode.Ask(2), 0); } } if (Position == 1 && Signal.signalKind == 2 ) // ExitLong { // 종목 미체결주문 모두 취소 var UFnum = A1.GetTheNumberOfUnfills(); for (var i = 0; i < UFnum; i++) { A1.SetUnfillIndex(i); if (A1.Unfill.code == OrdeCode && A1.Unfill.count > 0) { A1.OrderCancel(A1.Unfill.orderNum); Main.MessageLog("미체결주문 모두 취소"); } } //매수2호 매도하고 1분후 시장가로 정정 매도청산 SID == A1.OrderSell(OrdeCode,A1.Balance.count,OrdeCode.Bid(2),0); } } function Main_OnOrderResponse(OrderResponse) { if (OrderResponse.orderID == BID) { Number = OrderResponse.orderNum; Main.SetTimer(1, 60000); } if (OrderResponse.orderID == SID) { Number = OrderResponse.orderNum; Main.SetTimer(2, 60000); } } function Main_OnTimer(nEventID) { if (nEventID == 1) { A1.OrderReplacePrice(Number,0); //시장가청산으로 변경 Main.KillTimer(1); } if (nEventID == 2) { A1.OrderReplacePrice(Number,0); //시장가청산으로 변경 Main.KillTimer(2); } } function Main_OnNotifyFill(NotifyFill) { if (NotifyFill.orderNum == Number) { Main.KillTimer(1); Main.KillTimer(2); } }
프로필 이미지
gigi
2013-11-28
1114
글번호 222727

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

프로필 이미지
유선수
2013-11-27
13
글번호 222726
0
답변완료

수식 문의 드립니다

1. 아래는 저번에 선물차트 신호로 옵션진입하는 로직을 작성하여 주신 내용입니다. 이번에는 는 옵션차트의 신호를 보고 옵션에 주문을 넣는 주문을 부탁드립니다. 옵션차트신호가 매수신호일 때, 옵션차트종목보다 +2단계 위의 옵션종목을 매도합니다. 옵션차트신호가 매도신호일 때 옵션차트종목보다 -2단계 아래 옵션종목을 매수합니다. 2. 당일매매가 아니고 포지션전략이므로 예스스팟이 꺼졌다 다시 켜져도 위에서 진입했던 동일종목이 청산과 반전이 되도로 로직 부탁드립니다. 3. 데이타 매니저에 코스피 연결선물이나 월물별 코스피 선물 종목추가하는 방법 좀 안내 부탁드립니다. 안녕하세요 예스스탁입니다. 차트의 신호로 보고 옵션에 주문을 넣으시므로 시크립트 객체화면에 총 3개의 객체가 필요합니다. 옵션객체 추가 --> 속성에서 지정하실 부분이 없습니다 차트객체 추가 --> 속성에서 객체명은 Chart1, 차트아이디는 차트와 동일한 이름으로 지정 계좌객체 추가 --> 속성에서 객체명은 Account1, 계좌변호는 거래하고자 하는 선옵계좌를 지정 아래는 수식내용입니다. var Start = 0; var SelCallCode; var SelCallPrice; var SelCallVol; var SellPutCode; var SellPutPrice; var SellPutVol; function Main_OnStart() { Start = 0; } function Chart1_OnRiseSignal(Signal) { //차트에서 매수신호 발생하면 콜 매수 if (Signal.signalKind ==1) { Start = 1; SellCallCode = Option.GetATMCallRecent(0);//주문종목 : ATM콜 종목코드 SellCallPrice = Option.GetBidByCode(SellCallCode, 2);//주문가격 매수2호가 SelCallVol = Signal.count;//주문수량 : 차트신호의 수량 Account1.OrderSell(SellCallCode,SelCallVol, SellCallPrice, 0); Main.MessageList("등가콜매도 : "+SellCallCode); } //차트에서 매수청산신호 발생하면 콜매도 청산 if (Start == 1 && Signal.signalKind == 2) { //매도2호가로 청산 Account1.OrderBuy(SellCallCode, SelCallVol, Option.GetAskByCode(SellCallCode, 2), 0); Main.MessageList("콜청산 : ",SellCallCode); } //선물차트에서 매도신호 발생하면 풋 매수 if (Signal.signalKind ==3) { Start =1; SellPutCode = Option.GetATMPutRecent(0);//주문종목 : ATM풋 종목코드 SellPutPrice = Option.GetBidByCode(SellPutCode, 2);//주문가격 : 매수 2호가 SellPutVol = Signal.count; //수량 : 차트신호의 수량 Account1.OrderSell(SellPutCode, Signal.count, SellPutPrice, 0); Main.MessageList("등가풋매도 : "+SellPutCode); } //차트에서 매도청산신호 발생하면 풋매도 청산 if (Start == 1 && Signal.signalKind == 4) { Account1.OrderBuy(SellPutCode, SellPutVol, Option.GetAskByCode(SellPutCode, 2), 0); Main.MessageList("풋청산 : ",SellPutCode); } }
프로필 이미지
무명
2013-11-28
1100
글번호 222725

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

프로필 이미지
마루아빠
2013-11-22
4
글번호 222723

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

프로필 이미지
마루아빠
2013-11-22
12
글번호 222722