답변완료
질문드립니다
옵션 차월물
Option.GetATMCallRecent(nLevel, nNext)
Option.GetATMPutRecent(nLevel, nNext)
함수의 두번째 매개변수 nNext)가 차근월물을 설정하는 매개변수입니다.
nNext를 0으로 설정하시면 근월물, 1이 차월물입니다. 0은 생략가능합니다.
차월물까지만 제공이 됩니다.
그러면, 콜옵션 차월물 현재가는 아래와 같은가요??
Option.GetCurrent(0, nLevel, nNext) ;
질문2 ;
제공해주신 예제들중에 옵션가격이 특정가격 이상이며, 특정가격에 가장 가까운 가격을 찾는 방법이 있는데, 잘 사용하고 있습니다. 그 예제를 차월물 옵션에 적용하는 수식을 부탁드립니다. 포지션 매수에서는 만기일이 가까워질때는 옵션 프리미엄을 고려하여 차월물 매매가 필요합니다. 수고하십시요.
2014-02-25
1310
글번호 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
1571
글번호 222826
답변완료
질문드립니다
수고가 많어십니다..
예스스팟을 점검하다가 다음과 같은 오류를 발견하였습니다.
주문을 할때,
Option.GetBidByCode(PutBuyExitlongOrderCode, 5) ;
상기와 같이 상대5호가를 주문가격으로 설정하여 사용하는데, 주문가격 설정시 현제가격이 0.04 이하인경우, 즉, 상대5호가가 0.01 보다 작아지는 경우;; [check_order_ok]가격 제한폭 초과[0.010000][17.250000]; sqlnum 20003 오류발생하여 매수청산주문이 실행되지 않았습니다..
주문가격이 0.01 혹은 상//하한가 범위를 벗어나는 경우,, 예스스팟 프로그램상에서 defalut로 주문가격을 0.01 혹은 상하한가로 수정하여 정상적인 주문이 수행될 수 있도록 만들어주시기를 부탁드립니다..
예스스팟에서 default 수정주문이 불가능하다면, 주문가격을 체크하여 주문오류를 방지할 수 있는 수식을 부탁드립니다..
옵션매도가 있는 경우, 급격한 가격상승으로 청산가격이 상한가인 경우,, 상기와 같은 상대5호가를 사용할 경우, 발생할 수 있는 청산오류를 방지할 수 있는 수식부탁드립니다..
2014-02-19
1351
글번호 222820
답변완료
프로그램 문의
안녕 하세요.
현재 옵션매매를 하고 있는데
옵션은 행사가가 여러개가 있어 손매매로 하기에는 시간차가 생겨 동시에 여러개의 행사가로 진입을 못하고 있는데 동시에 여러개의 행사가로 진입을 할수 있게 프로그램을 짤수 있나요?
프로그램이 알아서 진입 청산이 아니고 미리 설정한 행사가를 선택한후 프로그램을 클릭하면 여러개의 행사가에 동시에 진입/청산을 하면 됩니다.
예로써, 콜이면 255.00, 257.50, 260.00의 옵션 매수(매도)를 클릭하면 한번 클릭에 동시에 현재가(바로 진입가)로 진입을 하고 청산도 클릭 한번에 다 청산을 하고 싶습니다.
또한 각 행사가 마다 진입 갯수를 정하면 더 좋고요.
어떻게 프로그램을 짜야 하는지 알려 주시면 감사 하겠습니다.
다시 정리하면
미리 지정변수를 정하면
1. 행사가 선택(3개 이상)=> 콜 255.00, 257.50, 260.00 아니면 풋 250.00, 247.50, 245.00
2. 모든 행사가의 매수만 아니면 매도만 선택.
3. 행사가 마다 갯수 지정.
4. 일괄 청산 가능.
하이투자증권에 물어보니 예스스팟으로 가능하다고 하는데 가능 한가요?
꼭 답변 부탁 드립니다.
2014-02-19
1340
글번호 222819