策略修改
2022-01-05 23:26

问题1;两条均线不显示

问题2;MACD快线和0轴也不显示

问题3;没有交易信号

//只做多双均线,MA1金叉MA3 同时满足MACD快线上穿0轴
//固定止盈,开仓价格盈利20个点 止盈点位是可变参数
//固定止损,开仓价格亏损20个点 止损点位是可变参数
//开仓手数是可变参数
Params
    Numeric Lots(1);
    Numeric TakeProfitSet(20);// 止赢设置
    Numeric StopLossSet(20);// 止损设置
    Numeric FastLength(12);//MACD周期设置
    Numeric SlowLength(26);//MACD周期设置
    Numeric MACDLength(9);//MACD周期设置
Vars
    Numeric MA1;
    Numeric MA3;
    Numeric AvgMACD;
    Numeric MACDValue;
    Series<Numeric> MACDDiff;
    Series<Numeric> my_EntryPrice;
    Series<Bool> B;
    Series<Bool> S;
    Series<Bool> M(false,2);//MACD中的序列布尔型变量
    Series<Bool> N(false,2);//MACD中的序列布尔型变量
Events
    OnBar(ArrayRef<Integer> indexs)
    {
            MA1 = AverageFC(Close,5);
            MA3 = AverageFC(Close,20);
            PlotNumeric("MA1",MA1);
            PlotNumeric("MA3",MA3);
            B = CrossOver(MA1,MA3);   
            S = CrossUnder(MA1,MA3);
            
       Range[0:DataSourceSize() - 1]
    
            MACDDiff = XAverage( Close, FastLength ) - XAverage( Close, SlowLength ) ;//dif快线
            AvgMACD = XAverage(MACDDiff,MACDLength);//dea慢线
            MACDValue = MACDDiff - AvgMACD;//柱体, >0 红柱,<0 绿柱
            PlotNumeric("MACDDiff",MACDDiff);
            PlotNumeric("zero",0);
            M = CrossOver(MACDDiff,0);
            N = CrossUnder(MACDDiff,0);
            //Commentary("M="+IIFString(M,"True","False"));//什么意思不知道?
            //Commentary("N="+IIFString(N,"True","False"));//什么意思不知道?

            if(B) PlotBool("金叉",true);
            if(MarketPosition<>1 and B[1] And M[1])//在空仓的情况下,MA1和MA3金叉,dif快线向上过0轴,向前回溯1根K线
            {
                buy(Lots,OPEN);
                my_EntryPrice = Open;
            }
            if(MarketPosition==1 and S[1])////向前回溯1根K线
            {
                sell(Lots,OPEN);
            }
            //////止损代码
            If(MarketPosition==1 And  low-my_EntryPrice<-StopLossSet)//持有多单,止损条件满足,亏损20
            {
                Sell(Lots,Min(Open,EntryPrice-StopLossSet));
            }
            //////止盈代码
            If(MarketPosition==1 And high-my_EntryPrice>TakeProfitSet)//持有多单,止盈条件满足,盈利20
            {
                Sell(Lots,Max(Open,my_EntryPrice+TakeProfitSet));
            }
     }

评论区
xdqh10180603

现在是主图和幅图不分,能解决一下吗?

2022-01-09 20:31
xdqh10180603

你主图和副图是怎么拆分的?

2022-01-07 12:08
xdqh10180603

哪里有问题你能帮我说出来吗? 我画了一个笑脸也没有显示,也没有交易信号呀  你这个图片上。

2022-01-06 22:59
顶部