为什么我的代码编译没有问题,但是模拟和回测没有操作记录啊

Params Numeric FastMA(4); //macd短周期值 Numeric SlowMA(10); //macd长周期值 Numeric AvgMA(16); //MACD慢线周期值 Numeric MAperiod(11); //11日均线周期值 Vars Series<Numeric> MACDLine(0); Series<Numeric> SignalLine(0); Series<Numeric> MAValue(0); Bool BuyCondition(False); Bool SellShortCondition(False); Events OnBar(ArrayRef<Integer> indexs) { // 计算MACD快线(diff线) MACDLine = XAverage(Close, FastMA) - XAverage(Close, SlowMA); // 计算MACD慢线(dea线) SignalLine = XAverage(MACDLine, AvgMA); // 计算11日均线 MAValue = XAverage(Close, MAperiod); // 确定做多条件 BuyCondition = (MACDLine[2] < SignalLine[2]) && (MACDLine[1] == SignalLine[1]); // 确定卖空条件 SellShortCondition = (MACDLine[2] > SignalLine[2]) && (MACDLine[1] == SignalLine[1]); // 做多操作 if (BuyCondition && MarketPosition == 0) { Buy(0, Close[1]); } // 多单平仓操作 if (MarketPosition == 1 && Low < MAValue) { Sell(0, Open); } // 卖空操作 if (SellShortCondition && MarketPosition == 0) { SellShort(0, Close[1]); } // 空单平仓操作 if (MarketPosition == -1 && High > MAValue) { BuyToCover(0, Open); } }

各位老师,为什么我用实盘登录后启动策略交易后,马上就显示有盈利和持仓,这肯定是模拟账户的。但是我没有登录模拟账户啊?
代码逻辑看似没有问题,但是没有开仓执行,怎么查找问题
求助 编译没有错误但是代码没有执行sell
请问下,我这个模拟盘的账户透视里真实成交价位是6682,但是我点开托管的交易单元,点测试报告的成交记录时,成交价格确实6840,为什么会相差这么大?
老师请问slope这个函数应该怎么用啊?我编译就显示变量没有定义,谢谢。
账号透视里面的交易记录和回测报告交易记录有部分对不上,帮忙看看。
A函数和回测函数
模拟账号的交易记录那里看
策略可以运行,但是没有回测数据
为什么编译代码,提示我的OnInit()函数和bar()函数,缺少RETURN语句呢?这个OnInit()函数可以不需要返回值吧

另外说一下,编译只是说语法没问题,不代表逻辑没问题。

就比如我说“地球上看,太阳从西边升起。”这句话没有任何语法问题,很明显你能看懂它什么意思。但是你也一眼就能看出这句话逻辑是错的,按常识太阳不可能从西边升起。

兄弟 你是一点也不考虑阅读者的眼睛呀

密密麻麻一团..........

BuyCondition = (MACDLine[2] < SignalLine[2]) && (MACDLine[1] == SignalLine[1])

你分别把(MACDLine[2] < SignalLine[2]) 和(MACDLine[1] == SignalLine[1]) 用plotbool输出一下

估计一个都为true的一个都没有

*一个同时为true的都没有

不好意思。。代码复制过来就这样了

重新发一下代码吧,发帖的时候有一个代码模式,代码发到代码区里

Params
    Numeric FastMA(12);       //macd短周期值
    Numeric SlowMA(26);       //macd长周期值
    Numeric AvgMA(9);         //MACD慢线周期值
    Numeric MAperiod(11);     //11日均线周期值
Vars
    Series<Numeric> MACDLine(0); 
    Series<Numeric> SignalLine(0); 
    Series<Numeric> MAValue(0);
    Bool BuyCondition(False);
    Bool SellShortCondition(False);
Events
    OnBar(ArrayRef<Integer> indexs)
    {
        // 计算MACD值
        MACDLine = XAverage(Close, FastMA) - XAverage(Close, SlowMA);
        // 计算11日均线
        MAValue = XAverage(Close, MAperiod);

        // 确定做多条件
        BuyCondition = (MACDLine[2] < 0) && (MACDLine[1] >= 0);
        // 确定卖空条件
        SellShortCondition = (MACDLine[2] > 0) && (MACDLine[1] <= 0);

        // 做多操作
        if (BuyCondition && MarketPosition == 0)
        {
            Buy(0, Close[1]);
        }
        // 多单平仓操作
        if (MarketPosition == 1 && Low < MAValue)
        {
            Sell(0, Open);
        }
        // 卖空操作
        if (SellShortCondition && MarketPosition == 0)
        {
            SellShort(0, Close[1]);
        }
        // 空单平仓操作
        if (MarketPosition == -1 && High > MAValue)
        {
            BuyToCover(0, Open);
        }
    }


已发,麻烦看一下

这图上都是信号,怎么会回测没交易

Params
	Numeric FastMA(4);		//macd短周期值
	Numeric SlowMA(10);		//macd长周期值
	Numeric AvgMA(16);		//MACD慢线周期值
	Numeric MAperiod(11);	//11日均线周期值
Vars
	Series<Numeric> MACDLine(0); 
	Series<Numeric> SignalLine(0); 
	Series<Numeric> MAValue(0);
	Bool BuyCondition(False);
	Bool SellShortCondition(False);
Events
	OnBar(ArrayRef<Integer> indexs)
	{
		// 计算MACD快线(diff线)
		MACDLine = XAverage(Close, FastMA) - XAverage(Close, SlowMA);
		// 计算MACD慢线(dea线)
		SignalLine = XAverage(MACDLine, AvgMA);
		// 计算11日均线
		MAValue = XAverage(Close, MAperiod);

		// 确定做多条件
		BuyCondition = (MACDLine[2] < SignalLine[2]) && (MACDLine[1] == SignalLine[1]);
		// 确定卖空条件
		SellShortCondition = (MACDLine[2] > SignalLine[2]) && (MACDLine[1] == SignalLine[1]);

		// 做多操作
		if (BuyCondition && MarketPosition == 0)
		{
			Buy(0, Close[1]);
		}
		// 多单平仓操作
		if (MarketPosition == 1 && Low < MAValue)
		{
			Sell(0, Open);
		}
		// 卖空操作
		if (SellShortCondition && MarketPosition == 0)
		{
			SellShort(0, Close[1]);
		}
		// 空单平仓操作
		if (MarketPosition == -1 && High > MAValue)
		{
			BuyToCover(0, Open);
		}
	}

发错了,应该是这个,你看看能运行吗

核心就是这段判断

MACDLine[1] == SignalLine[1]

没有一根k线上能满足这个判断的,当然没信号了

为什么不能满足啊,我看macd值不是会为0吗,然后dill线和dea线数值也会一样啊