안녕하세요?
지금 예스트레이더로 자동거래를 하고 있습니다. 현재 예스트레이더로부터 발생하는 신호를 바탕으로 예스스팟 옵션 거래를 하려고 합니다. 수식 부탁드립니다.
===================
1.예스트레이더에서 매수신호 발생시 콜옵션중 가격이 2.5에 가장 근접한 종목 1계약 매수
2.예스트레이더에서 매수청산신호 발생시 콜옵션 0.01에 청산
3.예스트레이더에서 매도신호 콜옵션중 가격이 2.5에 가장 근접한 종목 1계약 매수
4.예스트레이더에서 매도청산신호 발생시 풋옵션 0.01에 청산
5.장시작 30초후에 계좌잔고 리플레쉬합니다.
8.진입가격은 현재가+0.1로 주문을 넣습니다.
=================
미리감사드립니다.
답변 1
예스스탁
예스스탁 답변
2015-06-18 18:39:20
안녕하세요
예스스탁입니다.
아래 내용 참고하시기 바랍니다.
객체설정
차트객체 추가 --> 객체명 Chart1, 아이디지정
옵션객체 추가
계좌객체 추가 --> 객체명 Account1, 계좌번호 지정
종목객체 추가 --> 객체명 MarketData1, 선물로 지정
종목객체는 장시작 30초 후를 알기위해 필요합니다.
수식내 게시판 금칙어가 있습니다.
영문 업데이트가 Up*date로 중간에 *이 들어가 있으므로 제거하시기 바랍니다.
var CallOrderCode,PutOrderCode,T;
function Main_OnStart()
{
Ref = 0;
T = 0;
}
function Chart1_OnRiseSignal(Signal)
{
if (Signal.signalKind == 1)
{
T = 1;
var UNum = Option.uppersATM;
var LNum = Option.lowersATM;
//콜옵션중 2.5에 가장 가까운 종목
//콜옵션 모든 종목을 현재가-2.0을 해서 절대값을 취해 저장
var CallCode = new Array(UNum+LNum+1);
var CallPrice = new Array(UNum+LNum+1);
for (var i = -LNum; i <= UNum; i++)
{
CallPrice[i+LNum] = Math.abs(Option.GetCurrent(0, i)-2.5);
CallCode[i+LNum] = Option.GetATMCallRecent(i);
}
//저장된 절대값중 가장 작은 종목의 값과 종목코드 계산
var CC = 99999999;
CallOrderCode = "";
for (var i = -LNum; i <= UNum; i++)
{
if (CallPrice[i+LNum] < CC)
{
CC = CallPrice[i+LNum];
CallOrderCode = CallCode[i+LNum]
}
}
if (CC < 99999999)
{
Account1.OrderBuy(CallOrderCode, 1,Option.GetCurrent(CallOrderCode)+0.1, 0);
}
}
if (T == 1 && Signal.signalKind == 2)
{
Account1.OrderSell(CallOrderCode, 1,0.01, 0);
}
if (Signal.signalKind == 3)
{
T = -1;
var UNum = Option.uppersATM;
var LNum = Option.lowersATM;
//풋옵션중 2.5에 가장 가까운 종목
//풋옵션 모든 종목을 현재가-2.0을 해서 절대값을 취해 저장
var PutCode = new Array(UNum+LNum+1);
var PutPrice = new Array(UNum+LNum+1);
for (var i = -UNum; i <= LNum; i++)
{
PutPrice[i+UNum] = Math.abs(Option.GetCurrent(1, i)-2.5);
PutCode[i+UNum] = Option.GetATMPutRecent(i);
}
//저장된 절대값중 가장 작은 종목의 값과 종목코드 계산
var PP = 99999999;
PutOrderCode = "";
for (var i = -UNum; i <= LNum; i++)
{
if (PutPrice[i+UNum] < PP)
{
PP = PutPrice[i+UNum];
PutOrderCode = PutCode[i+UNum];
}
}
if (PP < 99999999)
{
Account1.OrderBuy(PutOrderCode, 1,Option.GetCurrent(PutOrderCode)+0.1, 0);
}
}
if (T == -1 && Signal.signalKind == 4)
{
Account1.OrderSell(CallOrderCode, 1,0.01, 0);
}
}
function Main_OnUp*dateMarket(sItemCode, lUp*dateID)//*제거
{
if (Ref == 0 && MarketData1.time >= 0900300000)
{
Ref = 1;
Account1.Refresh();
}
}
즐거운 하루되세요
> sonamoo 님이 쓴 글입니다.
> 제목 : 수식문의
> 안녕하세요?
지금 예스트레이더로 자동거래를 하고 있습니다. 현재 예스트레이더로부터 발생하는 신호를 바탕으로 예스스팟 옵션 거래를 하려고 합니다. 수식 부탁드립니다.
===================
1.예스트레이더에서 매수신호 발생시 콜옵션중 가격이 2.5에 가장 근접한 종목 1계약 매수
2.예스트레이더에서 매수청산신호 발생시 콜옵션 0.01에 청산
3.예스트레이더에서 매도신호 콜옵션중 가격이 2.5에 가장 근접한 종목 1계약 매수
4.예스트레이더에서 매도청산신호 발생시 풋옵션 0.01에 청산
5.장시작 30초후에 계좌잔고 리플레쉬합니다.
8.진입가격은 현재가+0.1로 주문을 넣습니다.
=================
미리감사드립니다.