首页 技术指标 帖子

免费Theil_Sen指标 - MetaTrader 4交易工具介绍

附件
30810.zip (8.56 KB, 下载 0次)

大家好!今天想跟大家分享一个非常实用的工具——Theil_Sen指标。这是一个帮助我们估算数据点所绘制的趋势线的一种工具。通过对数值序列进行回归分析,我们可以得到一条估算出的回归线。

在使用这个指标时,我们可以选择不同类型的数据集,例如简单移动平均、指数移动平均、收盘价、最高/最低价等。这些数据会自动从MetaTrader图表中收集,您只需选择想要收集的数据类型即可。而且,它支持多种货币的分析,非常方便。

iTSlope(asymbol,timeframe,regperiod,adataset,rmp,rtc,slope,line_nickname,enable_text,ashift);
//这是在你的EA中使用的主要函数。只需输入你的参数即可。
//手动交易者也可以直接使用此指标。

theil_sen_indicator

如往常一样,这个指标支持多种货币同时分析。我这里还包含了“BreakPoint”工具,虽然它并不一定是指标本身所需的。

接下来,让我们看看在横盘市场中趋势线的样子:

ranging market

ranging market with tendency

而在趋势市场中的趋势线则是这样的:

trending

以下是一个示范的专家顾问代码:

//+------------------------------------------------------------------+
//|                                                         demo.mq4 |
//|                         Copyright 2020, Everybody Software Corp. |
//|                                                         https://anywhere.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2020, Everybody Software Corp."
#property link      "https://anywhere.com"
#property version   "1.00"
#property strict
#include <TheilSen_Indicator.mqh>
#include <BreakPoint.mqh>//<--- 不必需
//+------------------------------------------------------------------+
//| 专家初始化函数                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
   return(INIT_SUCCEEDED);
  }
  
//+------------------------------------------------------------------+
//| 专家去初始化函数                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  { 
  }
  
//+------------------------------------------------------------------+
//| 专家价格变动函数                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   //---------这些变量最初是空的,但在下面使用iTSlop()后将包含数据。------//
   double slope=0;//回归线的斜率。
   
   ENUM_TIMEFRAMES timeframe=0;//这是货币对的时间框架。0表示当前图表时间框架。
   
   int 
   regperiod=20,//回归周期。你想对多少根K线进行回归。
   ashift=1;//你希望绘制回归线的K线偏移量。
   
   string 
   asymbol="",//这是你想进行计算的货币对。""表示当前货币对。
   adataset="ema_close",//你想要进行回归的数据类型。
   line_nickname="anything_goes_here",
   rmp,//计算出的"市场阶段",对市场的具体描述。
   rtc;//计算出的"市场倾向",对市场的总体描述。
   
   bool enable_text=true;//当设置为true时,当前图表上会显示文本数据。
     
   iTSlope(asymbol,timeframe,regperiod,adataset,rmp,rtc,slope,line_nickname,enable_text,ashift);//单一货币
   //if(rmp == "trending")BreakPoint("","",true,"rmp",rmp,"rtc",rtc,"asymbol",asymbol);
  }
//+------------------------------------------------------------------+

特别感谢whroeder和其他帮助澄清这个概念的朋友们。

相关帖子

评论 (0)