커뮤니티

예스스팟 Q&A

답변완료

예스스팟에서 SnP호가 시세 이상 발생

예스스팟에서 SnP(S&P)호가 시세 이상 발생 Ask1 Bid1 호가 가격에서 간혹 0 이 들어오고 있읍니다 현대선물, 우리선물 공히 동일하게 발생합니다. 수정 부탁합니다
프로필 이미지
경복궁
2014-09-04
889
글번호 223152
답변완료

스팟문의

[시작하기에 앞서...] 이번에도 하나하나 추가하다보니까 다소 질문이 많습니다. 배우고자 하는 이의 열정이라 생각해주시고 넓은 양해 부탁드립니다. -------------------------------------------------------------- 먼저 1002번 질문이 다소 까다로웠는데 성의를 다해 답변주신점 먼저 감사드립니다. 1002번에 대해 추가문의드립니다. 1. 차트상의 신호발생 종목은 골드(GC)이나 실제 매매는 마이크로 GC[MGC]를 거래하고자 합니다. 이때 스팟설정은 어떻게 설정해야 하는지 설명부탁드립니다. 또한, MGC를 매매할 경우 호가공백이 엄청 생기는데, 매수체결이 10계약 되었다고 할때 매수청산이 8계약이 완료된 상태에서 매도진입신호가 나오면 미체결된 2계약에 대해 매수청산주문이 취소되고 바로 시장가로 나가게 되어있습니다. 이때 호가공백으로 매도호가의 매우 불리한 가격에 체결될 가능성이 큽니다. 그래서 제 생각으로는 주종목(GC)의 현재가 -1 틱에 해당하는 MGC의 동일가격에 주문을 내고, 3분이 지나도 미체결시 -5틱, 또 3분후 -5틱 정정주문을 내면 해결되지 않을까 합니다. 이를 해결할 수 있는 더 좋은 방법이 있다면 제시를 부탁드리겠습니다. 2. 신규주문을 내기전 만기일을 체크해서 3일이전에는 당월물을, 3일째되는날부터는 차월물 진입하는 방법부탁드립니다. 3. 아래 Main_OnClose 함수는 어떨때 동작하는지요? 시스템이 갑자기 셧다운 되거나 네트워크 단절 등에서 작동하나요? 예스스팟[3180 화면]에서 전략식을 새롭게 업데이트하기 위해 X버튼을 눌렀을 경우에는 작동하지 않는지요? 또한, 예스글로벌을 재로그인하면 자동주문이 시험적용으로 변경이 되는데 이런상황에서는 어떻게 되는지...이전에 사용자의 책임하에 옵션을 두어 자동주문을 지속적으로 유지할지 아닐지에 대해 개선요청을 했었는데 어떻게 되어가는지도 궁금합니다. 매일 아침 예스글로벌을 재로그인해야 하는데, 매번 동일한 작업을 해야 한다는 것도 소모적이지않나싶습니다. 사용자 책임하에 충분히 개선이 가능한 부분이라 생각이듭니다. 만약 후자의 상황에서 작동하지 않는다면 현재 포지션이 진입되어 있고, 예스스팟 전략식을 새롭게 업데이트해야 할 경우에는 어떻게 해결가능한지 방법 부탁드립니다. function Main_OnClose() { Main.SetUserValue("gStep", gStep); Main.SetUserValue("gEntryName", gEntryName); ........ } 4. MarketData.code와 Main.GetOrderCode(Signal.code) 사용에 있어 차이점이 있는지요? 소스를 보면 병행해서 쓰는 것을 보아 차이점은 없다라고 생각이 드는데.... 설명부탁드립니다. 5. 며칠동안 테스트를 해보았는데, 포지션이 진입되어 있을 경우 시스템이 재로그인되거나(매일아침 동일시간), 예상치못한 셧다운이 발생시 이를 어떻게 해결하느냐가 관건인듯 합니다. Main_OnClose()에서 관련 변수들의 값을 저장하는 것만으로는 시스템운용이 어렵지 않나생각이 듭니다. 차트신호, 잔고, 주문변수 등을 싱크시키는 방법 부탁드립니다. 추가적으로 이부분에 대해 조언 부탁드립니다. 6. SetUserValue를 사용하여 저장된 데이타를 에디터 등을 이용해서 저장된 내용을 볼수 있는지요? 내부파일에 저장된다는 의미가 무엇인지 궁금합니다. 7. 2번질문하고 겹치는 부분이 있습니다. 현재는 스팟편집기에서 종목객체를 추가하여 거래하고자 하는 종목을 유저가 선택하는데, 이게 아닌 거래하고자 하는 종목을 동적으로 생성하고 만기일 3일전에 삭제하고, 차월물 객체를 생성해서 이용할수도 있는지요? 가능하다면 방법 부탁드립니다. 늘 감사드립니다. 언제 한번 찾아뵙고 식사한번 대접해드리고 싶네요. 수고하십시요.
프로필 이미지
gt
2014-09-16
1000
글번호 223151
답변완료

