开拓者期货期权程序化系统交易论坛

标题: 写了如下公式插入应用跟预想不一样是怎么回事 [打印本页]

作者: visions111    时间: 2019-3-28 16:56:42     标题: 写了如下公式插入应用跟预想不一样是怎么回事

[attach]37835[/attach]


Params
    Numeric n1(10);
    Numeric n2(20);

Vars
    NumericSeries ma1;
    NumericSeries ma2;
        BoolSeries golden;//金叉
        BoolSeries ending;//死叉
       
        numeric myhigh;
    numeric mylow;

Begin
    ma1 = Average(c,n1);
    ma2 = Average(c,n2);
        golden = CrossOver(ma1,ma2);
        //ending = CrossOver(ma2,ma1);
        ending = CrossOver(ma1,ma2);
       
        myhigh = highest(h,10);
        mylow = lowest(l,10);
       
        /* If(golden[1])
        {
        Buy(0,o);
        }
        Else If(ending[1])
        {
        SellShort(0,o);
        } */
       
        If(ma1 != 0)
                PlotNumeric("MA_1",ma1);//连线显示
        If(ma2 != 0)
            PlotNumeric("MA_2",ma2);
               
    /* If(ma1>ma2)
        {   PlotNumeric("MA1",ma1,ma2);}//柱状图显示,从ma1画到ma2
        If(ma1<ma2)
    {   PlotNumeric("MA2",ma2,ma1);} */
       
If(golden == true)
{
    Buy(1,o);
        If(MarketPosition == 1 && low <= mylow)
    {
        sell(1,mylow-minmove*pricescale);
    }
}

If(ending == true)
{
    SellShort(1,o);
        If(MarketPosition == -1 && high >= myhigh)
    {
        BuyToCover(1,myhigh+minmove*pricescale);
    }
}



End
作者: visions111    时间: 2019-3-28 16:57:58

为什么一个K线上会执行四个操作呢?
作者: 小米    时间: 2019-3-28 17:02:06

visions111 发表于 2019-3-28 16:57
为什么一个K线上会执行四个操作呢?
  1.   golden = CrossOver(ma1,ma2);
  2.         //ending = CrossOver(ma2,ma1);
  3.         ending = CrossOver(ma1,ma2);
复制代码
golden 和ending的赋值是一样的。。




欢迎光临 开拓者期货期权程序化系统交易论坛 (http://bbs.tb18.net/) Powered by Discuz! X2