답변완료
수식 검증 부탁드립니다
항상수고 많으십니다
ChartExe[1]은 매수차트이고 ChartExe[2]는 매도차트입니다.
전일 매도포지션이더라도 종가봉에 매도청산 예비신호 발생 시 동시호가 매도진입 불가입니다.
나머지 변수들은 올바르게 리턴하는데,
미완성봉을 리턴하는 aSignal 이 undefined 가 나오는데 이유를 알수 없습니다.
감사합니다.
var aSignal ;
var RcvChCount ;
var ChartExe = new Array(20);
var SystemSet = new Array(20);
var ChartSet = new Array(20);
function Main_OnStart()
{
Main.SetTimer(99, 3000);
RcvChCount = 0 ;
ChartSet[0] = new ReqChartItem( "00000000" ,300 , CHART_PERIOD_TICK, 1000, CHART_REQCOUNT_BAR, false, false);
SystemSet[0] = new SystemInfo("매수",YL_TYPE_NORMAL,null,null);
Main.ReqChartEx(ChartSet[0],SystemSet[0],null);
ChartSet[1] = new ReqChartItem( "00000000" ,300 , CHART_PERIOD_TICK, 1000, CHART_REQCOUNT_BAR, false, false);
SystemSet[1] = new SystemInfo("매도",YL_TYPE_NORMAL,null,null);
Main.ReqChartEx(ChartSet[1],SystemSet[1],null);
}
function Main_OnRcvChartEx(ChartEx)
{
RcvChCount = RcvChCount + 1 ;
ChartExe[RcvChCount] = ChartEx ;
}
function Main_OnTimer(nEventID)
{
var d = new Date();
var HHMMDD = d.getHours()*10000+d.getMinutes()*100+d.getSeconds();
var aSignal = ChartExe[2].GetIncompleteSignal();
Main.MessageList("종목코드1",ChartExe[1].GetCode(1) );
Main.MessageList("종목코드2",ChartExe[2].GetCode(1) );
Main.MessageList("전일포지션",ChartExe[1].GetOpenContracts() );
Main.MessageList("전일포지션",ChartExe[2].GetOpenContracts() );
if (
nEventID == 99
&& HHMMDD < 090000
&& ( ChartExe[2].GetOpenContracts() < 0 )
//매도청산 예비신호발생시 동시호가 매도진입 불가
&& !(aSignal != null && aSignal[0].signalKind == 4 )
)
{
Main.KillTimer(99);
Main.MessageLog("동시호가매도조건충족:매도실행");
}
}
2014-08-13
1303
글번호 223122
답변완료
예스자동정정 기능을 예스스팟에서 구현부탁드려요
안녕하세요.
예스스팟을 사용하다보니
디비깅 기능이 예스트레이더보다 미약해서
세부오류 확인 및 정정은 실전에서 밖에는 안되더라구요.
더더구나 계좌 및 거래와 연계된 부분은 실제 돈이 투입되어야 하구요.
몇차례 같은 어려움을 겪으면서, 실제투자금이 오류잡는데 줄어드는 것을
보니 기능구현을 하면서도 많이 망설여지더라구요.
다름이 아니라,
이번에는 예스자동정정기능을 예스스팟으로 구현하려고 하는데
앞에 말씀드린 부분때문에 접근이 쉽지 않습니다.
그래서 예스자동정정기능의 개념을
예스스팟 로직으로 구현 부탁드립니다.
구체적인 요청사항은
예스트레이더 차트 신호를 받아서
각각의 경우 주문을 할때
예스자동정정과 유사한 방법의 주문이 정정되도록 작성 부탁드립니다.
1. 예스차트의 매수주문 신호시
ㅇ상대호가잔량/우선호가잔량 30% 미만시 or
상대호가잔량 30주 미만시
상대1호가 자동정정, 제한가격은 상대5호가
ㅇ60초 후에 상대5호가로 강제 정정주문
2. 예스차트의 매수청산 주문신호시
ㅇ상대호가잔량/우선호가잔량 30% 미만시 or
상대호가잔량 30주 미만시
상대1호가 자동정정, 제한가격은 상대5호가
ㅇ60초 후에 상대5호가로 강제 정정주문
도움 항상 감사드립니다.
2014-08-07
1116
글번호 223115
답변완료
스팟수식 부탁드립다.
안녕하세요~ 매번 친철한 답변 감사드립니다.
아래식은 계시판에 올라온 스팟식인데요
선물 신호나면 양매수 또는 양매도하는 수식입니다.
현재 진입종목이 등가로 설정되어 있는데 이걸 0.7~1.7 사이의 옵션종목중 1.7에 가장
가까운 종목의 옵션을 매매(현재가+-3호가)하는 식으로 변경 부탁드립니다.
아래는 해당식임
===============================================================================
var Start = 0;
var BC;
var BP;
var Bcount;
var SC;
var SP;
var Scount;
function Main_OnStart()
{
Start = 0;
Main.MessageList("시작",Start);
}
function Chart1_OnRiseSignal(Signal)
{
//차트에서 매수신호 발생
if (Signal.signalKind == 1)
{
Start = 1;
BC = Option.GetATMCallRecent(0,0);
BP = Option.GetATMPutRecent(0,0);
Bcount = Signal.count;
Account1.OrderBuy(BC,Bcount,Option.GetAskByCode(BC,3),0);
Account1.OrderBuy(BP,Bcount,Option.GetAskByCode(BP,3),0);
}
//차트에서 매수청산신호 발생
if (Start == 1 && Signal.signalKind == 2)
{
Start = 0;
Account1.OrderSell(BC,Bcount,Option.GetBidByCode(BC,3),0);
Account1.OrderSell(BP,Bcount,Option.GetBidByCode(BP,3),0);
}
//차트에서 매도신호 발생
if (Signal.signalKind == 3)
{
Start = -1;
SC = Option.GetATMCallRecent(0,0);
SP = Option.GetATMPutRecent(0,0);
Scount = Signal.count;
Account1.OrderSell(SC,Scount,Option.GetBidByCode(SC,3),0);
Account1.OrderSell(SP,Scount,Option.GetBidByCode(SP,3),0);
}
//차트에서 매도청산신호 발생
if (Start == -1 && Signal.signalKind == 4)
{
Start = 0;
Account1.OrderBuy(SC,Scount,Option.GetAskByCode(SC,3),0);
Account1.OrderBuy(SP,Scount,Option.GetAskByCode(SP,3),0);
}
}
============================================================================
소중한 답변 기다리겠습니다 수고하세요
2014-08-06
1091
글번호 223114