版本:MT4 ver. 1.16[color=rgba(0, 0, 0, 0.9)]
LRD指标使用说明 指标概述LRD 是一款基于双线性回归线的趋势分析指标,通过计算价格走势的角度变化,提供趋势方向、强度及转折信号的视觉化提示。
其核心功能包括: • 双线性回归线:分别捕捉长/短期趋势。 • 角度圆盘:将价格波动映射为0-360度,直观显示趋势阶段。 • 动态颜色箭头:指示趋势强弱及反转信号。 • 多级警报:通过弹窗、声音、邮件通知趋势变化。 安装与加载- 将.ex4文件复制至MT4的Indicators文件夹。
- 重启MT4,在导航栏双击指标名称或拖拽至图表。
参数设置
界面解析线性回归线: • Line1(长周期):红色线,反映主要趋势。 • Line2(短周期):蓝色线,捕捉短期波动。 • 线色变化:上涨为蓝,下跌为红。 角度圆盘: • 位置:图表右上角。 • 数值范围:0°(顶部)至360°,映射价格高低区间。 • 颜色规则: ◦ 270°-315°:强熊市(红底)。 ◦ 315°-360°:熊市减弱(黄底)。 ◦ 0°-45°:牛市增强(蓝底)。 ◦ 45°-90°:强牛市(蓝底)。 趋势箭头: • 向上箭头(▲):绿色表示趋势强化,黄色提示反转风险。 • 向下箭头(▼):红色表示趋势强化,橙色提示反转可能。 斐波那契水平线: • 显示关键价格位(83.8%、61.8%、50%、38.2%、16.2%),辅助判断支撑阻力。
交易信号趋势方向: • Line1与Line2交叉:长周期线上穿短周期线可能预示趋势反转。 • 角度区间: ◦ 270°-360°:下跌趋势,靠近270°为加速。 ◦ 0°-90°:上涨趋势,靠近90°为加速。 反转信号: • 箭头颜色切换:如红色箭头变黄,警惕熊市反转。 • 角度跨越关键位:如从315°进入0°,可能形成底背离。 警报触发: • 强趋势警报:如“Strong Bearish/Bulish”提示顺势机会。 • 反转警报:如“Bearish Reversal”提示逆势风险。
使用建议参数优化: • 趋势跟踪:增大barsCountLine1(如50)过滤噪音。 • 短线交易:减小barsCountLine2(如3)捕捉快速波动。 组合策略: • 搭配RSI/MACD验证超买超卖。 • 结合K线形态(如Pin Bar)提高信号准确性。 风险管理: • 在警报触发后,等待价格突破斐波那契水平再入场。 • 设置止损于趋势线或斐波那契外侧。
注意事项• 在震荡行情中可能出现频繁假信号,建议避开窄幅波动时段。 • 邮件警报需提前配置MT4邮箱设置。 • 历史回测建议调整参数以适应不同品种特性。
通过合理配置LRD,交易者可高效识别趋势阶段,抓住关键转折点,结合自身策略实现稳定盈利。 部分代码展示: /+------------------------------------------------------------------+//| LRD.mq4 |//| Copyright © 2009-2024, www.QChaos.com |//| https://www.qchaos.com/ |//+------------------------------------------------------------------+#property description "MetaTrader 4外汇指标,带角度和趋势警报的双线性回归线"//--/* Update_01 (06/04/2017): 修复趋势线不更新的BUG*///--#property indicator_chart_window // 指标显示在图表窗口#property indicator_buffers 4 // 使用4个缓冲区
//-- 线性度数基准线选择枚举enum SetDegree { Line2, // 使用第二条线(短期)作为角度计算基准 Line1 // 使用第一条线(长期)作为角度计算基准 };
//--- 输入参数input SetDegree degress = Line2; // 设置线性度数基准线(Line2=短期/Line1=长期)input int barsCountLine1 = 35; // 线性回归1计算周期(长周期参数)input int barsCountLine2 = 5; // 线性回归2计算周期(短周期参数)input color LRLineColor1 = clrRed; // 线性回归线1颜色(默认红色)input color LRLineColor2 = clrBlue; // 线性回归线2颜色(默认蓝色)input color RoundedColor = clrAqua; // 角度圆盘底色(默认水色)input color UpsColor = clrAqua; // 上涨箭头颜色(默认水色)input color DnsColor = clrOrangeRed; // 下跌箭头颜色(默认橙红色)input color PriceColor = clrSnow; // 右侧价格标签颜色(默认雪白色)input ENUM_LINE_STYLE LRLineStyle = STYLE_SOLID; // 回归线样式(默认实线)input int LRLineWidth = 2; // 回归线宽度(默认2像素)
//-- 警报设置input bool MsgAlerts = true; // 启用弹窗警报input bool SoundAlerts = true; // 启用声音警报input bool eMailAlerts = false; // 启用邮件警报input string SoundAlertFile = "alert.wav"; // 警报声音文件路径
//--- 缓冲区double DegreesUp[]; // 上涨角度数据存储数组double DegreesDn[]; // 下跌角度数据存储数组double LRBuffers1[]; // 线性回归线1数据缓冲区double LRBuffers2[]; // 线性回归线2数据缓冲区
//-- 图形界面坐标参数int corner=1; // 标签显示角落(1=右上角)int dist_x=144; // 圆盘X轴偏移量int dist_xt=104; // 文本X轴偏移量int dist_y=80; // Y轴基准偏移量
//-- 警报状态变量int cmal,xmal; // 分钟数缓存(用于警报频率控制)int posalert; // 当前警报位置代码int prevalert; // 前次警报位置代码int bar_count; // 最大计算柱数
//-- 颜色配置color stgBull=clrBlue; // 强牛市颜色color stsBull=clrAqua; // 标准牛市颜色color stsBear=clrYellow; // 标准熊市颜色color stgBear=clrRed; // 强熊市颜色color txtrbl=clrWhite; // 白色文本color txtblk=clrBlack; // 黑色文本color rndclr; // 动态圆盘颜色color arrclr; // 动态箭头颜色color txtclr; // 动态文本颜色
//-- 图表对象long Chart_Id; // 当前图表ID
//-- 文本内容string name; // 指标名称缓存string dtext; // 角度文本显示内容string Albase,AlSubj,AlMsg; // 警报消息组成要素//---------////+------------------------------------------------------------------+//| Custom indicator initialization function |//+------------------------------------------------------------------+int OnInit(void) {//--- indicator buffers mapping//--- Chart_Id=ChartID(); bar_count=120; IndicatorShortName("LRD ("+_Symbol+")"); name="LR Degrees"; IndicatorDigits(_Digits);//--- indicator buffers mapping IndicatorBuffers(4); //--- SetIndexBuffer(0,DegreesUp); SetIndexBuffer(1,DegreesDn); SetIndexBuffer(2,LRBuffers1); SetIndexBuffer(3,LRBuffers2);//--- indicator lines SetIndexStyle(0,DRAW_NONE); SetIndexStyle(1,DRAW_NONE); SetIndexStyle(2,DRAW_NONE); SetIndexStyle(3,DRAW_NONE);//--- indicator labels SetIndexLabel(0,"UpDegrees"); SetIndexLabel(1,"DnDegrees"); SetIndexLabel(2,"LR_Line1"); SetIndexLabel(3,"LR_Line2"); //-- SetIndexEmptyValue(0,0.0); SetIndexEmptyValue(1,0.0); //---//--- initialization done return(INIT_SUCCEEDED); }//---------////+------------------------------------------------------------------+//| Custom indicator deinitialization function |//+------------------------------------------------------------------+void OnDeinit(const int reason) {//---- //-- ObjectsDeleteAll(); GlobalVariablesDeleteAll();//---- return; }//---------// |