请教,我对公式做回测和模拟交易时,下单量总是100,下单价格总是市价,而不是我设定的限价和手数,请问这是什么原因造成的?
下单数量及下单价格都是通过代码指定的,贴下您下单代码如何编写的呢?
开仓函数用法:
BUY(COND,V,Type,P);表示当COND条件成立时,
买入V股(手)当前品种,TYPE表示买入类型,P表示买入价格,所有参数均可以省略。V:买入股(手)数或买入资金百分比(V%),若为0或者省略表示100%,若使用实际资金百分比买入请参考PERTRADER函数;TYPE:可以是本周期收盘:THISCLOSE(本周期入场),市价:MARKET(次周期开盘价入场),
限价单:LIMITR(本周期入场),停损单:STOP(次周期入场)等交易方式控制符;P:对于限价单、停损单需要指定的买入价格
例如:BUY(C>O ,1000,THISCLOSE);表示收阳线则在本周期收盘价上买入1000股(手)。
BUY(C>0,50%,LIMITR,CLOSE-0.2);表示在指定限价CLOSE-0.2元位置下买入限价单,
若价格达到或低于该价格则用50%资金买入。
[此贴子已经被作者于2020/9/21 11:12:14编辑过]
代码是这样写的:
买入价1:=60MA5*60MA5rate;
if buycondi=4 and 持仓=0 then begin
建仓手数:=intpart(单股上限*首仓比例/买入价1/10000);
end
if buycondi>0 and 买入价1>0 and 建仓手数>0 then begin
MSGOUT(1,STKNAME()&'buycondi: '&NUMTOSTR(buycondi,0)&' 买入价1: '&NUMTOSTR(买入价1,2)&' 买入价2: '&NUMTOSTR(买入价2,2)&' 建仓手数: '&NUMTOSTR(建仓手数,0));
end
//交易系统
buy(buycondi>0 and 买入价1>0 and 建仓手数>0,建仓手数,LIMITR,买入价1);
我msgout的内容也是和我设计的公式是一致的,例如:
2020/09/21 10:08:37 爱柯迪buycondi: 4 买入价1: 14.64 买入价2: 0.00 建仓手数: 34
但模拟交易成交却是按市价成交的,而且是固定的100股