当日开仓次数 和顺序 (请给与订正) [MC]
-
MC用户求助:
您的问题主要涉及两个步骤:第一、确定每天白盘开盘的第一根bar;第二、统计每天开仓次数
第一、condition1=(date[1]<>date and time>=900) or (time[1]<900 and time>=900);这段判断白盘第一根bar的条件适合所有的股票、内盘期货。
第二、统计每天开仓次数的代码如下:
var: mp(0);
mp=marketposition*currententries;
{当mp为-2时,表示空仓进场次数;当mp为3时,表示多仓进场次数}第三、结合以上两个地方,代码如下:
var: mp(0), flag(0);
mp=marketposition*currententries;
condition1=(date[1]<>date and time>=900) or (time[1]<900 and time>=900);
if condition1 then
flag=0;
if (mp[1]=0 and mp<>0) or mp[1]*mp<0 then
flag=flag+absvalue(mp)
else if mp[1]*mp>0 then
flag=flag+maxlist(absvalue(mp)-absvalue(mp[1]),0);
第四、"=="在MC中表示为"=","!="在MC中表示为"<>",MarketPosition[1]不能这样使用,这个关键字不能用于回溯。 -
MC回复讨论一:
您的问题主要涉及两个步骤:第一、确定每天白盘开盘的第一根bar;第二、统计每天开仓次数
第一、condition1=(date[1]<>date and time>=900) or (time[1]<900 and time>=900);这段判断白盘第一根bar的条件适合所有的股票、内盘期货。
第二、统计每天开仓次数的代码如下:
var: mp(0);
mp=marketposition*currententries;
{当mp为-2时,表示空仓进场次数;当mp为3时,表示多仓进场次数}第三、结合以上两个地方,代码如下:
var: mp(0), flag(0);
mp=marketposition*currententries;
condition1=(date[1]<>date and time>=900) or (time[1]<900 and time>=900);
if condition1 then
flag=0;
if (mp[1]=0 and mp<>0) or mp[1]*mp<0 then
flag=flag+absvalue(mp)
else if mp[1]*mp>0 then
flag=flag+maxlist(absvalue(mp)-absvalue(mp[1]),0);
第四、"=="在MC中表示为"=","!="在MC中表示为"<>",MarketPosition[1]不能这样使用,这个关键字不能用于回溯。 -
MC回复讨论二:
if 开仓条件 and( )then begin
if 条件 then buy;
if 条件 then sellshort;
end;
1// 括号里 控制语句 需要满足 之前没有过开仓,需指定是当日第一笔开仓,当日只开一次
2//括号里 控制语句 之前必须要有过一次仓位,需指定是当日第二笔开仓,当日只开一次仓;
3//括号里控制语句是 当日总开仓次数小于2条件下 先满足buy条件则则开多,先满足sellshort则先开 sellshort . 可以开2次仓
MarketPosition;
//之前仓位是多头部位,以平掉,当前无持仓
//当前仓位是 持有多头部位
有思路,想编写各种指标公式,程序化交易模型,选股公式,预警公式的朋友
可联系技术人员 QQ: 511411198 进行 有偿 编写!(不贵!点击查看价格!)
相关文章
-
没有相关内容