커뮤니티

예스스팟 Q&A

답변완료

미완성신호 주문

안녕하세요~ 다음 수식 부탁드립니다. YT에서 선물 분봉기준으로 1) 첫봉 dayindex==0 에서 연결선물 당일시가가 전일종가보다 크면 매수, 작으면 매도, 같으면 진입없슴 * 로직상 첫봉에서 미완성신호가 발생되었다면, 첫봉에서 가격 움직임에 상관없이 완성신호가 발생됨을 알 수 있슴 2) 두번째봉부터 1)의 청산 또는 어떤 조건에 의한 진입,청산 3) 14:30 장마감 청산 위의 내용을 YesSpot에서 차트 신호완성 기준으로 test 완료하였습니다. --------------------------------------------- 제가 문의드리고자 하는 것은 2)와 3) 부분은 신호완성 기준으로 하되, 1)의 경우 전일종가와 당일시가가 같지 않은 경우 첫봉에서 매수 또는 매도 미완성신호가 발생하게 되는데, 이시점만큼은 차트의 미완성신호에 의한 매매를 하고 싶습니다. < 원하는 수식 > 1) YT 당일 첫봉 dayindex==0 에서 미완성신호 발생시, (1) 미완성신호 발생시점으로부터 30초후 YesSpot에서 매수주문 또는 (2) 만약, 30초이내에 현재가가 '시초가 - 0.3pt'이면 30초이전이라도 매수주문 - 당연히 미완성신호에서 주문발생시 해당 분봉에서 완성신호시에 주문 발생 안함 - 예스스팟에서 dayindex 처리가 안된다면, 당일시초가 발생후 30초와 같은 개념임 2) 첫봉을 제외하고 다른 시점에서는 완성신호에 의한 매수주문 function Main_OnStart() { Start = 0; } function Chart1_OnRiseSignal(Signal) { if (Signal.signalKind == 1) { Start = 1; Account1.OrderBuy(MarketData1.code,Vol,Signal.price,0); } .... .. .... 차트 신호발생에 의한 수식중 매수진입부분인데, 이 수식을 위의 설명과 같이 dayindex==0 신호발생시 미완성신호 최초발생후 30초 경과후 매수주문 또는 dayindex==0 신호발생시 미완성신호 최초발생후 30초 이전 '시초가-0.3pt'라면 매수주문 (미완성신호에서 주문 발생시 해당 완성봉에서 주문발생 안함) 첫봉이외에는 완성신호에 의한 주문형태로 수정 부탁드립니다. 4월이 시작되고, 오늘은 봄비가 내리네요... 오늘도 행복한 시간되시기를 바라며, 감사합니다 !!!
프로필 이미지
새로운세상
2013-04-04
2099
글번호 222293
답변완료

문의 드립니다

선물시스템의 매수신호에 콜옵션 매수(풋옵션 매수청산) 매도신호에 풋옵션 매수(콜옵션 매수청산)를 하되 선물 예비 신호에서 신호가 확정되기 10초전에 근월물의 콜(풋)옵션중에서 10만원에 가장 가까운 종목을 자동 거래할 수 있는지 알고 싶습니다. 만일 이러한 거래가 가능하다면 binary wave를 예로 들어 시스템식을 부탁드립니다. 감사합니다.
프로필 이미지
mir
2013-04-01
2060
글번호 222292
답변완료

문의

아래 스팟식은 잘 사용중에 있습니다. 약간 응용하여 추가로 문의를 드립니다. 예제) 1. 선물신호에 옵션 매도 주문(2.0에 가장 근접한 종목) 2. 수익신호에는 진입한 옵션 매도 청산 3.손절 신호에만 손절 청산을 하는 게 아니라 반대옵션 매도(반드시 손절 신호에만) 4. 양 매도(포지션)구축이 되면 (손실금-백만 원) 도달시 자동 손절 청산 5. 양매도 구축시 당일 3시 청산 요약해 보면 수익일땐 네이키드 청산. 손절(손실일 땐)엔 양 매도 포지션 =============================================================== //2. 옵션매도 var Start; var UNum; var LNum; var CallCode; var CallPrice; var PutCode; var PutPrice; var CC; var PP; var CallOrderCode; var PutOrderCode; function Main_OnStart() { Start = 0; } function Chart1_OnRiseSignal(Signal) { UNum = Option.uppersATM; LNum = Option.lowersATM; CallCode = new Array(UNum+LNum+1); PutCode = new Array(UNum+LNum+1); CallPrice = new Array(UNum+LNum+1); PutPrice = new Array(UNum+LNum+1); for (var i = -LNum; i <= UNum; i++) { if (Option.GetCurrent(0, i) <= 2.0 && Option.GetCurrent(0, i) >= 1.0) { CallPrice[i+LNum] = Option.GetCurrent(0, i); CallCode[i+LNum] = Option.GetATMCallRecent(i); } else { CallPrice[i+LNum] = -1; CallCode[i+LNum] = -1; } } for (var ii = -UNum; ii <= LNum; ii++) { if (Option.GetCurrent(1, ii) <= 2.0 && Option.GetCurrent(1, ii) >= 1.0) { PutPrice[ii+UNum] = Option.GetCurrent(1, ii); PutCode[ii+UNum] = Option.GetATMPutRecent(ii); } else { PutPrice[ii+UNum] = -1; PutCode[ii+UNum] = -1; } } //buy신호 발생시 if (Signal.signalKind == 1) { Start = 1; PP = -1; PutOrderCode = -1; for (var iiii = -UNum; iiii <= LNum; iiii++) { if (PutPrice[iiii+UNum] > PP) { PP = PutPrice[iiii+UNum]; PutOrderCode = PutCode[iiii+UNum]; } } if (PP > 0) { Account1.OrderSell(PutOrderCode, 1, 0, 1); Main.MessageLog("S신호종류:"+Signal.signalKind+" /종목코드:"+PutOrderCode+" /START:"+Start); } else { Main.MessageLog("S신호종류:"+Signal.signalKind+" /종목코드: 지정한 가격대 종목이 없음"+" /START:"+Start); } } //exitlong신호 발생시 if ( Start == 1 && Signal.signalKind == 2) { Start = 0; if (PP > 0) { Account1.OrderBuy(PutOrderCode, 1, 0, 1); Main.MessageLog("S신호종류:"+Signal.signalKind+" /종목코드:"+PutOrderCode+" /START:"+Start); } else { Main.MessageLog("S신호종류:"+Signal.signalKind+" /종목코드: 지정한 가격대 종목이 없음"+" /START:"+Start); } } //sell신호 발생시 if (Signal.signalKind == 3) { Start = -1; CC = -1; CallOrderCode = -1; for (var iii = -LNum; iii <= UNum; iii++) { if (CallPrice[iii+LNum] > CC) { CC = CallPrice[iii+LNum]; CallOrderCode = CallCode[iii+LNum] } } if (CC > 0) { Account1.OrderSell(CallOrderCode, 1, 0, 1); Main.MessageLog("S신호종류:"+Signal.signalKind+" /종목코드:"+CallOrderCode+" /START:"+Start); } else { Main.MessageLog("S신호종류:"+Signal.signalKind+" /종목코드: 지정한 가격대 종목이 없음"+" /START:"+Start); } } // Exitshort신호 발생시 if (Start == -1 && Signal.signalKind == 4) { Start = 0; if (CC > 0) { Account1.OrderBuy(CallOrderCode, 1, 0, 1); Main.MessageLog("S신호종류:"+Signal.signalKind+" /종목코드:"+CallOrderCode+" /START:"+Start); } else { Main.MessageLog("S신호종류:"+Signal.signalKind+" /종목코드: 지정한 가격대 종목이 없음"+" /START:"+Start); } } }
프로필 이미지
털보
2013-04-02
2014
글번호 222291

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

