답변완료
수식 부탁합니다.
많은 도움을 받고 있습니다.
선물매수신호유지시 콜옵션 1.0 에 가장근접한 행사가를 15시04분 매도, 익일 15시 03분 청산
풋옵션 2.0 에 가장근접한 행사가를 15시04분 매도, 익일 15시 03분 청산
선물매도신호유지시 콜옵션 2.0 에 가장근접한 행사가를 15시04분 매도, 익일 15시 03분 청산
풋옵션 1.0 에 가장근접한 행사가를 15시04분 매도, 익일 15시 03분 청산
로스컷은 아래식으로 가능한지요?
//5초단위로 잔고 체크
function Main_OnTimer(nEventID)
{
var U1 = 0;
var P1 = 0;
var V1 = 0;
var Z1 = 0;
var U2 = 0;
var P2 = 0;
var V2 = 0;
var Z2 = 0;
//최근 buy발생상태이면
if (Start == 1)
{
A1.SetBalanceItem(CallCode1,0);
if (A1.Balance.count > 0 && A1.Balance.position == 1)
{
U1 = A1.Balance.avgUnitCost;
P1 = A1.Balance.current;
V1 = A1.Balance.count;
Z1 = ((U1-P1)*V1)*500000;
}
A1.SetBalanceItem(CallCode2,0);
if (A1.Balance.count > 0 && A1.Balance.position == 2)
{
U2 = A1.Balance.avgUnitCost;
P2 = A1.Balance.current;
V2 = A1.Balance.count;
Z2 = ((P2-U2)*V2)*500000;
}
if ((Z1+Z2) <= loss)
{
A1.OrderBuy(CallCode1, V1, Option.GetAskByCode(CallCode1, 2), 0);
A1.OrderSell(CallCode2, V2, Option.GetBidByCode(CallCode2, 2), 0);
Main.SetUserValue("Start", 0);
Main.SetUserValue("Code1", " ");
Main.SetUserValue("Code2", " ");
}
}
//최근 SEll발생상태이면
if (Start == -1)
{
A1.SetBalanceItem(PutCode1,0);
if (A1.Balance.count > 0 && A1.Balance.position == 1)
{
U1 = A1.Balance.avgUnitCost;
P1 = A1.Balance.current;
V1 = A1.Balance.count;
Z1 = ((U1-P1)*V1)*500000;
}
A1.SetBalanceItem(PutCode2,0);
if (A1.Balance.count > 0 && A1.Balance.position == 2)
{
U2 = A1.Balance.avgUnitCost;
P2 = A1.Balance.current;
V2 = A1.Balance.count;
Z2 = ((P2-U2)*V2)*500000;
}
if ((Z1+Z2) <= loss)
{
Start = 0;
A1.OrderBuy(PutCode1, V1, Option.GetAskByCode(PutCode1, 2), 0);
A1.OrderSell(PutCode2, V2, Option.GetBidByCode(PutCode2, 2), 0);
Main.SetUserValue("Start", 0);
Main.SetUserValue("Code1", " ");
Main.SetUserValue("Code2", " ");
}
}
}
2015-04-20
1777
글번호 223436
답변완료
예스스팟에서 차차근월물,차차차근월물도 수식작성 가능한가요?
예스스팟에서 코스피200 옵션 최근월물,차근월물을 대상으로 수식작성은 가능한거 같은데, 차차근월물이나 차차차근월물에 대해서도 수식작성이 가능한가요?
현재로치면 5월물(최근월물), 6월물(차근월물)까진 예스스팟에서 지원되는 거 같은데, 7월물이나 8월물도 수식작성이 가능한지 궁금합니다.
그리고, CME 야간선물도 예스스팟에서 지원되는 것 같던데, 야간 옵션은 지원안되는 것 같더군요.
향후에 야간옵션도 혹시 지원될 예정은 없는지 궁금합니다.
그리고, 아래 1155번 글 예스스팟 OrderBuy() 함수 관련해서 문의한 것 답변주신대로 해봤는데, 제대로 안되서 재문의드렸습니다.
2015-04-20
1866
글번호 223433
답변완료
예스스팟 OrderBuy() 함수 관련해서 문의
제가 예스트레이더(하이투자증권) hts를 깔아서 예스스팟에 대해 살펴보고 있는데요.
예스스팟 매뉴얼에 나와있는 수식들을 예스트레이더 모의투자로 접속해서 실행해 보고 있는데, 한가지 궁금한 점이 있어 문의드립니다.
예스스팟 매뉴얼에 나와있는 예제들을 일일이 예스스팟 편집기에서 쳐보고 있는데, OrderBuy() 메서드가 항상 실행에 실패하더군요.
제가 다음과 같이 OrderBuy()의 결과값을 ID로 받아와서 MessageLog() 메서드로 디버깅 창에 찍어보면 항상 0 으로 찍힙니다.
이게 매뉴얼의 모든 예제들에 대해서 다 그래요.
var ID;
function Main_OnStart()
{
ID = Main.OrderBuy(A1.number, Option.GetATMCallRecent(0), 1, 0, 1);
Main.MessageLog(ID);
}
이게 HTS를 모의투자로 접속해서 그런 건가요? 모의투자로 접속하면 항상 OrderBuy() 메서드는 실패하나요?
아니면 제가 뭘 잘못해서 그런 것인지...
매뉴얼에 나와있는 예제들을 그대로 따라서 입력했을 뿐인데. OrderBuy()에서 항상 걸려서 다음 루틴으로 넘어가질 않네요.
그리고, 한가지더....
예스트레이더를 깔고 나니깐 한글 프로그램에서 키입력이 제대로 안되던데, 혹시 왜 그런지 아세요?
한글 자판을 두드리면 ㅁ 만 표시되고 먹통이 되더군요. 영타를 치면 a 만 뜨고 다른 키입력이 안됩니다.
숫자키는 제대로 되구요.
한글 키입력이 되다가 안되다가 그럽니다.
예스트레이더를 실행하면 키보드보안 프로그램도 같이 실행되던데, 이것 때문에 문제가 생기는 건지..
2015-04-17
1983
글번호 223427
답변완료
예스스팟 수식문의
안녕하세요 언제나 훌륭한 답변해 주셔서 감사합니다.
예스스팟 메뉴얼에 있는 예제5번 합성선물에 관한 사항인데요
예제.선물차트에서 매수신호가 발생하면 ATM 콜매수+풋매도
선물차트에서 매수청산신호가 발생하면 매수신호시 주문종목 청산
선물차트에서 매도신호가 발생하면 ATM 콜매도+풋매수
선물차트에서 매도청산신호가 발생하면 매도신호시 주문종목 청산
상기 예제를 ATM 등가격이 아닌 프리미엄 2.0 에 가장 가까운 옵션 종목으로 진입청산하고
싶습니다. 진입가격은 +-5호가 입니다.
초보라 하나하나 따라서 하는데 쉽지가 않네요 아래는 메뉴얼에 있는 로직입니다.
========================= 예제로직 ===============================
/*스크립트시작-----------------------------------------------------*/
var Start;
var BuyCallCode;
var BuyPutCode;
var SellCallCode;
var SellPutCode;
function Main_OnStart()
{
Main.MessageLog("시작");
Start = 0;
}
function C1_OnRiseSignal(Signal)
{
Main.MessageLog("신호완성/"+Signal.signalKind);
if (Signal.signalKind == 1 )
{
Start = 1;
BuyCallCode = Option.GetATMCallRecent(0);
BuyPutCode = Option.GetATMPutRecent(0);
var BuyCallPrice = Option.GetAskByCode(BuyCallCode,2);
var BuyPutPrice = Option.GetBidByCode(BuyPutCode,2);
A1.OrderBuy(BuyCallCode, Vol, BuyCallPrice, 0);
A1.OrderSell(BuyPutCode, Vol, BuyPutPrice, 0);
Main.MessageLog("합성선물매수");
}
if (Start == 1 && Signal.signalKind == 2 )
{
var BxCallPrice = Option.GetBidByCode(BuyCallCode, 2);
var BxPutPrice = Option.GetAskByCode(BuyPutCode, 2);
A1.OrderSell(BuyCallCode, Vol, BxCallPrice, 0);
A1.OrderBuy(BuyPutCode, Vol, BxPutPrice, 0);
Main.MessageLog("합성선물매수청산");
}
if (Signal.signalKind == 3 )
{
Start = 1;
SellCallCode = Option.GetATMCallRecent(0);
SellPutCode = Option.GetATMPutRecent(0);
var SellCallPrice = Option.GetBidByCode(SellCallCode,2);
var SellPutPrice = Option.GetAskByCode(SellPutCode,2);
A1.OrderSell(SellCallCode, Vol, SellCallPrice , 0);
A1.OrderBuy(SellPutCode, Vol, SellPutPrice, 0);
Main.MessageLog("합성선물매도");
}
if (Start == 1 && Signal.signalKind == 4 )
{
var SxCallPrice = Option.GetAskByCode(SellCallCode, 2);
var SxPutPrice = Option.GetBidByCode(SellPutCode, 2);
A1.OrderBuy(SellCallCode, Vol, SxCallPrice, 0);
A1.OrderSell(SellPutCode, Vol, SxPutPrice, 0);
Main.MessageLog("합성선물매도청산");
}
}
/*스크립트끝-------------------------------------------------------*/
========================= 로 직 끝 ===============================
소중한 답변 기다리겠습니다. 수고하세요
2015-04-10
1799
글번호 223418