策略说明:
        当某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作为信号价格,但是信号触发并不是在开盘时刻
这个应该要问作者怎么回事,很低级的错误,建议作者再多看看零基础的教程,多研究几个盘中突破模型的案例代码学习一下
我好像根你遇到一样的问题了,管理没人回复
...人家不用下班休息的么?你是奴隶主吗拿鞭子催着人家回你啊?