2분봉과 200틱봉 시스템

항상 감사드립니다 아래식은 예스트레이더에서 사용하는 시스템식입니다 input : Period(30),Ma1(15),short(33),Long(75),signal(9); var : AA(0),BB(0),DD(0),EE(0),FF(0),GG(0),HH(0),II(0),DP(0),DM(0); DP = ema(iff(H-H[1]>0 && H-H[1]>L[1]-L,H-H[1],0),Period)/ ema(max(max(H-L,abs(C[1]-H)),abs(C[1]-L)),Period)*100; DM = ema(iff(L[1]-L>0 && H-H[1]<L[1]-L,L[1]-L,0),Period)/ ema(max(max(H-L,abs(C[1]-H)),abs(C[1]-L)),Period)*100; AA=DP; BB=DM; DD=ma(HIGH, MA1); EE=Trix(15); FF=ema(EE,9); GG=ma(LOW, MA1); HH = MACD(short, long); II = ema(HH,signal); if o<c and AA>BB AND DD<=C AND EE>=FF and HH > II and HH >=0 Then var10 =1 ; if o>c and AA<BB AND GG>=C AND EE<=FF and HH < II and HH <=0 Then var10 = -1 ; 위식을 이용하여 2분봉과 200틱봉에서 같은신호가 나왓을때 신호를 발생시키고 싶습니다 1.시스템식 2분봉에서 var10=1 and 200틱봉에서 var10=1 이면 매수 2분봉에서 var10=-1 and 200틱봉에서 var10=-1 이면 매도 2. 신호발생시 2분봉 또는 200틱봉에서 서로 먼저 발생할수 있는데 챠트셋팅은 어느챠트를기준으로 해야 하는지... 감사합니다
프로필 이미지
조민철
2014-09-03
1077
글번호 223150
답변완료

옵션 합성전략 1분뒤 매수정정 주문

YesSpot 매뉴얼에 예제로 나와 있는 내용인데, 이게 하나의 종목이 아니라, 옵션 합성전략(Ex 스트래들 매수)을 이용하면 수식을 어떻게 변형해야 하는지 알려주시면 감사하겠습니다. 늘 성실한 답변 감사드립니다.
프로필 이미지
대가북극곰
2014-09-02
1051
글번호 223149
답변완료

주문체결 응답 이벤트

선물 시스템은 예스랭귀지로 만들고, 예스랭귀지 시스템 신호를 받아서 예스스팟에서 매매를 진행합니다. 매수 진행 중에 매도 신호가 발생하여 리버스가 된 경우 스팟에서 OrderResponse 이벤트가 다소 불안정한 것 같아 문의 드립니다. 리버스 발생시 시그널(Signal.signalKind)은 매수청산(2) -> 매도(3) 순서로 발생되겠지요. 실제 상황에서는 거의 동시에 이뤄질 것입니다. 이때, 매수청산 이후 발생한 매도에 대해 주문접수>주문응답>체결응답을 확인하려고 하는데요. 매수 청산이 잘 이뤄지고 매도 신규 진입도 잘 이뤄졌으나 신규 진입한 매도에 대한 주문 응답이 동작하지 않는 경우가 있습니다. 항상 그런 것은 아닌 것 같고 되다 안되다 그러네요... 참고로, 현재 테스트를 위해 모의서버를 사용 중이며, 3개 이상의 시스템 신호를 하나의 스팟에서 동시에 처리합니다. 혹시, 이 문제가 매수청산에 대한 주문응답과 신규매도 주문응답이 거의 동시에 들어오게 되면서 주문응답 이벤트가 뒤에 들어온 신규매도 주문응답 이벤트를 놓치거나 스킵하게 될 수도 있는 건지요? 스팟 코드는 아래와 같습니다. 0) 전역 변수: var BuyOrderID = new Array(4); var ShortOrderID = new Array(4); var ExitOrderID = new Array(4); var BuyOrderNumber = new Array(4); var ShortOrderNumber = new Array(4); var ExitOrderNumber = new Array(4); 1) 시스템 시그널: function Chart1_OnRiseSignal(Signal) { MakeOrder(1, Signal.signalKind); } function Chart2_OnRiseSignal(Signal) { MakeOrder(2, Signal.signalKind); } function Chart3_OnRiseSignal(Signal) { MakeOrder(3, Signal.signalKind); } function MakeOrder(ChartNumber, ChartSignal) { if(ChartSignal == 1) { BuyOrderID[ChartNumber] = Account1.OrderBuy(MarketData1.code, 1, MarketData1.Ask(5), 0); Start[ChartNumber] = 1; } if(ChartSignal == 2 && Start[ChartNumber] == 1) { ExitOrderID[ChartNumber] = Account1.OrderSell(MarketData1.code, 1, MarketData1.Bid(5), 0); } if(ChartSignal == 3) { ShortOrderID[ChartNumber] = Account1.OrderSell(MarketData1.code, 1, MarketData1.Bid(5), 0); Start[ChartNumber] = 1; } if(ChartSignal == 4 && Start[ChartNumber == 1) { ExitOrderID[ChartNumber] = Account1.OrderBuy(MarketData1.code, 1, MarketData1.Ask(5), 0); } } 2) 주문 응답 function Main_OnOrderResponse(OrderResponse) { for(var i=1; i<=3; i++) { if(OrderResponse.orderID == BuyOrderID[i]) { BuyOrderNumber[i] = OrderResponse.orderNum; } if(OrderResponse.orderID == ShortOrderID[i]) { ShortOrderNumber[i] = OrderResponse.orderNum; } if(OrderResponse.orderID == ExitOrderID[i]) { ExitOrderNumber[i] = OrderResponse.orderNum; } } } 3) 주문 체결 응답 function Main_OnNotifyFill(NotifyFill) { for(var i=1; i<=3; i++) { if(NotifyFill.orderNum == BuyOrderNum[i]) { Main.MessageList("신규 매수 체결 응답"); } if(NotifyFill.orderNum == ShortOrderNum[i]) { Main.MessageList("신규 매도 체결 응답"); } if(NotifyFill.orderNum == ExitOrderNum[i]) { Main.MessageList("청산 주문 체결 응답"); } } }
프로필 이미지
곰탈
2014-09-03
1115
글번호 223146

