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

标题: 请老师帮我看看哪里出错了? [打印本页]

作者: cygang    时间: 2016-5-27 11:09:15     标题: 请老师帮我看看哪里出错了?

本帖最后由 cygang 于 2016-5-29 07:57 编辑

还没
作者: cygang    时间: 2016-5-27 11:15:44

编译老是提示逻辑错误,我看不出问题在哪?把提示逻辑错误的代码移到if语句外面就通过,但加载到主图k线上没有开平仓信号。麻烦老师了
作者: 小米    时间: 2016-5-27 11:21:19

先说一下问题表现是啥吧.

作者: cygang    时间: 2016-5-27 11:28:12

小米 发表于 2016-5-27 11:21
先说一下问题表现是啥吧.

代码想表达的意思是:设一根均线,均线之上突破最近9天高点开多,均线之下突破最近20天最低价开空;多头平仓为收盘价跌破开仓bar的最低价和开仓后最高价的X跳中的较高者就平仓,空头平仓反之
作者: 小米    时间: 2016-5-27 13:38:24

cygang 发表于 2016-5-27 11:28
代码想表达的意思是:设一根均线,均线之上突破最近9天高点开多,均线之下突破最近20天最低价开空;多头 ...

bktj=Close[1]>dkx&&Close[1]>Highest(High,N1);
        sktj=Close[1]<dkx&&Close[1]<Lowest(Low,N2);
这里会有问题,highest(), lowest()不能放到这里来赋值 。可以先声明二个变量,将highest,lowest赋值给变量后,再将变量代入等式后面
作者: cygang    时间: 2016-5-28 15:05:17

本帖最后由 cygang 于 2016-5-29 06:45 编辑
小米 发表于 2016-5-27 13:38
bktj=Close[1]>dkx&&Close[1]>Highest(High,N1);
        sktj=Close[1]


不行啊老师,编译通过了但还是没有开平仓的动作,是什么原因?
修改后代码如下:

Params   
        Numeric N1(9);
        Numeric N2(20);
        Numeric A(60);
Vars
        NumericSeries dkx(0);
        Numeric HIGHN1(0);
        Numeric LOWN2(0);
Begin       
    dkx=XAverage(Close,A);
        HIGHN1=Highest(High,N1);
        LOWN2=Lowest(Low,N2);
               
        PlotNumeric ("dkx",DKX);

        if (Close[1]>dkx&&Close[1]>HighN1&&MarketPosition<>1) Buy(1,open);

        if (Close[1]<dkx&&Close[1]<LowN2&&MarketPosition<>-1) SellShort(1,Open);
end




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