프로필 이미지
Pooh
2013-03-28
0
글번호 222287
답변완료

청산식 부탁합니다.

진입은 수동으로하고 포지션이 발생되면 자동으로 아래조건으로 청산할 수 있도록 구현하고 싶습니다. 예스스팟과 자바스크립트 전혀모르니 상세히 설명부탁합니다. (예스랭귀지 경우 로직입니다.) #0.5손절 2익절 SetStopLoss(0.5,PointStop); SetStopProfittarget(2,PointStop); #진입가대비 0.5단위 트레일링스탑 if MarketPosition == 1 Then{ var1 = int((highest(H,BarsSinceEntry)-EntryPrice)/0.5); ExitLong("bx",AtStop,(EntryPrice-0.5)+(0.5*var1)); } if MarketPosition == -1 Then{ var2 = int((EntryPrice-lowest(L,BarsSinceEntry))/0.5); ExitShort("sx",AtStop,(EntryPrice+0.5)-(0.5*var2)); #2시50분 청산 SetStopEndofday(145000);
프로필 이미지
엉기
2013-03-27
1988
글번호 222286
답변완료

시뮬레이션이랑 차이

왜 시뮬레이션으로 검증을 하면 수익이 작게 나오는 걸까요. 실제 수익은 2포 안되는데 시뮬레이션 상으로는 1포도 안되는데 이유가 먼가요 ?
프로필 이미지
대략낭패
2013-03-27
1929
글번호 222285
답변완료