대가북극곰 님에 의해서 삭제되었습니다.

프로필 이미지
대가북극곰
2014-08-28
20
글번호 223145
답변완료

몇 가지 질문.

1. YT에서 청산 신호 중 SetEndOfTime, StopProfit, StopLoss, SetStopInactivity 등의 비주기적 청산신호들도 예스스팟에서 Signal.SignalKind 의 청산 신호 (2 또는 4) 로 모두 인식되나요 ? 2. 예스스팟에서 테스트 중인 코드가 있는데, UNum = Option.uppersATM; LNum = Option.lowersATM; 이 값들이 MessageLog로 찍어보면 모두 0 으로 나옵니다. 이유를 모르겠습니다. 그리고 차월물에 대해 등가보다 위/아래 종목들 개수는 어떻게 구하는지요 ? 감사합니다.
프로필 이미지
폴피닉스
2014-08-25
1076
글번호 223138
답변완료

스팟문의

스팟문의드립니다. 해외선물 골드 기준으로 현재 잔고금액의 30%에서 최대주문가능 계약수를 구하는 방법을 알고 싶습니다. 예로 10억의 자금이 있다고 할때 30%인 3억으로 최대가능 계약수를 구한뒤 매수신호가 발생하면 3억으로 10틱 차이로 주문을 쫘악 내고 싶습니다. 만약 3억으로 10계약 매수가능하다고 할때, 현재가가 1300.00 이라고 하면 1300.00에 한계약, 1299.0 1계약, 1298.0 1계약 ~ 1290.0 1계약으로 모두 10계약 매수주문을 냅니다. 여기서 A신호일때는 호가를 5틱 차이로 주문하고, B신호일때는 호가를 10틱차이로 주문을 합니다. 각각의 주문은 배열을 사용해서 주문번호를 기억합니다. 매수청산신호가 발생하면 미체결 진입은 모두 취소시키고, 마찬가지로 진입된 수량을 A신호명일때는 10틱차이로 매도호가에 깔고, B청산신호일때는 5틱차이로 매도호가에 깝니다. 이후 시간이 지나 만약 미체결 수량이 잔고에 있고 매도신호가 발생하면 시장가로 모두 매수청산합니다. 정전이나 예스스팟이 갑작스럽게 종료되는 것을 예방하기 위해 종료시 포지션 진입유무, 포지션, 수량, 진입신호명 등의 정보를 기억하고 있다가, 다시켰을때 이 데이타를 이용했으면 합니다. 요청사항이 많은데 도움주시면 너무 감사하겠습니다.
프로필 이미지
gt
2014-08-28
1001
글번호 223137

경복궁 님에 의해서 삭제되었습니다.

프로필 이미지
경복궁
2014-08-21
1
글번호 223136
답변완료

수식 문의 드립니다.

선물 신호를 예스스팟으로 코덱스 레버리지와 인버스에 적용하고 싶습니다. 매수신호가 나오면 코덱스 레버리지 매수, 매도신호가 나오면 인버스 매수가 되어야 할텐데, 코덱스 레버리지 차트와 인버스 차트 두개를 띄워놓아야 가능할 듯 보입니다. 맞지요? 예를 들어 선물 매수포지션에서 매도 포지션으로 전환시에는, 레버리지 청산, 인버스 매수가 되어야 하는데 동시에 신호가 나오면 동일 자금에서 바로 진입 이 가능할까요?(30분봉 기준입니다) 불가능하다면 조언 부탁드립니다. 위 내용 포함한 예스스팟 수식 좀 부탁드리겠습니다^^
프로필 이미지
린포체
2014-08-21
1007
글번호 223135