检查策略代码是否写错,模拟测试结果与策略说明有点差距

策略说明:        当某bar对应参数为14的CCI指标上穿1且收盘价对应cci值大于1时开仓做多单,固定开5手,当后续bar对应参数为14的CCI指标下穿 1时平仓。第一次开仓多单未平仓时,不开新单。系统要素:        1、参数为14的CCI指标入场条件:        1、某bar对应参数为14的CCI指标上穿1且收盘价对应cci值大于1        2、当前没有未平仓的多单出场条件:        1、后续bar对应参数为14的CCI指标下穿 1注    意:        此公式仅做多*/Params    Numeric cciLength(14);        // CCI指标参数    Numeric Lots(5);              // 交易手数Vars    Series<Numeric> typicalPrice(0);  // 典型价格    Series<Numeric> smaTP(0);        // 典型价格的简单移动平均线    Series<Numeric> atrVal(0);       // 真实波动幅度均值    Series<Numeric> cciVal(0);       // CCI指标值    Bool isOpened(False);           // 标记是否已经开仓Events    OnBar(ArrayRef<Integer> indexs)    {        // 计算典型价格        typicalPrice = (High + Low + Close) / 3;        // 计算典型价格的简单移动平均线        smaTP = Average(typicalPrice, cciLength);        // 计算真实波动幅度均值        atrVal = AvgTrueRange(cciLength);        // 计算CCI指标        cciVal = (typicalPrice - smaTP) / (0.015 * atrVal);        // 画线        PlotNumeric("CCI", cciVal);        // 入场条件判断        If(!isOpened And MarketPosition != 1 And cciVal[1] <= 1 And cciVal > 1 And cciVal > 1)        {            // 开多单            Buy(Lots, Open);            isOpened = True;        }        // 出场条件判断        If(MarketPosition == 1)        {            // 参数为14的CCI指标下穿 1时,平多单            If(cciVal[1] >= 1 And cciVal < 1)            {                Sell(0, Open);                isOpened = False;            }        }    }//------------------------------------------------------------------------// 编译版本        GS2014.10.25// 版权所有        TradeBlazer Software 2003-2025// 更改声明        TradeBlazer Software保留对TradeBlazer平//                        台每一版本的TradeBlazer公式修改和重写的权利请大神帮我看下,这段策略代码是哪里出了问题,我要限制开仓,固定开仓,但是模拟测试总是会多次买入超量,Numeric Lots(5);              // 交易手数,这句写的有问题么?

这是你的图表,你说的超量买入是什么意思

应该很明显偷价了,用open作为信号价格,但是信号触发并不是在开盘时刻这个应该要问作者怎么回事,很低级的错误,建议作者再多看看零基础的教程,多研究几个盘中突破模型的案例代码学习一下

我好像根你遇到一样的问题了,管理没人回复

回复:...人家不用下班休息的么?你是奴隶主吗拿鞭子催着人家回你啊?