업무에 노고가 많으십니다.
다름이 아니오라
옵션 만기일에 미청산중인 포지션이 -50%가 넘으면
강제 청산하는 수식을 예스스팟으로 작성하고 싶습니다.
아직 예스스팟에 문외한이라 전문가의 도움을 얻고자 합니다.
부탁드립니다.
답변 1
예스스탁
예스스탁 답변
2014-02-17 18:49:35
안녕하세요
예스스탁입니다.
아래식 참고하시기 바랍니다.
가이드이므로 주석참고하셔서 수정 보완해 사용하시기 바랍니다.
스크립트객체화면에서 욥션객체와 계좌객체가 설정되어 있어야 합니다.
옵션객체 추가,
계좌객체 추가 --> 속성에서 객체명은 Account1입니다.
function Main_OnStart()
{
Main.SetTimer(1, 5000);
}
function Main_OnTimer(nEventID)
{
//잔존일이 1일일때
if (nEventID == 1 && Option.GetRemainDays(0, 0) == 1)
{
var num = Account1.GetTheNumberOfBalances();
for(var i = 0; i < num; i++)
{
Account1.SetBalanceIndex(i);
//매수포지션
//현재가가 진입단가 대비 -50% 이하이면 청산
if (Account1.Balance.count > 0 &&
Account1.Balance.position == 2 &&
Account1.Balance.code.charAt(0) != "1" &&
Account1.Balance.current <= Account1.Balance.avgUnitCost *0.5)
{
Account1.OrderSell(Account1.Balance.code,Account1.Balance.count,Option.GetAskByCode(Account1.Balance.code, 3),0);
}
//매도포지션
//현재가가 평균단가 대비 +50% 이상이면 청산
if (Account1.Balance.count > 0 &&
Account1.Balance.position == 1 &&
Account1.Balance.code.charAt(0) != "1" &&
Account1.Balance.current >= Account1.Balance.avgUnitCost *1.5)
{
Account1.OrderBuy(Account1.Balance.code,Account1.Balance.count,Option.GetBidByCode(Account1.Balance.code, 3),0);
}
}
}
}
즐거운 하루되세요
> 몬자 님이 쓴 글입니다.
> 제목 : 스팟문의드립니다.
> 업무에 노고가 많으십니다.
다름이 아니오라
옵션 만기일에 미청산중인 포지션이 -50%가 넘으면
강제 청산하는 수식을 예스스팟으로 작성하고 싶습니다.
아직 예스스팟에 문외한이라 전문가의 도움을 얻고자 합니다.
부탁드립니다.