커뮤니티
예스스팟 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
2153
글번호 222293
답변완료
문의 드립니다
선물시스템의 매수신호에 콜옵션 매수(풋옵션 매수청산)
매도신호에 풋옵션 매수(콜옵션 매수청산)를 하되
선물 예비 신호에서 신호가 확정되기 10초전에
근월물의 콜(풋)옵션중에서 10만원에 가장 가까운 종목을
자동 거래할 수 있는지 알고 싶습니다.
만일 이러한 거래가 가능하다면 binary wave를 예로 들어
시스템식을 부탁드립니다.
감사합니다.
2013-04-01
2137
글번호 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
2074
글번호 222291
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
2030
글번호 222286
답변완료
시뮬레이션이랑 차이
왜 시뮬레이션으로 검증을 하면
수익이 작게 나오는 걸까요.
실제 수익은 2포 안되는데
시뮬레이션 상으로는 1포도 안되는데
이유가 먼가요 ?
2013-03-27
1980
글번호 222285
답변완료
예스스팟 시스템식 부탁드립니다.
매뉴얼의 예시를 보고 나름 만들어 봤는데 잘 안됩니다.
수식 부탁드립니다.
예제처럼
차트객체 C1
계좌객체 A1
진입수량변수 vol
조건은 선물에서 나온 시스템의 신호를 선물매수신호시 콜옵션 atm-1 가격에 1호가 높게 vol 계약수로 매수진입.(한틱 높여서진입)
매수청산 신호시 콜옵션 한틱 낮게 전량 매도.
선물매도시 풋옵션 atm+1 가격에 1호가 높게 vol 계약수로 매수진입
매도청산 신호시 풋옵션 한틱 낮게 전량매도.
표현이 잘 되었나 모르겠네요.. 선물매수매도 신호시 옵션은 가격이 한틱 불리하게 주문내서 무조건 체결되게끔 할려는 의도입니다.
부탁드립니다.~~
그리고 궁금한점이 있는데요. 선물신호에서 스탑로스와 셋스탑엔드오브데이일 경우는 예스스팟에서는 exitlon exitshort으로 시그널을 받나요?
안된다면 수식으로 exitlong, exitshort으로 짜줘야 되나요?
또하나는 선물리버스 신호의 경우... 매수중에 매도로 전환할 때 exitlong신호로 청산하고 sell로 신호를 받아서 콜은 청산하고 풋매수로 들어가게 되나요? 아니면 sell 신호만 받아서 콜은 유지가 되고 풋은 다시 진입이 되나요?
2013-03-27
1932
글번호 222284
답변완료
자료저장문의
통계분석을 위한 자료저장도 가능할까요?
어떤 종목의 매수총잔량 매도총잔량과 그 당시의 가격을 분 혹은 틱단위로 저장(엑셀이나 텍스트)하고싶은데요..
시스템식을 어떻게 구성해야하나여
2013-03-27
1836
글번호 222283
Pooh 님에 의해서 삭제되었습니다.
2013-03-25
14
글번호 222278
답변완료
데이터 창
가끔 데이터 검색창이 사라져서 뜨지를 않습니다
껐다 켜야 해요.....
헬 프 요....
2013-03-25
1875
글번호 222277