请 [注册] 或 [登录]  | 返回主站

量化交易吧 /  量化策略 帖子:3364705 新帖:26

30 个指标和震荡指标的对比分析

特朗普对头发表于:4 月 17 日 19:44回复(1)

简介

如今已经开发的大量指标和震荡指标,不可避免的产生了从其中选择最有效指标的问题。通常,新手交易者在面临大量的可用分析和预测工具时,首先在历史数据和模拟账户上进行测试。之后,对这个或那个指标在某种情况下的有效性和无用性得出一套结论。

但是,这种评估并非总是客观的,因为参数数量很多(交易品种、图表周期、波动性等),因此分析的信息量也很大。对某些指标和震荡指标的更可靠的结论,可以在对其进行对比分析后得出。

实际上,如果不能将它们结合价格图表同时考虑,不可能进行指标和震荡指标的对比分析。但是,即使添加十个不同的指标到图表,也会令其严重过载。得到的图形变得混乱,不适合分析。本文描述的 Expert Advisor 可以解决这个问题,更加方便的进行对比分析。



Expert Advisor

请注意,该 EA 并非用于实时交易,因此不包含资金管理程序块。交易块的执行非常简单。Expert Advisor 的主要任务是提供信号出现与否的信息,该信号来自跟价格图表有关的不同指标。

程序分析了以下指标和震荡指标:

  1. 加速/减速指标 - AC
  2. 累积/派发指标 - A/D
  3. 鳄鱼指标 & 分形指标
  4. 加多摆动指标
  5. 平均方向性运动指标 - ADX
  6. 平均真实波动范围指标 - ATR
  7. 动量震荡指标
  8. 熊力震荡指标
  9. 保力加通道技术指标
  10. 牛力振荡指标
  11. 顺势指标
  12. DeMarker 指标
  13. 包络线指标
  14. 强力指数指标
  15. 一目平衡表指标 (1)
  16. 一目平衡表指标 (2)
  17. 一目平衡表指标 (3)
  18. 资金流量指数指标 - MFI
  19. 移动平均线指标
  20. MACD (1)
  21. MACD (2)
  22. 振荡指标的移动平均线 (Гистограмма MACD) (1)
  23. 振荡指标的移动平均线 (Гистограмма MACD) (2)
  24. 抛物线转向指标
  25. RSI 指标
  26. RVI 指标
  27. 标准离差指标
  28. 随机震荡指标 (1)
  29. 随机震荡指标 (2)
  30. 威廉指标

为了实现该任务,在图表上绘制了一个包含“-1”、“0”和“1”的数字矩阵。每个矩阵行属于某个指标或震荡指标。矩阵列在每个时刻形成(根据选定的图表周期)。矩阵行中出现“-1”表示某个指标产生卖出信号,出现“1”表示买入信号,“0”表示没有任何信号。图 1 展示了程序运行结果。

图 2 展示了基于矩阵的 RVI 指标运行分析。在第 26 行中(包含关于该指标的数据),当主线移动到信号线之上时记录“1”(指标建议买入),当信号线移动到主线之上时记录“-1”(卖出信号)。根据指标的特征,该行不包含“0”。

根据指标和震荡指标的特征,我们可以在矩阵中发现两种类型的指标:持续显著的指标,其相应的标记(在矩阵中的值)从来不等于零,和逐点显著的指标,可以接受零并且在一些特定的时间点发出信号(例如,抛物线转向指标)。请见图 3。

建议分析获得的信息,然后根据以下方式形成指标组。首先选择具有趋势的图表。然后指定可能交易的周期。在选定的趋势或趋势形成处,其开始可以是横盘阶段,周期结束时是交易仍然获利的最后时点。这样,未将先行和延迟指标信号纳入考虑。图 4 中用绿色线指示这种周期。然后分析该周期内的指标(震荡指标)的信息。正确显示趋势的指标保留,其他则筛选掉。然后可以在其他时间间隔上通过类比分析对指标组进行扩充或限制,形成最终的指标组。

程序提供了对形成的指标组的测试。为此,在策略处理程序块相应代码行中列举条件(指标显示),然后据此做出最终的卖(或买)决策。

对价格行为和每个指标(震荡指标)产生的信号进行综合分析,提供了选择其中最有效指标的可能性,从而形成进一步的指标组。



算法

在第一阶段,为每个指标(震荡指标)定义“标记”的值(-1、0 或 1)。假设某指标(例如,MACD)产生不同方式的信号(收敛与发散、交叉零线等),程序代码包含了对其定义原则的描述。例如,威廉震荡指标的分析如下:

//30. Williams Percent Range
//Buy: crossing -80 upwards
//Sell: crossing -20 downwards
if (iWPR(NULL,piwpr,piwprbar,1)<-80&&iWPR(NULL,piwpr,piwprbar,0)>=-80)
{f30=1;}
if (iWPR(NULL,piwpr,piwprbar,1)>-20&&iWPR(NULL,piwpr,piwprbar,0)<=-20)
{f30=-1;}

之后,‘文本’类型的独特对象从获得的标记数字值形成(以免在当前时间值下对象名称重复)并显示:

timeident=TimeCurrent(); //Time to form the unique object name
for (i=0;i<=29;i++) //Loop for displaying values
 
//Forming unique object names
{ident=DoubleToStr(30-i,0)+"   "+DoubleToStr(timeident,0); 
 
//Creating objects, indicating their location
ObjectCreate(ident,OBJ_TEXT,0,timeident,WindowPriceMin()+Point*5*(i+1));
 
info=DoubleToStr(f[30-i],0); //Forming a text line to be displayed
ObjectSetText(ident,info,6,"Arial", Black);} //Describing the format of displaying and displaying

为了检查形成的指标组,程序包含了“处理策略的程序块和放置主标记”。该程序块包含 EA 必须买入(如果主标记等于 1)和卖出(如果主标记等于 -1)的条件。如果未满足描述的条件,主标记继续为零,不执行交易。EA 还包含平仓的程序块(有注释)。

 
if(f8==1&&f21==1) //Set of conditions, providing which Buy is executed
flag=1;
if(f8==-1&&f21==-1) //Set of conditions, providing which Sell is executed
flag=-1;

每个指标(震荡指标)的参数都以变量的形式描述,可以令其自动优化(初始参数是那些普遍接受的参数)。



总结

如上所述,提供的 Expert Advisor 并非一个现成的自动交易系统。其主要任务是进行指标和震荡指标的对比分析,以形成指标组。该 EA 展示指标产生的信号而不会让交易者的电脑过载,令分析极为方便。

EA 的灵活性如下:矩阵中可以加入一组新指标,形成的指标组可以在历史数据上进行测试。


全部回复

0/140

量化课程

    移动端课程