예스스탁
예스스탁 답변
2013-12-04 16:57:35
var Start = 0;
var SelCallCode;
var SelCallPrice;
var SelCallVol;
var SellPutCode;
var SellPutPrice;
var SellPutVol;
var BuyCode;
var SellCode;
var SK;
function Main_OnStart()
{
var ChartCode = Main.GetOrderCode(Chart1.GetCode(1));
for(var i = -Option.lowersATM; i <= Option.uppersATM; i++)
{
if (ChartCode == Option.GetATMCallRecent(i,0))
{
BuyCode = Option.GetATMCallRecent(i+2,0);
SellCode = Option.GetATMCallRecent(i-2,0);
}
}
for(var i = -Option.uppersATM; i <= Option.lowersATM; i++)
{
if (ChartCode == Option.GetATMPutRecent(i,0))
{
BuyCode = Option.GetATMPutRecent(i+2,0);
SellCode = Option.GetATMPutRecent(i-2,0);
}
}
Main.MessageList("차트종목",ChartCode,"차트종목+2",BuyCode,"차트종목-2",SellCode);
var GetV = Main.GetUserValue("SigKind");
if (GetV == 1)
Start = 1;
else if (GetV == 3)
Start = -1;
else
Start = 0;
Main.MessageList(Start);
}
function Chart1_OnRiseSignal(Signal)
{
SK = Signal.signalKind;
//차트에서 매수신호 발생
if (Signal.signalKind ==1)
{
Start = 1;
SellCallCode = BuyCode;
SellCallPrice = Option.GetBidByCode(SellCallCode, 2);
SelCallVol = Signal.count;
Account1.OrderSell(SellCallCode,SelCallVol, SellCallPrice, 0);
Main.MessageList("차트+2종목매도 : "+SellCallCode);
}
//차트에서 매수청산신호 발생하면 콜매도 청산
if (Start == 1 && Signal.signalKind == 2)
{
//매도2호가로 청산
Account1.OrderBuy(SellCallCode, SelCallVol, Option.GetAskByCode(SellCallCode, 2), 0);
Main.MessageList("차트+2종목청산 : ",SellCallCode);
}
//선물차트에서 매도신호 발생하면 풋 매수
if (Signal.signalKind ==3)
{
Start = -1;
SellPutCode = SellCode;
SellPutPrice = Option.GetAskByCode(SellPutCode, 2);
SellPutVol = Signal.count;
Account1.OrderBuy(SellPutCode, Signal.count, SellPutPrice, 0);
Main.MessageList("차트-2종목매수 : "+SellPutCode);
}
//차트에서 매도청산신호 발생하면 풋매도 청산
if (Start == -1 && Signal.signalKind == 4)
{
Account1.OrderBuy(SellPutCode, SellPutVol, Option.GetAskByCode(SellPutCode, 2), 0);
Main.MessageList("차트-2종목청산 : ",SellPutCode);
}
}
//종료시 최종 시그널종류를 내부파일에 저장
function Main_OnClose()
{
Main.SetUserValue("SigKind",SK);
}
> 무명 님이 쓴 글입니다.
> 제목 : 수식 문의 드립니다
> 1. 아래는 저번에 선물차트 신호로 옵션진입하는 로직을 작성하여 주신 내용입니다. 이번에는 는 옵션차트의 신호를 보고 옵션에 주문을 넣는 주문을 부탁드립니다. 옵션차트신호가 매수신호일 때, 옵션차트종목보다 +2단계 위의 옵션종목을 매도합니다. 옵션차트신호가 매도신호일 때 옵션차트종목보다 -2단계 아래 옵션종목을 매수합니다.
2. 당일매매가 아니고 포지션전략이므로 예스스팟이 꺼졌다 다시 켜져도 위에서 진입했던 동일종목이 청산과 반전이 되도로 로직 부탁드립니다.
3. 데이타 매니저에 코스피 연결선물이나 월물별 코스피 선물 종목추가하는 방법 좀 안내 부탁드립니다.
안녕하세요
예스스탁입니다.
차트의 신호로 보고 옵션에 주문을 넣으시므로
시크립트 객체화면에 총 3개의 객체가 필요합니다.
옵션객체 추가 --> 속성에서 지정하실 부분이 없습니다
차트객체 추가 --> 속성에서 객체명은 Chart1, 차트아이디는 차트와 동일한 이름으로 지정
계좌객체 추가 --> 속성에서 객체명은 Account1, 계좌변호는 거래하고자 하는 선옵계좌를 지정
아래는 수식내용입니다.
var Start = 0;
var SelCallCode;
var SelCallPrice;
var SelCallVol;
var SellPutCode;
var SellPutPrice;
var SellPutVol;
function Main_OnStart()
{
Start = 0;
}
function Chart1_OnRiseSignal(Signal)
{
//차트에서 매수신호 발생하면 콜 매수
if (Signal.signalKind ==1)
{
Start = 1;
SellCallCode = Option.GetATMCallRecent(0);//주문종목 : ATM콜 종목코드
SellCallPrice = Option.GetBidByCode(SellCallCode, 2);//주문가격 매수2호가
SelCallVol = Signal.count;//주문수량 : 차트신호의 수량
Account1.OrderSell(SellCallCode,SelCallVol, SellCallPrice, 0);
Main.MessageList("등가콜매도 : "+SellCallCode);
}
//차트에서 매수청산신호 발생하면 콜매도 청산
if (Start == 1 && Signal.signalKind == 2)
{
//매도2호가로 청산
Account1.OrderBuy(SellCallCode, SelCallVol, Option.GetAskByCode(SellCallCode, 2), 0);
Main.MessageList("콜청산 : ",SellCallCode);
}
//선물차트에서 매도신호 발생하면 풋 매수
if (Signal.signalKind ==3)
{
Start =1;
SellPutCode = Option.GetATMPutRecent(0);//주문종목 : ATM풋 종목코드
SellPutPrice = Option.GetBidByCode(SellPutCode, 2);//주문가격 : 매수 2호가
SellPutVol = Signal.count; //수량 : 차트신호의 수량
Account1.OrderSell(SellPutCode, Signal.count, SellPutPrice, 0);
Main.MessageList("등가풋매도 : "+SellPutCode);
}
//차트에서 매도청산신호 발생하면 풋매도 청산
if (Start == 1 && Signal.signalKind == 4)
{
Account1.OrderBuy(SellPutCode, SellPutVol, Option.GetAskByCode(SellPutCode, 2), 0);
Main.MessageList("풋청산 : ",SellPutCode);
}
}
질문 내용을 잘못 이해 하신듯합니다. 콜옵션을 가지고 방향성 스프레드 매매를 하려는 것입니다.
1. 콜옵션차트를 띄워놓고 콜옵션차트가 매수신호 발생시, 매수신호 발생한 콜옵션보다 +2단계 높은 콜옵셤 매도(예스스팟에서).
2. 콜옵션차트를 띄워놓고 콜옵션차트가 매도신호 발생시, 매도신호 발생한 콜옵션보다 -2단계 낮은 콜옵셤 매수(예스스팟에서).
3. 당일매매가 아니고 포지션전략이므로 예스스팟이 꺼졌다 다시 켜져도 위에서 진입했던 동일종목이 청산이나 반전이 되도로 로직 부탁드립니다.
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 수식 문의 드립니다
>
var Start = 0;
var SelCallCode;
var SelCallPrice;
var SelCallVol;
var SellPutCode;
var SellPutPrice;
var SellPutVol;
var BuyCode;
var SellCode;
var SK;
function Main_OnStart()
{
var ChartCode = Main.GetOrderCode(Chart1.GetCode(1));
for(var i = -Option.lowersATM; i <= Option.uppersATM; i++)
{
if (ChartCode == Option.GetATMCallRecent(i,0))
{
BuyCode = Option.GetATMCallRecent(i+2,0);
SellCode = Option.GetATMCallRecent(i-2,0);
}
}
for(var i = -Option.uppersATM; i <= Option.lowersATM; i++)
{
if (ChartCode == Option.GetATMPutRecent(i,0))
{
BuyCode = Option.GetATMPutRecent(i+2,0);
SellCode = Option.GetATMPutRecent(i-2,0);
}
}
Main.MessageList("차트종목",ChartCode,"차트종목+2",BuyCode,"차트종목-2",SellCode);
var GetV = Main.GetUserValue("SigKind");
if (GetV == 1)
Start = 1;
else if (GetV == 3)
Start = -1;
else
Start = 0;
Main.MessageList(Start);
}
function Chart1_OnRiseSignal(Signal)
{
SK = Signal.signalKind;
//차트에서 매수신호 발생
if (Signal.signalKind ==1)
{
Start = 1;
SellCallCode = BuyCode;
SellCallPrice = Option.GetBidByCode(SellCallCode, 2);
SelCallVol = Signal.count;
Account1.OrderSell(SellCallCode,SelCallVol, SellCallPrice, 0);
Main.MessageList("차트+2종목매도 : "+SellCallCode);
}
//차트에서 매수청산신호 발생하면 콜매도 청산
if (Start == 1 && Signal.signalKind == 2)
{
//매도2호가로 청산
Account1.OrderBuy(SellCallCode, SelCallVol, Option.GetAskByCode(SellCallCode, 2), 0);
Main.MessageList("차트+2종목청산 : ",SellCallCode);
}
//선물차트에서 매도신호 발생하면 풋 매수
if (Signal.signalKind ==3)
{
Start = -1;
SellPutCode = SellCode;
SellPutPrice = Option.GetAskByCode(SellPutCode, 2);
SellPutVol = Signal.count;
Account1.OrderBuy(SellPutCode, Signal.count, SellPutPrice, 0);
Main.MessageList("차트-2종목매수 : "+SellPutCode);
}
//차트에서 매도청산신호 발생하면 풋매도 청산
if (Start == -1 && Signal.signalKind == 4)
{
Account1.OrderBuy(SellPutCode, SellPutVol, Option.GetAskByCode(SellPutCode, 2), 0);
Main.MessageList("차트-2종목청산 : ",SellPutCode);
}
}
//종료시 최종 시그널종류를 내부파일에 저장
function Main_OnClose()
{
Main.SetUserValue("SigKind",SK);
}
> 무명 님이 쓴 글입니다.
> 제목 : 수식 문의 드립니다
> 1. 아래는 저번에 선물차트 신호로 옵션진입하는 로직을 작성하여 주신 내용입니다. 이번에는 는 옵션차트의 신호를 보고 옵션에 주문을 넣는 주문을 부탁드립니다. 옵션차트신호가 매수신호일 때, 옵션차트종목보다 +2단계 위의 옵션종목을 매도합니다. 옵션차트신호가 매도신호일 때 옵션차트종목보다 -2단계 아래 옵션종목을 매수합니다.
2. 당일매매가 아니고 포지션전략이므로 예스스팟이 꺼졌다 다시 켜져도 위에서 진입했던 동일종목이 청산과 반전이 되도로 로직 부탁드립니다.
3. 데이타 매니저에 코스피 연결선물이나 월물별 코스피 선물 종목추가하는 방법 좀 안내 부탁드립니다.
안녕하세요
예스스탁입니다.
차트의 신호로 보고 옵션에 주문을 넣으시므로
시크립트 객체화면에 총 3개의 객체가 필요합니다.
옵션객체 추가 --> 속성에서 지정하실 부분이 없습니다
차트객체 추가 --> 속성에서 객체명은 Chart1, 차트아이디는 차트와 동일한 이름으로 지정
계좌객체 추가 --> 속성에서 객체명은 Account1, 계좌변호는 거래하고자 하는 선옵계좌를 지정
아래는 수식내용입니다.
var Start = 0;
var SelCallCode;
var SelCallPrice;
var SelCallVol;
var SellPutCode;
var SellPutPrice;
var SellPutVol;
function Main_OnStart()
{
Start = 0;
}
function Chart1_OnRiseSignal(Signal)
{
//차트에서 매수신호 발생하면 콜 매수
if (Signal.signalKind ==1)
{
Start = 1;
SellCallCode = Option.GetATMCallRecent(0);//주문종목 : ATM콜 종목코드
SellCallPrice = Option.GetBidByCode(SellCallCode, 2);//주문가격 매수2호가
SelCallVol = Signal.count;//주문수량 : 차트신호의 수량
Account1.OrderSell(SellCallCode,SelCallVol, SellCallPrice, 0);
Main.MessageList("등가콜매도 : "+SellCallCode);
}
//차트에서 매수청산신호 발생하면 콜매도 청산
if (Start == 1 && Signal.signalKind == 2)
{
//매도2호가로 청산
Account1.OrderBuy(SellCallCode, SelCallVol, Option.GetAskByCode(SellCallCode, 2), 0);
Main.MessageList("콜청산 : ",SellCallCode);
}
//선물차트에서 매도신호 발생하면 풋 매수
if (Signal.signalKind ==3)
{
Start =1;
SellPutCode = Option.GetATMPutRecent(0);//주문종목 : ATM풋 종목코드
SellPutPrice = Option.GetBidByCode(SellPutCode, 2);//주문가격 : 매수 2호가
SellPutVol = Signal.count; //수량 : 차트신호의 수량
Account1.OrderSell(SellPutCode, Signal.count, SellPutPrice, 0);
Main.MessageList("등가풋매도 : "+SellPutCode);
}
//차트에서 매도청산신호 발생하면 풋매도 청산
if (Start == 1 && Signal.signalKind == 4)
{
Account1.OrderBuy(SellPutCode, SellPutVol, Option.GetAskByCode(SellPutCode, 2), 0);
Main.MessageList("풋청산 : ",SellPutCode);
}
}
예스스탁
예스스탁 답변
2013-12-10 11:13:43
안녕하세요
예스스탁입니다.
식을 수정했습니다.
주석 참고하시기 바랍니다.
var Start = 0;
var SellCallCode;
var SellCallPrice;
var SellCallVol;
var BuyCallCode;
var BuyCallPrice;
var BuyCallVol;
var Plus2;
var Minus2;
var SK;
function Main_OnStart()
{
//차트 종목코드
var ChartCode = Main.GetOrderCode(Chart1.GetCode(1));
//차트 -2단계, +2단계 콜옵션 종목코드
for(var i = -Option.lowersATM; i <= Option.uppersATM; i++)
{
if (ChartCode == Option.GetATMCallRecent(i,0))
{
Plus2 = Option.GetATMCallRecent(i+2,0);
Minus2 = Option.GetATMCallRecent(i-2,0);
}
}
Main.MessageList("차트종목",ChartCode,"차트+2콜",Plus2,"차트-2단계콜",Minus2);
//SigKind에 저장된 값 호출
var GetV = Main.GetUserValue("SigKind");
//저장된 값이 1이면 Start에 1저장, 3이면 -1저장, 아니면 0저장
if (GetV == 1)
Start = 1;
else if (GetV == 3)
Start = -1;
else
Start = 0;
Main.MessageList("시작",Start);
}
function Chart1_OnRiseSignal(Signal)
{
SK = Signal.signalKind;
//차트에서 매수신호 발생(차트+2단계 콜옵션 매도)
if (Start == 0 && SK ==1)
{
Start = 1;
SellCallCode = Plus2;
SellCallPrice = Option.GetBidByCode(SellCallCode, 2);
SellCallVol = Signal.count;
Main.MessageList("Buy신호발생","차트+2콜 매도: "+SellCallCode);
Account1.OrderSell(SellCallCode,SellCallVol, SellCallPrice, 0);
}
//차트에서 매수청산신호 발생(차트+2콜 청산)
if (Start == 1 && SK == 2)
{
Start = 0;
Account1.OrderBuy(SellCallCode, SellCallVol, Option.GetAskByCode(SellCallCode, 2), 0);
Main.MessageList("ExitLong 신호발생","차트+2종목 청산 : ",SellCallCode);
}
//차트에서 매도신호 발생(차트-2단계 콜옵션 매수)
if (Start == 0 && SK ==3)
{
Start = -1;
BuyCallCode = Minus2;
BuyCallPrice = Option.GetAskByCode(BuyCallCode, 2);
BuyCallVol = Signal.count;
Account1.OrderBuy(BuyCallCode, Signal.count, BuyCallPrice, 0);
Main.MessageList("Sell신호발생","차트-2종목매수 : "+BuyCallCode);
}
//차트에서 매도청산신호 발생(차트-2콜 청산)
if (Start == -1 && SK == 4)
{
Start = 0;
Account1.OrderSell(BuyCallCode, BuyCallVol, Option.GetAskByCode(BuyCallCode, 2), 0);
Main.MessageList("ExitShort 신호발생","차트+2종목청산 : ",BuyCallCode);
}
}
//종료시 최종 시그널종류를 내부파일에 저장
function Main_OnClose()
{
Main.SetUserValue("SigKind",SK);
}
즐거운 하루되세요
> 무명 님이 쓴 글입니다.
> 제목 : Re : Re : 수식 문의 드립니다
> 질문 내용을 잘못 이해 하신듯합니다. 콜옵션을 가지고 방향성 스프레드 매매를 하려는 것입니다.
1. 콜옵션차트를 띄워놓고 콜옵션차트가 매수신호 발생시, 매수신호 발생한 콜옵션보다 +2단계 높은 콜옵셤 매도(예스스팟에서).
2. 콜옵션차트를 띄워놓고 콜옵션차트가 매도신호 발생시, 매도신호 발생한 콜옵션보다 -2단계 낮은 콜옵셤 매수(예스스팟에서).
3. 당일매매가 아니고 포지션전략이므로 예스스팟이 꺼졌다 다시 켜져도 위에서 진입했던 동일종목이 청산이나 반전이 되도로 로직 부탁드립니다.
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 수식 문의 드립니다
>
var Start = 0;
var SelCallCode;
var SelCallPrice;
var SelCallVol;
var SellPutCode;
var SellPutPrice;
var SellPutVol;
var BuyCode;
var SellCode;
var SK;
function Main_OnStart()
{
var ChartCode = Main.GetOrderCode(Chart1.GetCode(1));
for(var i = -Option.lowersATM; i <= Option.uppersATM; i++)
{
if (ChartCode == Option.GetATMCallRecent(i,0))
{
BuyCode = Option.GetATMCallRecent(i+2,0);
SellCode = Option.GetATMCallRecent(i-2,0);
}
}
for(var i = -Option.uppersATM; i <= Option.lowersATM; i++)
{
if (ChartCode == Option.GetATMPutRecent(i,0))
{
BuyCode = Option.GetATMPutRecent(i+2,0);
SellCode = Option.GetATMPutRecent(i-2,0);
}
}
Main.MessageList("차트종목",ChartCode,"차트종목+2",BuyCode,"차트종목-2",SellCode);
var GetV = Main.GetUserValue("SigKind");
if (GetV == 1)
Start = 1;
else if (GetV == 3)
Start = -1;
else
Start = 0;
Main.MessageList(Start);
}
function Chart1_OnRiseSignal(Signal)
{
SK = Signal.signalKind;
//차트에서 매수신호 발생
if (Signal.signalKind ==1)
{
Start = 1;
SellCallCode = BuyCode;
SellCallPrice = Option.GetBidByCode(SellCallCode, 2);
SelCallVol = Signal.count;
Account1.OrderSell(SellCallCode,SelCallVol, SellCallPrice, 0);
Main.MessageList("차트+2종목매도 : "+SellCallCode);
}
//차트에서 매수청산신호 발생하면 콜매도 청산
if (Start == 1 && Signal.signalKind == 2)
{
//매도2호가로 청산
Account1.OrderBuy(SellCallCode, SelCallVol, Option.GetAskByCode(SellCallCode, 2), 0);
Main.MessageList("차트+2종목청산 : ",SellCallCode);
}
//선물차트에서 매도신호 발생하면 풋 매수
if (Signal.signalKind ==3)
{
Start = -1;
SellPutCode = SellCode;
SellPutPrice = Option.GetAskByCode(SellPutCode, 2);
SellPutVol = Signal.count;
Account1.OrderBuy(SellPutCode, Signal.count, SellPutPrice, 0);
Main.MessageList("차트-2종목매수 : "+SellPutCode);
}
//차트에서 매도청산신호 발생하면 풋매도 청산
if (Start == -1 && Signal.signalKind == 4)
{
Account1.OrderBuy(SellPutCode, SellPutVol, Option.GetAskByCode(SellPutCode, 2), 0);
Main.MessageList("차트-2종목청산 : ",SellPutCode);
}
}
//종료시 최종 시그널종류를 내부파일에 저장
function Main_OnClose()
{
Main.SetUserValue("SigKind",SK);
}
> 무명 님이 쓴 글입니다.
> 제목 : 수식 문의 드립니다
> 1. 아래는 저번에 선물차트 신호로 옵션진입하는 로직을 작성하여 주신 내용입니다. 이번에는 는 옵션차트의 신호를 보고 옵션에 주문을 넣는 주문을 부탁드립니다. 옵션차트신호가 매수신호일 때, 옵션차트종목보다 +2단계 위의 옵션종목을 매도합니다. 옵션차트신호가 매도신호일 때 옵션차트종목보다 -2단계 아래 옵션종목을 매수합니다.
2. 당일매매가 아니고 포지션전략이므로 예스스팟이 꺼졌다 다시 켜져도 위에서 진입했던 동일종목이 청산과 반전이 되도로 로직 부탁드립니다.
3. 데이타 매니저에 코스피 연결선물이나 월물별 코스피 선물 종목추가하는 방법 좀 안내 부탁드립니다.
안녕하세요
예스스탁입니다.
차트의 신호로 보고 옵션에 주문을 넣으시므로
시크립트 객체화면에 총 3개의 객체가 필요합니다.
옵션객체 추가 --> 속성에서 지정하실 부분이 없습니다
차트객체 추가 --> 속성에서 객체명은 Chart1, 차트아이디는 차트와 동일한 이름으로 지정
계좌객체 추가 --> 속성에서 객체명은 Account1, 계좌변호는 거래하고자 하는 선옵계좌를 지정
아래는 수식내용입니다.
var Start = 0;
var SelCallCode;
var SelCallPrice;
var SelCallVol;
var SellPutCode;
var SellPutPrice;
var SellPutVol;
function Main_OnStart()
{
Start = 0;
}
function Chart1_OnRiseSignal(Signal)
{
//차트에서 매수신호 발생하면 콜 매수
if (Signal.signalKind ==1)
{
Start = 1;
SellCallCode = Option.GetATMCallRecent(0);//주문종목 : ATM콜 종목코드
SellCallPrice = Option.GetBidByCode(SellCallCode, 2);//주문가격 매수2호가
SelCallVol = Signal.count;//주문수량 : 차트신호의 수량
Account1.OrderSell(SellCallCode,SelCallVol, SellCallPrice, 0);
Main.MessageList("등가콜매도 : "+SellCallCode);
}
//차트에서 매수청산신호 발생하면 콜매도 청산
if (Start == 1 && Signal.signalKind == 2)
{
//매도2호가로 청산
Account1.OrderBuy(SellCallCode, SelCallVol, Option.GetAskByCode(SellCallCode, 2), 0);
Main.MessageList("콜청산 : ",SellCallCode);
}
//선물차트에서 매도신호 발생하면 풋 매수
if (Signal.signalKind ==3)
{
Start =1;
SellPutCode = Option.GetATMPutRecent(0);//주문종목 : ATM풋 종목코드
SellPutPrice = Option.GetBidByCode(SellPutCode, 2);//주문가격 : 매수 2호가
SellPutVol = Signal.count; //수량 : 차트신호의 수량
Account1.OrderSell(SellPutCode, Signal.count, SellPutPrice, 0);
Main.MessageList("등가풋매도 : "+SellPutCode);
}
//차트에서 매도청산신호 발생하면 풋매도 청산
if (Start == 1 && Signal.signalKind == 4)
{
Account1.OrderBuy(SellPutCode, SellPutVol, Option.GetAskByCode(SellPutCode, 2), 0);
Main.MessageList("풋청산 : ",SellPutCode);
}
}