设为首页 收藏本站 切换语言

【Supertrend 超级趋势指标】超级趋势指标基于ATR,这个指标适用于趋势跟踪系统,简单易用。

| 发表于 昨天 21:12 | 显示全部楼层 |复制链接
© 本贴为 yiyupapa 原创/首发,严禁抄袭!
image.png image.png
//+------------------------------------------------------------------+
//|                                                     SuperTrend.mq5|
//|                        Copyright 2023, MetaQuotes Software Corp.  |
//|                                                Developed by yiyupapa   |
//+------------------------------------------------------------------+
#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 Lime  // 上升趋势颜色
#property indicator_color2 Red   // 下降趋势颜色
#property indicator_width1 2
#property indicator_width2 2
#property indicator_label1 "Supertrend Up"
#property indicator_label2 "Supertrend Down"

// 输入参数
input int ATRPeriod = 10;     // ATR 计算周期
input double Multiplier = 3.0; // ATR 乘数

// 指标缓冲区
double ST_Up[], ST_Down[];
double ATR[];

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
   // 指定缓冲区
   SetIndexBuffer(0, ST_Up, INDICATOR_DATA);
   SetIndexBuffer(1, ST_Down, INDICATOR_DATA);

   IndicatorShortName("Supertrend ("+IntegerToString(ATRPeriod)+","+DoubleToString(Multiplier,1)+")");

   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
   int start = MathMax(ATRPeriod, prev_calculated);

   // 计算 ATR
   for (int i = start; i < rates_total; i++)
     {
      ATR = iATR(NULL, 0, ATRPeriod, i);
     }

   // 计算 Supertrend
   for (int i = start; i < rates_total; i++)
     {
      double HL2 = (high + low) / 2.0; // 价格的中值
      double UpperLevel = HL2 + Multiplier * ATR;
      double LowerLevel = HL2 - Multiplier * ATR;

      if (close[i - 1] > ST_Up[i - 1])
        {
         ST_Up = UpperLevel;
         ST_Down = EMPTY_VALUE; // 不绘制
        }
      else if (close[i - 1] < ST_Down[i - 1])
        {
         ST_Down = LowerLevel;
         ST_Up = EMPTY_VALUE; // 不绘制
        }
      else
        {
         ST_Up = ST_Up[i - 1];
         ST_Down = ST_Down[i - 1];
        }
     }
   return (rates_total);
  }
//+------------------------------------------------------------------+
举报

评论 使用道具

精彩评论5

shuiluo
DDD
| 发表于 昨天 21:20 | 显示全部楼层
什么啊这是
举报

点赞 评论 使用道具

yjfgebob
DD
| 发表于 23 小时前 | 显示全部楼层
乱七八糟看不清!
举报

点赞 评论 使用道具

huangjin888
DD
| 发表于 23 小时前 | 显示全部楼层
琳琅满目
举报

点赞 评论 使用道具

huangjin888
DD
| 发表于 23 小时前 | 显示全部楼层
密密麻麻,琳琅满目,根本看不清楚啊
举报

点赞 评论 使用道具

湘聚缘
DD
| 发表于 18 小时前 | 显示全部楼层
怎么加载进去
举报

点赞 评论 使用道具

发新帖
EA交易
您需要登录后才可以评论 登录 | 立即注册

简体中文
繁體中文
English(英语)
日本語(日语)
Deutsch(德语)
Русский язык(俄语)
بالعربية(阿拉伯语)
Türkçe(土耳其语)
Português(葡萄牙语)
ภาษาไทย(泰国语)
한어(朝鲜语/韩语)
Français(法语)