답변완료
해외선물중 골드(GC_1) 의 취소주문이 작동 안할때가 많음
해외선물중 골드(GC_1) 의 취소주문이 작동 안할때가 많음
6E_1,CL_1 등은 정상 작동하나, 동일한 스팟 전략이 GC_1에 대해서는 취소가
작동 안하는경우가 많음,,,
검토 부탁합니다
2014-04-09
1081
글번호 222919
답변완료
OnRiseSignal 문의
아래 내용은 실제 장에 적용을 해서 확인하니 신호가 제대로 뜨네요.
감사 합니다.
다른 질문은 드리면,
1. 꼭 예스랭기지로 전략을 짜고 그 신호를 받아서 예스스팟을 짜야 하나요?
제 생각은 예스랭기지로 짜지않고 예스스팟으로 짜도 가능 한거죠.
(아마도 복잡 하겠지만요)
2. 만약 예스랭기지로 전략을 짜고 진입 신호만 사용하고 청산을 예스스팟으로 해도 되죠?
(그렇게 하려면 예스랭기지에서 진입한후 인위적으로 청산을 짜야 다음 신호가
들어오니깐요? => 그렇게 하는게 맞나요?)
혹시 다른 문제점은 없나요?
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
*** 안녕 하세요. C1_OnRiseSignal 신호시 문의 ***
먼저 예스스팟 문서에 따라 선택한 부분을 설명 드리면
1. 예스랭지기에서 전략을 만들었습니다.
2. 예스트레이더에서 전략 실행 차트를 띄우고 아이디는 PRESENT로 하고
예스스팟에는 객체를 C1, 아이디는 PRESENT로 만들었습니다.
그리고 차트에 시스템을 적용 하였습니다.
3. 그러면 차트에 매수/매도 진입과 청산이 나옵니다.(여기까지는 문제가 없습니다.)
4. 다음부터의 문제는 예스스팟으로
function Main_OnStart()
{
Main.MessageList("Pivot START");
}
function C1_OnRiseSignal(Signal)
{
if (Signal.signalKind == 1) {
Main.MessageList("Signal.signalKind = ",Signal.signalKind, " 시간=", HHMMDD);
//Main.OrderBuy(sAccoutnNumber, sItemCode, nCount, dPrice, nPriceKind);
}
else if (Signal.signalKind == 3) {
Main.MessageList("Signal.signalKind = ",Signal.signalKind, " 시간=", HHMMDD);
//Main.OrderSell(sAccoutnNumber, sItemCode, nCount, dPrice, nPriceKind);
}
else {
Main.MessageList("Signal.signalKind = ",Signal.signalKind, " 시간=", HHMMDD);
}
}
적용차트에는 신호가 뜨는데
function C1_OnRiseSignal(Signal) 함수로 알려주지를 않고 있습니다.
뭐가 잘못인가요?
답변 부탁드립니다. 감사 합니다.
2014-04-08
1111
글번호 222916
답변완료
선물과 등가옵션으로...
안녕하세요
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;
}
}
2014-04-05
1036
글번호 222913