您现在的位置:程序化交易>> 期货公式>> (MC)multicharts>> MC知识>>正文内容

当日开仓次数 和顺序 (请给与订正) [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  点击这里给我发消息进行 有偿 编写!不贵!点击查看价格!


【字体: 】【打印文章】【查看评论

相关文章

    没有相关内容