예스스팟 시스템식 부탁드립니다.

매뉴얼의 예시를 보고 나름 만들어 봤는데 잘 안됩니다. 수식 부탁드립니다. 예제처럼 차트객체 C1 계좌객체 A1 진입수량변수 vol 조건은 선물에서 나온 시스템의 신호를 선물매수신호시 콜옵션 atm-1 가격에 1호가 높게 vol 계약수로 매수진입.(한틱 높여서진입) 매수청산 신호시 콜옵션 한틱 낮게 전량 매도. 선물매도시 풋옵션 atm+1 가격에 1호가 높게 vol 계약수로 매수진입 매도청산 신호시 풋옵션 한틱 낮게 전량매도. 표현이 잘 되었나 모르겠네요.. 선물매수매도 신호시 옵션은 가격이 한틱 불리하게 주문내서 무조건 체결되게끔 할려는 의도입니다. 부탁드립니다.~~ 그리고 궁금한점이 있는데요. 선물신호에서 스탑로스와 셋스탑엔드오브데이일 경우는 예스스팟에서는 exitlon exitshort으로 시그널을 받나요? 안된다면 수식으로 exitlong, exitshort으로 짜줘야 되나요? 또하나는 선물리버스 신호의 경우... 매수중에 매도로 전환할 때 exitlong신호로 청산하고 sell로 신호를 받아서 콜은 청산하고 풋매수로 들어가게 되나요? 아니면 sell 신호만 받아서 콜은 유지가 되고 풋은 다시 진입이 되나요?
프로필 이미지
오리만두
2013-03-27
1892
글번호 222284
답변완료

자료저장문의

통계분석을 위한 자료저장도 가능할까요? 어떤 종목의 매수총잔량 매도총잔량과 그 당시의 가격을 분 혹은 틱단위로 저장(엑셀이나 텍스트)하고싶은데요.. 시스템식을 어떻게 구성해야하나여
프로필 이미지
쿠마
2013-03-27
1779
글번호 222283

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

프로필 이미지
Pooh
2013-03-25
14
글번호 222278
답변완료

데이터 창

가끔 데이터 검색창이 사라져서 뜨지를 않습니다 껐다 켜야 해요..... 헬 프 요....
프로필 이미지
하늘거지
2013-03-25
1844
글번호 222277