老师好,如开仓条件(其它开仓价格OK不会导致信号闪烁 都已价格回溯)加上+condition1(放量前3) and condition2(放量前3)
导致信号闪烁的原因会不会是ADX1:condition2= ADXValue > ADXValue[1]; ?? 因为成交量是个单向的大值 成交量不会缩回去
ADXValue(实时非回溯)会不会大于后来有小于ADXValue[1]
放量前3: condition1=(vol >= vol_up[1] || vol >= vol_up_second[1] || vol >= vol_up_third[1]);
ADX1:condition2= ADXValue > ADXValue[1];
-------------------------------------------------------------------------------------------
Params
//-------------------------------------------
Numeric DMI_N(14); //DMI的N值
Numeric DMI_M(30); //ADX均线周期 ,DMI的M值
//-------------------------------------------
Numeric vol_length(12); // 成交量高点周期,用于计算过去 20 个周期内的成交量高点
Vars
//-------------------------------------------
//DMI最终输出
Adx相关变量代码--省略
//------------------放量-----------------------
Plot pen_vol; // 放量 用于绘制成交量相关图形的绘图对象
Series<Numeric> vol_up;
Series<Numeric> vol_up_second;
Series<Numeric> vol_up_third;
Series<bool> condition1; // 开仓+放量
Series<bool> condition2; // 开仓+adx
Events
OnBar(ArrayRef<Integer> indexs)
{
//----------------------放量condition1---------------------
vol_up = highest(vol, vol_length);
vol_up_second = NthHigher(vol, vol_length, 2);
vol_up_third = NthHigher(vol, vol_length, 3);
condition1=(vol >= vol_up[1] || vol >= vol_up_second[1] || vol >= vol_up_third[1]);
if(condition1)
{
plotbool("放量前3",true,high+4);
}
//DMI指标计算, 最终将输出ADX指标
Adx相关变量代码--省略
//--------------------------condition2-----------------------------------//
ADXValue = oADX; //计算ADX均线
condition2= ADXValue > ADXValue[1]; // 条件中去除 and ADXValue > ADXValue[2]
if(condition2) { plotbool("ADX大于ADX[1]",false,low-4); }
vol >= vol_up[1]
也是有问题的,vol条件成立时,你并不知道价格该是多少
你觉得是adx,但是你又不发adx的算法过程,这怎么看呢😅
我觉得还是自己写日志吧,把每一tick的adx值都记下来,然后如果发生信号闪烁了就翻那个时刻的日志