- 显示:
- 7851
- 等级:
- 已发布:
- 2020.04.03 09:06
- 已更新:
- 2020.04.03 09:51
-
需要基于此代码的EA交易或指标吗?请在自由职业者服务中订购 进入自由职业者服务
期货中的日内均价线很多投资者有用到,这里提供了外汇中不同结算周期的加权平均价,这指标可以捕捉到一些拐点、突破点。
这里的成交量由交易平台提供,这里定义上个周期的结算价为上个周期的最后一个加权平均价。
如下图,最近的原油日内均价线,以零时开始累计:
还有布油做对比:
下面是以一周为周期的布油加权平均价,以周一为起点:
然后是一月为周期的黄金加权平均价,以月初为起点:
输入的时候要注意主图周期应该要小于你所要设置的结算周期,第二个选择是以什么价格来计算。
代码部分,首先获取目标时间:
int count = -1; long bars = 0; if((bars = Bars(symbol,timeframe,start - PeriodSeconds(timeframe),(datetime)UINT_MAX))> 0) if((count = CopyTime(symbol,timeframe,0,(int)bars,times))== bars) return count; if((count = CopyTime(symbol,timeframe,start - PeriodSeconds(timeframe),(datetime)UINT_MAX,times))> 0) return count;
然后逐步累加成交量和价格成交量:
for(int i = 0; i <= copied; i++) { int shift = pos; for(; pos < rates_total && (pos - shift) <= ExtPeriodLimit && !_StopFlag; pos++) { double price=EMPTY_VALUE; _setPrice(Applied,price,pos); if(i < copied) { if(time[pos] >= _times[i]) break; } else shift = pos - Bars(_Symbol,_Period,_times[i - 1],time[pos]) + 1; //i==count ExtBarBuffer[pos] = pos - shift; //ExtBarBuffer[pos-1]+1 if(ExtBarBuffer[pos] > 0) { double amount = ExtPvolBuffer[pos - 1] * ExtVolumeSumBuffer[pos - 1] + price * tick_volume[pos]; ExtVolumeSumBuffer[pos] = ExtVolumeSumBuffer[pos - 1] + tick_volume[pos]; ExtPvolBuffer[pos] = (ExtVolumeSumBuffer[pos] > 0) ? amount / ExtVolumeSumBuffer[pos] : ExtPvolBuffer[pos - 1]; ExtPvolColors[pos] = (price < ExtPvolBuffer[pos] && ExtPvolBuffer[pos] <= ExtPvolBuffer[pos - 1]) ? 1 : (price > ExtPvolBuffer[pos] && ExtPvolBuffer[pos] >= ExtPvolBuffer[pos - 1]) ? 2 : 0; } else { ExtVolumeSumBuffer[pos] = (double)tick_volume[pos]; ExtPvolBuffer[pos] = price; ExtPvolColors[pos] = 0; } ExtSettleBuffer[pos] = (ExtBarBuffer[pos]>1) ? ExtSettleBuffer[pos-1]:(shift > 0)? ExtPvolBuffer[shift - 1] : price; } }

该指标可以获取两个不同货币对各个时期的K线价格,然后通过简单的加减乘除显示在副图上,用来分析当前平台上没有的自定义商品走势。

这个脚本是计算等价等量加仓步骤的,比如在当前原油价格低迷情况下,又在反复震荡,投资者又想抄底,可以通过这个脚本来计算需要间隔多少来实现逐步等量加仓。

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

对趋势行情由波动率寻找入场价与止损价