답변완료
질문드립니다
옵션 차월물
Option.GetATMCallRecent(nLevel, nNext)
Option.GetATMPutRecent(nLevel, nNext)
함수의 두번째 매개변수 nNext)가 차근월물을 설정하는 매개변수입니다.
nNext를 0으로 설정하시면 근월물, 1이 차월물입니다. 0은 생략가능합니다.
차월물까지만 제공이 됩니다.
그러면, 콜옵션 차월물 현재가는 아래와 같은가요??
Option.GetCurrent(0, nLevel, nNext) ;
질문2 ;
제공해주신 예제들중에 옵션가격이 특정가격 이상이며, 특정가격에 가장 가까운 가격을 찾는 방법이 있는데, 잘 사용하고 있습니다. 그 예제를 차월물 옵션에 적용하는 수식을 부탁드립니다. 포지션 매수에서는 만기일이 가까워질때는 옵션 프리미엄을 고려하여 차월물 매매가 필요합니다. 수고하십시요.
2014-02-25
1298
글번호 222829
답변완료
수식 문의 드립니다
수고가 많어십니다. 아래는 예스스팟에서 작성하신 프로그램수식입니다. 아래의 수식을 적용하는 과정에서 어려움을 겪어 수식문의 드립니다.
질문1 ; 아래의 최대10종목까지 적용된다고 하셨는데, 수식 작성자가 임의로 설정한 수량인가요?? 아님 예스스팟에서 사용할 수 있는 최대 수량인가요?
질문2 : 저의 경우는 선물 포지션 신호를 이용하여 선물/옵션 합성거래를 합니다. 이런 경우 합성포지션상에는 콜매수;콜매도; 풋매수;풋매도 및 선물이 섞이게 됩니다. 즉, 선물신호에 따라 특정 가격대의 옵션을 매수/매도 합니다. 아래의 수식에서 주식이 아니라 콜매수2종목/콜매도2종목/풋매수2종목/풋매도2종목/선물이 존재한다고 가정하고, 일정가격에 도달하면 스톱트레일링상 전종목 청산이 아니라 1/2만 청산하는 수식을 부탁드립니다. 나머지 물량은 선물신호상에서 청산 신호가 발생할때 청산할 것입니다.
## 예스스팟 제공 수식
아래는 계좌에 매수하여 종목이 추가되면
해당 종목에 대해 목표수익과 손절매, 트레일링스탑을 적용하는 식입니다.
최대 10종목까지 수행됩니다.
식작성하실 때 참고하시기 바랍니다.
스크립트 객체화면에 계좌객체가 필요합니다. 객체명 Account1
var Nth = 0;
var ItemCode = new Array(10);
var ItemObject = new Array(10);
var ItemHigh = new Array(10);
//종목객체 시세 업데이트
function Main_OnUp*dateMarket(sItemCode, lUp*dateID) // *제거
{
//편입된 종목수 만킄만 수행
for (var i = 1; i <= Nth; i++)
{
if (ItemObject[i].code == sItemCode && lUp*dateID == 20001)
{
Main.MessageList("-----------------------------------------------");
Main.MessageList(ItemObject[i].code,"업데이트");
//잔고셋팅
Account1.SetBalanceItem(ItemObject[i].code,0);
//종목편입 이후의 최고가 계산
if (ItemObject[i].current > ItemHigh[i])
{
ItemHigh[i] = ItemObject[i].current;
}
//매수잔고
if (Account1.Balance.position == 2)
{
//현재가가 평균단가 대비 10%이상 상승하면 매도
if (ItemObject[i].current >= Account1.Balance.avgUnitCost*1.10)
{
Account1.OrderSell(Account1.Balance.code,Account1.Balance.count, 0,1);
//주문 후 해당 종목객체 삭제
Main.RemoveMarketData(ItemObject[i]);
Main.MessageList("수익청산 : ",ItemObject[i].code,"종목객체삭제");
}
// 현재가가 평균단가 대비 10%이상 하락하면 매도
if (ItemObject[i].current <= Account1.Balance.avgUnitCost*0.90)
{
Account1.OrderSell(Account1.Balance.code,Account1.Balance.count, 0,1);
//주문 후 해당 종목객체 삭제
Main.RemoveMarketData(ItemObject[i]);
Main.MessageList("손절청산 : ",ItemObject[i].code,"종목객체삭제");
}
//현재가가 평균단가 대비 8% 이상 상승후 평균단가+5%까지 하락하면 매도주문
if (ItemHigh[i] >= Account1.Balance.avgUnitCost*1.08 &&
ItemObject[i].current <= Account1.Balance.avgUnitCost*1.05)
{
Account1.OrderSell(Account1.Balance.code,Account1.Balance.count, 0,1);
//주문 후 해당 종목객체 삭제
Main.RemoveMarketData(ItemObject[i]);
Main.MessageList("TR청산 : ",ItemObject[i].code,"종목객체삭제");
}
}
Main.MessageList("-----------------------------------------------");
Main.MessageList("종 목 : ",ItemObject[i].code);
Main.MessageList("평균단가 : ",Account1.Balance.avgUnitCost);
Main.MessageList("현 재 가 : ",ItemObject[i].current);
Main.MessageList("진입최고 : ",ItemHigh[i]);
}
}
}
2014-02-22
1557
글번호 222826