예스스팟에 질문남겨드리면 답변이 너무 늦어서 여기에 남깁니다. 간단한 수식인데, 잔고에 콜옵션은 있고, 풋옵션은 없거나 풋옵션은 있고 콜옵션은 없는 즉, 콜,풋 중 하나만 있고 매도호가가 0.01 일때 지정가 0.01에 매수하는 수식 부탁드리겠습니다.
항상 도움주셔서 감사합니다.
답변 1
예스스탁
예스스탁 답변
2023-09-19 15:55:10
안녕하세요
예스스탁입니다.
계좌객체명은 Acount1, 옵션객체명은 Option1입니다.
이벤트는 임의로 타이머 동작으로 작성해 드립니다.
function Main_OnStart()
{
Main.SetTimer(1, 5000)
}
function Main_OnTimer(nEventID)
{
if (nEventID == 1)
{
var num = Account1.GetTheNumberOfBalances();
if (num > 0)
{
//초기값 null
var Call = null;
var Put = null;
for (var i = 0; i < num; i++)
{
//순서대로 잔고셋팅
Account1.SetBalance(i);
//옵션 매도포지션이고
if (Option1.GetCurrent(Account1.Balance.code) > 0 && Account1.Balance.position == 1)
{
//콜인지 풋인지 확인
//종목의 행사가 리턴
var 행사가 = Option1.GetExercisePrice(Account1.Balance.code);
//해당 행사가의 콜종목코드 저장
var 콜코드 = Option1.GetCodeByExercisePrice(0, 행사가);
//해당 행사가의 풋종목코드 저장
var 풋코드 = Option1.GetCodeByExercisePrice(1, 행사가);
//잔고종목이 콜이면 Call에 종목코드 저장
if (Account1.Balance.code == 콜코드)
{
Call = 콜코드;
}
//잔고종목이 풋이면 Put에 종목코드 저장
if (Account1.Balance.code == 풋코드)
{
Put = 풋코드;
}
}
}
//Call은 종목코드가 저장되고 풋은 없을때 콜의 매도1호가가 0.01이면 매수주문
if (Call != null && Put == null && Option1.GetAsk(Call, 1) == 0.01)
{
Account1.OrderBuy(Call, Account1.Balance.count,0.01,0);
}
//Put은 종목코드가 저장되고 콜은 없을때 풋의 매도1호가가 0.01이면 매수주문
if (Call == null && Put != null && Option1.GetAsk(Put, 1) == 0.01)
{
Account1.OrderBuy(Put, Account1.Balance.count,0.01,0);
}
}
}
}
즐거운 하루되세요
> 히익 님이 쓴 글입니다.
> 제목 : 콜 풋 중 하나만
> 예스스팟에 질문남겨드리면 답변이 너무 늦어서 여기에 남깁니다. 간단한 수식인데, 잔고에 콜옵션은 있고, 풋옵션은 없거나 풋옵션은 있고 콜옵션은 없는 즉, 콜,풋 중 하나만 있고 매도호가가 0.01 일때 지정가 0.01에 매수하는 수식 부탁드리겠습니다.
항상 도움주셔서 감사합니다.