简单来说,如果是指标交易,那么使用序列模式,算法交易,使用逐K线模式;
简单说明,固定论询是每间隔一定时间内去检测信号是否有发生,发生后就立即采取下单策略;走完K线是必须等到K线结束,下根K线刚产生的那一刻进行信号检测和下单。
举个例子,我现在想在5分钟线上做一个自动化交易,监控全市场的股票。初步分为两个步骤,1是选股程序,2是交易程序(发指令,监控是否成交等等),前者会产生一个清单,可以放在一个股票池里面给后者使用。
这个例子的问题是:1.选股程序用序列还是逐K?2.交易程序用序列还是逐K?选择固定时间间隔还是走完K线?
1、选股、交易程序如果都是通过
指标筛选、交易,那么使用序列模式;2、 5分钟周期下,出现信号是否要立马下单,如果要那么固定轮询;
1.选股似乎应该不容易全部改成指标;交易程序的话可能可以(下楼贴金字塔一个后台序列模式的代码,似乎也包含算法)
2.下单基本上是按照时间点来下单,信号主要是选股程序来选定的,交易程序只负责固定时间点下单,监控。
//该模型为简单示范模型,用户需根据自己交易经验,修改完善后再实际应用!!!
//该模型运行于后台程序化模式
ZH1:'1000';
PZ1:'IF00';
VARIABLE:A=0;
//条件判断
MA5:MA(CLOSE,5);
MA10:MA(CLOSE,10);
CONDBUY:=CROSS(MA5,MA10);
CONDSELL:=CROSS(MA10,MA5);
//控制日内交易次数
IF TTOTALDAYTRADE>=300 THEN EXIT;
//开仓和平仓
TBUY(CONDBUY AND TBUYHOLDINGEX( ZH1,PZ1 ,0 )<10,1,LMT,CLOSE,0,ZH1,PZ1 );
TSELL(CONDSELL,TBUYHOLDINGEX( ZH1,PZ1 ,0 ),MKT,0,ZH1,PZ1);
//加仓
IF TBUYHOLDINGEX( ZH1,PZ1 ,0 )<10 THEN="THEN" BEGIN
阳线加仓:TBUY(CLOSE>OPEN,2,LMT,CLOSE,ZH1,PZ1);
阴线加仓:TBUY(CLOSE
20*MINDIFF THEN BEGIN
TSELL(1,TBUYHOLDINGEX( ZH1,PZ1 ,0 ),MKT,0,ZH1,PZ1);
END
//止损
IF TAVGENTERPRICEEX2(ZH1 ,PZ1 ,0 )-C>10*MINDIFF THEN BEGIN
TSELL(1,TBUYHOLDINGEX( ZH1,PZ1 ,0 ),MKT,0,ZH1,PZ1);
END
//监控未成交单
WCJ:=TREMAINQTY( 1, ZH1,PZ1);
IF WCJ<>0 THEN BEGIN
A:=WCJ;
END
//对为成交单撤单,并追单
IF WCJ>0 THEN BEGIN
TCANCELEX(1,1,ZH1,PZ1 );
TBUY(WCJ=0,A,MKT,0,ZH1,PZ1);
END
//监控持仓和资金状况
当前持仓量:=TBUYHOLDINGEX( ZH1,PZ1 ,0 );
当前可用资金:=TACCOUNT(19);
DEBUGOUT('当前持仓量%.2f',当前持仓量 );
DEBUGOUT('当前可用资金%.2f',当前可用资金 );
//收盘前强平
IF CURRENTTIME>=150000 THEN BEGIN
TSELL(1,0,MKT,0,ZH1,PZ1);
END
代码发了,正在审核,是系统自带的《01.MA均线交易指标-后台》