예스스탁
예스스탁 답변
2018-10-26 18:38:23
안녕하세요
예스스탁입니다.
예스스팟은 자바스크립트로 코딩가능한 분께 제공해 드리는 프로그램입니다.
수식 답변도 참고용으로 작성해 드리는 가이드입니다.
아래 스팟수식 내용 참고하셔서 수정보완해 사용하시기 바랍니다.
스팟로직에서 예스랭귀지 시스템의 내용을 직접 구현하지는 않습니다.
예스스팟에서는 차트에 적용한 시스템에서 신호가 발생하는 즉시 인지해 처리를 할수 있으므로
270틱 차트에 해당 시스템 적용하신 후에 스팟의 차트객체와 연결하시면 됩니다.
스팟의 차트객체나 계좌객체등 객체 설정방법은 예스스팟 도움말을 통해
숙지하시기 바랍니다.
스크립트 객체설정
차트객체 추가 --> 속성에서 객체명은 Chart1, 신호받고자 하는 차트와 동일아이디로 차트아이디 지정
계좌객체 추가 --> 속성에서 객체명은 Account1, 주문발생할 계좌번호 지정
옵션객체 추가 --> 속성에서 객체명은 Option1, 주가지주옵션으로 지정
var CallOrderCode,PutOrderCode,T;
var 상한가격 = 1.0;
var 하한가격 = 0.5;
var 진입수량 = 1;
function Main_OnStart()
{
T = 0;
}
function Chart1_OnRiseSignal(Signal)
{
//차트 매수진입신호 발생
if (Signal.signalKind == 1)
{
Main.MessageList("--------------------------------------------");
Main.MessageList("Buy신호 발생");
var UNum = Option1.uppersATM;
var LNum = Option1.lowersATM;
var PutCode;
var PutPrice = 0;
//풋옵션중 0.5~1.0 사이의 종목중 가장 큰 종목
for (var i = -UNum; i <= LNum; i++)
{
if (Option1.GetCurrent(1, i) <= UPprice &&
Option1.GetCurrent(1, i) >= DnPrice &&
Option1.GetCurrent(1, i) > PutPrice)
{
PutPrice = Option1.GetCurrent(1, i);
PutCode = Option1.GetATMPutRecent(i, 0);
}
}
//종목을 찾았으면
if (PutPrice > 0)
{
T = 1;
PutOrderCode = PutCode;
//PutOrderCode종목 매수3호가로 1계약 매도주문
Account1.OrderSell(PutOrderCode, 진입수량,Option1.GetBid(PutOrderCode, 3), 0);
}
}
//차트 매수청산 신호 발생
if (T == 1 && Signal.signalKind == 2)
{
//PutOrderCode종목 매도3호가로 1계약 매수주문
Account1.OrderBuy(PutOrderCode,진입수량,Option1.GetAsk(PutOrderCode, 3), 0);
T = 0;
}
//차트 매도진입신호 발생
if (Signal.signalKind == 3)
{
Main.MessageList("--------------------------------------------");
Main.MessageList("Sell신호 발생");
var UNum = Option1.uppersATM;
var LNum = Option1.lowersATM;
var CallCode;
var CallPrice = 0;
//풋옵션중 0.5~1.0 사이의 종목중 가장 큰 종목
for (var i = -UNum; i <= LNum; i++)
{
if (Option1.GetCurrent(0, i) <= UPprice &&
Option1.GetCurrent(0, i) >= DnPrice &&
Option1.GetCurrent(0, i) > CallPrice)
{
CallPrice = Option1.GetCurrent(0, i);
CallCode = Option1.GetATMCallRecent(i, 0);
}
}
//종목을 찾았으면
if (CallPrice > 0)
{
T = -1;
CallOrderCode = CallCode;
//CallOrderCode종목 매수3호가로 1계약 매도주문
Account1.OrderSell(CallOrderCode, 진입수량,Option1.GetBid(CallOrderCode, 3), 0);
}
}
//차트 매도청산 신호 발생
if (T == -1 && Signal.signalKind == 4)
{
//CallOrderCode종목 매도3호가로 1계약 매수주문
Account1.OrderBuy(CallOrderCode,진입수량,Option1.GetAsk(CallOrderCode, 3), 0);
T = 0;
}
}
즐거운 하루되세요
> sefswef 님이 쓴 글입니다.
> 제목 : 문의있습니다
> Input : Period(5);
Var : value(0);
value = ma(bids,period)-ma(asks,period);
if value > value[1] Then
var1 = 1;
Else
var1 = -1;
if var1 == 1 and var1[1] != 1 Then
buy("매수");
if var1 == -1 and var1[1] != -1 Then
sell("매도");
위의 수식은 예스트레이더 수식입니다 이를 예스스탁으로 활용해서 옵션매매에 적용하려고 합니다.
위 수식에서( 위수식은 연결선물 270틱에 적용한 신호가 나와야 합니다)
선물로 매수신호가 나올때 옵션가격 5만원에서 10만원 사이의 풋옵션가격중 제일큰값의 풋션을 선택해서 매도들어가도록
선물로 매도신호가 나올때 옵션가격 5만원에서 10만원 사이의 콜옵션가격중 제일큰값의 콜옵션을 선택해서 매도들어가도록 예스스탁의 수식을 짜주십시요
그리고 제가 스팟은 처음이라 자동매매를 위해 제 계좌를 연계하는 방법도 모릅니다.
그것도 수식에 넣어 주십시요
항상 감사드립니다
문의사항 010 3231 4592 유원장드림