예스스탁
예스스탁 답변
2013-10-04 17:33:35
안녕하세요
예스스탁입니다.
실시간으로 선물의 가격을 알아야 하므로
스크립트 객체화면에 종목객체를 추가하신 후에
객체명 MarketData1, 종목은 선물로 지정하시고 사용하시면 됩니다.
수식에 게시판 금칙어가 있어
영문 업데이트가 Up*date로 작성이 되었습니다.
* 제거하고 사용하시기 바랍니다.
var S1;
var S2;
var MP;
var Buy1;
var Callcode;
function Main_OnStart()
{
S1 = 0;
S2 = 0;
MP = 0;
}
function Chart1_OnRiseSignal(Signal)
{
S1 = Signal.signalKind;
if (S1 == 1 && S2 == 1)
{
Buy1 = Signal.price; //신호가격 저장
Callcode = Option.GetATMCallRecent(2,0);
Account1.OrderBuy(Callcode, 6, Option.GetAskByCode(Callcode, 2), 0);
MP = 1;
}
//차트1에서 매수청산이나 매도신호 발생하면
if (MP == 1 &&(S1 == 2 || S1 == 3))
{
MP = 0;
//Callcode에 대한 잔고셋팅
Account1.SetBalanceItem(Callcode,0);
//잔고수량이 0이상이고 매수포지션이면 잔고수량만큼만 청산
if (Account1.Balance.count > 0 && Account1.Balance.position == 2)
{
Account1.OrderSell(Callcode, Account1.Balance.count, Option.GetBidByCode(Callcode, 2), 0);
}
}
}
function Chart2_OnRiseSignal(Signal)
{
S2 = Signal.signalKind;
if (S1 == 1 && S2 == 1)
{
Buy1 = Signal.price; //신호가격 저장
Callcode = Option.GetATMCallRecent(2,0);
Account1.OrderBuy(Callcode, 6, Option.GetAskByCode(Callcode, 2), 0);
MP = 1;
}
//차트2에서 매수청산신호나 매도신호 발생하면
if (MP == 1 &&(S2 == 2 || S2 == 3))
{
MP = 0;
//Callcode에 대한 잔고셋팅
Account1.SetBalanceItem(Callcode,0);
//잔고수량이 0이상이고 매수포지션이면 잔고수량만큼만 청산
if (Account1.Balance.count > 0 && Account1.Balance.position == 2)
{
Account1.OrderSell(Callcode, Account1.Balance.count, Option.GetBidByCode(Callcode, 2), 0);
}
}
}
function Main_OnUp*dateMarket(sItemCode, lUp*dateID)//*제거
{
if ( lUp*dateID == 20001 && //*제거
MP == 1 &&
sItemCode == MarketData11.code &&
MarketData11.current >= Buy1+1 )
{
MP = 0;
//Callcode에 대한 잔고셋팅
Account1.SetBalanceItem(Callcode,0);
//잔고수량이 0이상이고 매수포지션이면 3계약 청산
if (Account1.Balance.count > 0 && Account1.Balance.position == 2)
{
Account1.OrderSell(Callcode, 3, Option.GetBidByCode(Callcode, 2), 0);
}
}
}
즐거운 하루되세요
> 극동해 님이 쓴 글입니다.
> 제목 : 질문드립니다.
> 안녕하세요.
제가 아래와 같이 선물 챠트 신호에 따라 옵션을 매매하는 수식을 작성해 보았는데요.
다음과 같이 청산식을 수정하고자 질문드립니다.
진입 - 기존 수식과 동일
청산1 - 챠트1 그리고 챠트2의 동시매수신호 발생시점의 선물가격이 1pt상승하면... 보유한 콜옵션 3개를 청산한다.
청산2 - 챠트1 또는 챠트2에서 매수익절신호(2) 또는 매도신호(3)이 발생하면 보유한 콜옵션 전량을 청산한다.
감사합니다.
--------------------------------------------------------------------------------------
var S1;
var S2;
var MP;
var Callcode;
function Main_OnStart()
{
S1 = 0;
S2 = 0;
MP = 0;
}
function Chart1_OnRiseSignal(Signal)
{
S1 = Signal.signalKind;
if (S1 == 1 && S2 == 1)
{
Callcode = Option.GetATMCallRecent(2,0);
Account1.OrderBuy(Callcode, 6, Option.GetAskByCode(Callcode, 2), 0);
MP = 1;
}
if (MP == 1 &&(S1 == 2 || S1 == 3))
{
MP = 0;
{
Account1.OrderSell(Callcode, 6, Option.GetBidByCode(Callcode, 2), 0);
}
}