예스스탁
예스스탁 답변
2014-04-10 11:50:26
안녕하세요
예스스탁입니다.
문의하신 내용가능하지 않습니다.
차트의 과거 데이터를 그날그날의 시초가 기준으로 조회되게 할수가 없습니다.
도움을 드리지 못해 죄송합니다.
즐거운 하루되세요
> 파문일기 님이 쓴 글입니다.
> 제목 : 선물과 등가옵션으로...
> 안녕하세요
1. 선물 시초가나 예상가를 기준으로 당일의 등가 콜풋옵션을 확장챠트로 만들고 싶습니다.
전의 질문란에 올려져 있는 것을 참조로 만들어 보았는데..
콜과 풋의 등가옵션이 그날그날 바뀌지 않겨 조회 처음부터 연결이 되어 있네요.
위의 그림은 오늘(4.3)의 시초가 기준,
2월 28일은 선물 시초가 257.8인 257.5 양옵션의 기준이 되어야 하는데...
시뮬레이션 항목의 시가기준 ATM을 만들고 싶습니다
해결방법을 좀 알려주세요
감사합니다.
옵션객체
종목객체.MarketData1
var Start;
var CallATM; var PutATM;
var OrderCode;
var MarketData1;
//스팟 시작시에
function Main_OnStart()
{
Start = 0;
OrderCode = Main.GetOrderCode(MarketData1.code);
//날자 및 시계계산
var d = new Date();
var HHMMSS = d.getHours()*10000+d.getMinutes()*100+d.getSeconds();
//코스피200선물에 가장 가까운 콜/풋 종목 선정
var var1 = MarketData1.current;//expectedPrice
var var2 = parseInt(var1/10)*10;
var var3 = var1%10;
var ATM = -1;
if (var3 >= 8.75)
ATM = var2+10;
else if (var3 < 8.75 && var3 >= 6.25)
ATM = var2+7.5;
else if (var3 < 6.25 && var3 >= 3.75)
ATM = var2+5.0;
else if (var3 < 3.75 && var3 >= 1.25)
ATM = var2+2.5;
else
ATM = var2+0.0;
if (Start == 0 && HHMMSS >= 090000)
{
var UNum = Option.uppersATM;
var LNum = Option.lowersATM;
CallATM = -1;
for (var i = -LNum; i <= UNum; i++)
{
if (Option.GetExercisePrice(0, i) == ATM)
CallATM = Option.GetATMCallRecent(i);
}
PutATM = -1;
for (var i = -UNum; i <= LNum; i++)
{
if (Option.GetExercisePrice(1, i) == ATM)
PutATM = Option.GetATMPutRecent(i);
}
Main.MessageList("콜ATM",CallATM ,"풋ATM",PutATM);
//확장 차트객체 요청
var ChartSet3 = new ReqChartItem("00000000",60, CHART_PERIOD_TICK, 5000, CHART_REQCOUNT_BAR, false, false);
//시스템 설정
var TradeSet = new SystemTradeInfo(TRADE_FIXCOUNT,1, 10000000,1, // 자산
0.003, 0.003,CALCMETHOD_PERCENT, // 진입/청산 수수료
0.05, 0.05,CALCMETHOD_POINT, // 진입/청산 슬리피지
PYRAMIDING_ENTRY, // 피라미딩 설정여부
1000, //1000, // 최대진입수량
10); // 최대진입횟수
var SystemSet3 = new SystemInfo("OpFuture",YL_TYPE_NORMAL,null,TradeSet,null);
//참조데이터 추가
var R11 = new ReqChartItem(CallATM, 60, CHART_PERIOD_TICK, 5000, CHART_REQCOUNT_BAR, false, false);
var R12 = new ReqChartItem(PutATM, 60, CHART_PERIOD_TICK, 5000, CHART_REQCOUNT_BAR, false, false);
var ReferDataSet3 = new Array(R11,R12);
//지정한 설정으로 챠트 생성을 요청
Main.ReqChartEx(ChartSet3,SystemSet3,null,ReferDataSet3);
}
}
//요청한 차트객체 생성이 완료되면
function Main_OnRcvChartEx(ChartEx)
{
if ( ChartEx.GetCode(1) == OrderCode.code)
{
ChartEx3 = ChartEx;
Start = 1;
}
}