예스스탁
예스스탁 답변
2015-02-03 18:54:37
안녕하세요
예스스탁입니다.
var Start = 0;
var B1,B2,B3,B4;
var Bcount;
var S1,S2,S3,S4;
var Scount;
function Main_OnStart()
{
Start = 0;
Main.MessageList("시작",Start);
}
function Chart1_OnRiseSignal(Signal)
{
//차트에서 매도신호 발생
if (Signal.signalKind == 3)
{
var UNum = Option.uppersATM;
var LNum = Option.lowersATM;
var CallCode = new Array(UNum+LNum+1);
var CallPrice = new Array(UNum+LNum+1);
//콜종목 찾기
for (var i = -LNum; i <= UNum; i++)
{
if (Option.GetCurrent(0, i) <= 2.0)
{
CallPrice[i+LNum] = Option.GetCurrent(0, i);
CallCode[i+LNum] = i;
}
else
{
CallPrice[i+LNum] = -1;
CallCode[i+LNum] = -1;
}
}
var CC = -1;
var CallOrderCode = -1;
for (var i = -LNum; i <= UNum; i++)
{
if (CallPrice[i+LNum] > CC)
{
CC = CallPrice[i+LNum];
CallOrderCode = CallCode[i+LNum];
}
}
Start = 1;
B1 = Option.GetATMCallRecent(CallOrderCode,0);
B2 = Option.GetATMCallRecent(CallOrderCode+1,0);
B3 = Option.GetATMCallRecent(CallOrderCode+2,0);
B4 = Option.GetATMCallRecent(CallOrderCode+3,0);
Bcount = Signal.count;
Account1.OrderBuy(B1,Bcount,Option.GetAskByCode(B1,3),0);
Account1.OrderSell(B2,Bcount,Option.GetBidByCode(B2,3),0);
Account1.OrderSell(B3,Bcount,Option.GetBidByCode(B3,3),0);
Account1.OrderBuy(B4,Bcount,Option.GetAskByCode(B4,3),0);
}
//차트에서 매도청산신호 발생
if (Start == 1 && Signal.signalKind == 4)
{
Start = 0;
Account1.OrderSell(B1,Bcount,Option.GetBidByCode(B1,3),0);
Account1.OrderBuy(B2,Bcount,Option.GetAskByCode(B2,3),0);
Account1.OrderBuy(B3,Bcount,Option.GetAskByCode(B3,3),0);
Account1.OrderSell(B4,Bcount,Option.GetBidByCode(B4,3),0);
}
//차트에서 매수신호 발생
if (Signal.signalKind == 1)
{
var UNum = Option.uppersATM;
var LNum = Option.lowersATM;
var PutCode = new Array(UNum+LNum+1);
var PutPrice = new Array(UNum+LNum+1);
//풋종목 찾기
for (var i = -UNum; i <= LNum; i++)
{
if (Option.GetCurrent(1, i) <= 2.0 )
{
PutPrice[i+UNum] = Option.GetCurrent(1, i);
PutCode[i+UNum] = i;
}
else
{
PutPrice[i+UNum] = -1;
PutCode[i+UNum] = -1;
}
}
var PP = -1;
var PutOrderCode = -1;
for (var i = -UNum; i <= LNum; i++)
{
if (PutPrice[i+UNum] > PP)
{
PP = PutPrice[i+UNum];
PutOrderCode = PutCode[i+UNum];
}
}
Start = -1;
S1 = Option.GetATMPutRecent(PutOrderCode,0);
S2 = Option.GetATMPutRecent(PutOrderCode+1,0);
S3 = Option.GetATMPutRecent(PutOrderCode+2,0);
S4 = Option.GetATMPutRecent(PutOrderCode+3,0);
Scount = Signal.count;
Account1.OrderBuy(S1,Scount,Option.GetAskByCode(S1,3),0);
Account1.OrderSell(S2,Scount,Option.GetBidByCode(S2,3),0);
Account1.OrderSell(S3,Scount,Option.GetBidByCode(S3,3),0);
Account1.OrderBuy(S4,Scount,Option.GetAskByCode(S4,3),0);
}
//차트에서 매수청산신호 발생
if (Start == -1 && Signal.signalKind == 2)
{
Start = 0;
Account1.OrderSell(S1,Scount,Option.GetBidByCode(S1,3),0);
Account1.OrderBuy(S2,Scount,Option.GetAskByCode(S2,3),0);
Account1.OrderBuy(S3,Scount,Option.GetAskByCode(S3,3),0);
Account1.OrderSell(S4,Scount,Option.GetBidByCode(S4,3),0);
}
}
즐거운 하루되세요
> 무명 님이 쓴 글입니다.
> 제목 : 스팟 문의 드립니다.
> 아래 스팟식을 참고하여
차트에서 매도신호 발생시 콜옵션 2.0이하 최근접가 부터 4개 종목을 찾아 매수(2.0이하 최근접 콜옵션)1계약+매도(1단계외가)2계약+매도(2단계외가)3계약+매수3단계외가)1계약 진입 되도록 수식 변환부탁드립니다. 그리고 차트에서 매수신호시에는 풋옵션 2.0이하 최근접가부터 4개 종목을 찾아 매수(2.0이하 최근접 풋옵션)1계약+매도(1단계외가)2계약+매도(2단계외가)3계약+매수3단계외가)1계약 진입 되도록 수식 변환부탁드립니다.
var Start = 0;
var B1,B2,B3,B4;
var Bcount;
var S1,S2,S3,S4;
var Scount;
function Main_OnStart()
{
Start = 0;
Main.MessageList("시작",Start);
}
function Chart1_OnRiseSignal(Signal)
{
//차트에서 매도신호 발생
if (Signal.signalKind == 3)
{
Start = 1;
B1 = Option.GetATMCallRecent(1,0);
B2 = Option.GetATMCallRecent(2,0);
B3 = Option.GetATMCallRecent(3,0);
B4 = Option.GetATMCallRecent(4,0);
Bcount = Signal.count;
Account1.OrderBuy(B1,Bcount,Option.GetAskByCode(B1,3),0);
Account1.OrderSell(B2,Bcount,Option.GetBidByCode(B2,3),0);
Account1.OrderSell(B3,Bcount,Option.GetBidByCode(B3,3),0);
Account1.OrderBuy(B4,Bcount,Option.GetAskByCode(B4,3),0);
}
//차트에서 매도청산신호 발생
if (Start == 1 && Signal.signalKind == 4)
{
Start = 0;
Account1.OrderSell(B1,Bcount,Option.GetBidByCode(B1,3),0);
Account1.OrderBuy(B2,Bcount,Option.GetAskByCode(B2,3),0);
Account1.OrderBuy(B3,Bcount,Option.GetAskByCode(B3,3),0);
Account1.OrderSell(B4,Bcount,Option.GetBidByCode(B4,3),0);
}
//차트에서 매수신호 발생
if (Signal.signalKind == 1)
{
Start = -1;
S1 = Option.GetATMPutRecent(1,0);
S2 = Option.GetATMPutRecent(2,0);
S3 = Option.GetATMPutRecent(3,0);
S4 = Option.GetATMPutRecent(4,0);
Scount = Signal.count;
Account1.OrderBuy(S1,Scount,Option.GetAskByCode(S1,3),0);
Account1.OrderSell(S2,Scount,Option.GetBidByCode(S2,3),0);
Account1.OrderSell(S3,Scount,Option.GetBidByCode(S3,3),0);
Account1.OrderBuy(S4,Scount,Option.GetAskByCode(S4,3),0);
}
//차트에서 매수청산신호 발생
if (Start == -1 && Signal.signalKind == 2)
{
Start = 0;
Account1.OrderSell(S1,Scount,Option.GetBidByCode(S1,3),0);
Account1.OrderBuy(S2,Scount,Option.GetAskByCode(S2,3),0);
Account1.OrderBuy(S3,Scount,Option.GetAskByCode(S3,3),0);
Account1.OrderSell(S4,Scount,Option.GetBidByCode(S4,3),0);
}
}