- 显示:
- 16804
- 等级:
- 已发布:
- 2020.04.21 18:48
- 已更新:
- 2020.05.18 07:50
-
需要基于此代码的EA交易或指标吗?请在自由职业者服务中订购 进入自由职业者服务
由于最近波动剧烈,而且价格行进强大迅速,要找入场点不是很方便。这套指标由波动率计算,参考海龟交易系统,可以由指标做突破或者跟随,方便做中短线。
效果如图
原油1h:
原油day:
XAUUSD,1H:
XPTUSD,1H:
XAUAUD,day:
XAUEUR,day:一段时间震荡后短期波动和长期波动开始贴近,至少走了两者距离之差:
GBPUSD,1H:
GBPUSD,4h:
EURUSD,Week:
EURUSD,Day:
EURUSD,4H:
可以看出在趋势市中做回踩点加其他压力/支撑跟随入场,方便设置止损,极端行情表现不错。
最近的黄金4h,由第一波的下跌40美元开始不断震荡,波动范围收敛,在5月6号开始,PoiseFractal下方支撑开始起主导作用了:
在震荡市中做目标点出场,方便设置止盈,正向一般不适合震荡行情,震荡行情这指标线一般是拿来尝试去突破的。
Poise上传了两套参数,可以多周期参考,做日内或周、月级别的反转信号或突破信号。
第一个参数是波动率的倍数,第二参数是波动率周期,第三个是平滑周期。
如图:
这里主要依照价格(ENUM_APPLIED_PRICE)做突破结构,由波动率(ATR)定义范围,趋势形成逐步递增/递减。
主要代码如下:
//--- the main loop of calculations for(int i = pos; i < rates_total && !IsStopped(); i++)//Checking for stop flag { //--- calculate EMA on ATR array ExtRangeBuffer[i] = ExtATRBuffer[i] * Alpha * ExtFactorAtr + ExtRangeBuffer[i - 1] * (1 - Alpha); // ExponentialMAOnBuffer(rates_total,prev_calculated,InpPeriodEMA-1,InpPeriodEMA,Ema,EmaOfEma); if(ExtPoiseBuffer[i - 1] == price[i]) ExtPoiseBuffer[i] = ExtPoiseBuffer[i - 1]; else { if(price[i - 1] < ExtPoiseBuffer[i - 1] && price[i] < ExtPoiseBuffer[i - 1]) ExtPoiseBuffer[i] = MathMin(ExtPoiseBuffer[i - 1],price[i] + ExtRangeBuffer[i]); else { if(price[i - 1] > ExtPoiseBuffer[i - 1] && price[i] > ExtPoiseBuffer[i - 1]) ExtPoiseBuffer[i] = MathMax(ExtPoiseBuffer[i - 1],price[i] - ExtRangeBuffer[i]); else ExtPoiseBuffer[i] = price[i] > ExtPoiseBuffer[i - 1] ? price[i] - ExtRangeBuffer[i] : price[i] + ExtRangeBuffer[i]; } } //--- now we set line color for every bar if(price[i] < ExtPoiseBuffer[i] && ExtPoiseBuffer[i] <= ExtPoiseBuffer[i - 1]) ExtColorsBuffer[i] = 1.0; else if(price[i] > ExtPoiseBuffer[i] && ExtPoiseBuffer[i] >= ExtPoiseBuffer[i - 1]) ExtColorsBuffer[i] = 2.0; else ExtColorsBuffer[i] = 0.0; }
PoiseFractal 是用Fractals指标计算波动范围的,计算如下:
/--- filling out the array of True Range values for each period int up_size = CopyBuffer(ExtFractalHandle,0,0,to_copy,upper); int low_size = CopyBuffer(ExtFractalHandle,1,0,to_copy,lower); if(up_size <= 0 || low_size <= 0) { Print("Getting Fractal is failed! Error ",GetLastError()); return(0); } //--- calculate position //--- set first bar from what calculation will start int pos = prev_calculated - 1; //--- preliminary calculations if(pos < start) pos = start; for(int i = pos; i < rates_total && !IsStopped(); i++)//Checking for stop flag { //--- Preparing data double low_sum = 0.0,up_sum = 0.0; int a = 0,b = 0; for(int j = i; j >= 0 && !IsStopped(); j--) { if(upper[j] > 0 && upper[j] != EMPTY_VALUE) { up_sum += upper[j]; a++; } if(lower[j] > 0 && lower[j] != EMPTY_VALUE) { low_sum += lower[j]; b++; } if(a + b >= ExtPeriodSmooth && a*b>0) break; } ExtFractalBuffer[i] = (a > 0 && b > 0) ? MathAbs(up_sum / a - low_sum / b) : ExtFractalBuffer[i - 1]; .... }
这里的Smooth period 是Fractal指标计算出的高低点之和的个数,应该要大于2,Factor 是由波动范围的倍数,一般大于1.0:

在做EA账户风控时,有时候需要知道账户各个时间段的资金数据,本EA可以基于每个净值变动来记录,并画出图表K线或保存至Excel。

于主图显示,类似于期货日内均线,可以选择更多的结算周期

计算预期波的相位和

股票常用的BIAS指標做成的指標 用來判斷目前價格的乖離率 使用日線判斷會有比較好的效果