RSI+MACD共振策略:双指标确认买入信号 代码介绍 以下代码由今日美股网(www.TodayUSStock.com)代码学院提供,RSI和MACD共振策略通过结合相对强弱指数(RSI)和移动平均汇聚背离指标(MACD)来确认买入信号。RSI用于判断过买或过卖状态,MACD则用于确认趋势和动量。当这两个指标同时指示买入时,信号通常被认为更加可靠。 代码及加载方法 同花顺 // 定义RSI参数
RSI_PERIOD:=14; // RSI周期
RSI_BUY:=30; // RSI买入阈值
// 计算RSI
RSI:=RSI(CLOSE,RSI_PERIOD);
// 定义MACD参数
MACD_FAST:=12; // MACD快线周期
MACD_SLOW:=26; // MACD慢线周期
MACD_SIGNAL:=9; // MACD信号线周期
// 计算MACD
MACD:=MACD(CLOSE,MACD_FAST,MACD_SLOW,MACD_SIGNAL);
MACD_SIGNAL:=MA(MACD,MACD_SIGNAL);
// 判断RSI和MACD共振买入信号
BUY_SIGNAL:=RSI 加载方法: 将代码复制粘贴到同花顺的"选股公式编辑器"中,命名为"RSI+MACD共振选股",然后保存并运行。 东方财富 // 定义RSI参数
RSI_PERIOD:=14; // RSI周期
RSI_BUY:=30; // RSI买入阈值
// 计算RSI
RSI:=RSI(CLOSE,RSI_PERIOD);
// 定义MACD参数
MACD_FAST:=12; // MACD快线周期
MACD_SLOW:=26; // MACD慢线周期
MACD_SIGNAL:=9; // MACD信号线周期
// 计算MACD
MACD:=MACD(CLOSE,MACD_FAST,MACD_SLOW,MACD_SIGNAL);
MACD_SIGNAL:=MA(MACD,MACD_SIGNAL);
// 判断RSI和MACD共振买入信号
BUY_SIGNAL:=RSI 加载方法: 复制代码到东方财富通"自定义指标"编辑器中,保存并应用到选股条件中。 通达信 // 定义RSI参数
RSI_PERIOD:=14; // RSI周期
RSI_BUY:=30; // RSI买入阈值
// 计算RSI
RSI:=RSI(CLOSE,RSI_PERIOD);
// 定义MACD参数
MACD_FAST:=12; // MACD快线周期
MACD_SLOW:=26; // MACD慢线周期
MACD_SIGNAL:=9; // MACD信号线周期
// 计算MACD
MACD:=MACD(CLOSE,MACD_FAST,MACD_SLOW,MACD_SIGNAL);
MACD_SIGNAL:=MA(MACD,MACD_SIGNAL);
// 判断RSI和MACD共振买入信号
BUY_SIGNAL:=RSI 加载方法: 在通达信软件中,进入"公式管理器",选择"新建公式",粘贴代码后保存并使用。 大智慧 // 定义RSI参数
RSI_PERIOD:=14; // RSI周期
RSI_BUY:=30; // RSI买入阈值
// 计算RSI
RSI:=RSI(CLOSE,RSI_PERIOD);
// 定义MACD参数
MACD_FAST:=12; // MACD快线周期
MACD_SLOW:=26; // MACD慢线周期
MACD_SIGNAL:=9; // MACD信号线周期
// 计算MACD
MACD:=MACD(CLOSE,MACD_FAST,MACD_SLOW,MACD_SIGNAL);
MACD_SIGNAL:=MA(MACD,MACD_SIGNAL);
// 判断RSI和MACD共振买入信号
BUY_SIGNAL:=RSI 加载方法: 进入大智慧的"指标管理",创建新指标,粘贴代码后保存使用。 MetaStock // 定义RSI参数
RSI_PERIOD:=14; // RSI周期
RSI_BUY:=30; // RSI买入阈值
// 计算RSI
RSI:=RSI(CLOSE,RSI_PERIOD);
// 定义MACD参数
MACD_FAST:=12; // MACD快线周期
MACD_SLOW:=26; // MACD慢线周期
MACD_SIGNAL:=9; // MACD信号线周期
// 计算MACD
MACD:=MACD(CLOSE,MACD_FAST,MACD_SLOW);
MACD_SIGNAL:=Mov(MACD,MACD_SIGNAL,S);
// 判断RSI和MACD共振买入信号
BUY_SIGNAL:=RSI 加载方法: 在MetaStock中,进入"Indicator Builder",新建指标,输入代码并保存。 NinjaTrader using System;
using NinjaTrader.NinjaScript;
public class RSIMACDResonance : Indicator
{
protected override void OnStateChange()
{
if (State == State.SetDefaults)
{
Description = "RSI and MACD Resonance for Buy Signal";
Name = "RSIMACDResonance";
Calculate = Calculate.OnBarClose;
IsOverlay = false;
IsSuspendedWhileInactive = true;
}
}
protected override void OnBarUpdate()
{
int rsiPeriod = 14;
double rsiBuy = 30;
int macdFast = 12, macdSlow = 26, macdSignal = 9;
double rsi = RSI(CLOSE, rsiPeriod)[0];
double[] macd = MACD(CLOSE, macdFast, macdSlow, macdSignal);
double macdLine = macd[0];
double signalLine = macd[1];
bool buySignal = rsi < rsiBuy && CrossAbove(macdLine, signalLine, 1); // RSI低于30且MACD金叉
PlotNewValue("BuySignal", buySignal ? 1 : 0);
}
} 加载方法: 打开NinjaTrader,进入"NinjaScript Editor",新建Indicator,粘贴代码并编译。 eSignal // 定义RSI参数
RSI_PERIOD:=14; // RSI周期
RSI_BUY:=30; // RSI买入阈值
// 计算RSI
RSI:=RSI(CLOSE,RSI_PERIOD);
// 定义MACD参数
MACD_FAST:=12; // MACD快线周期
MACD_SLOW:=26; // MACD慢线周期
MACD_SIGNAL:=9; // MACD信号线周期
// 计算MACD
MACD:=MACD(CLOSE,MACD_FAST,MACD_SLOW,MACD_SIGNAL);
MACD_SIGNAL:=MA(MACD,MACD_SIGNAL);
// 判断RSI和MACD共振买入信号
BUY_SIGNAL:=RSI 加载方法: 在eSignal中,进入"Formula Editor",新建公式,粘贴代码并保存。 TradingView //@version=4
study("RSI and MACD Resonance", shorttitle="RSIMACD", overlay=false)
// 定义RSI参数
rsiPeriod = 14
rsiBuy = 30
// 计算RSI
rsi = rsi(close, rsiPeriod)
// 定义MACD参数
macdFast = 12
macdSlow = 26
macdSignal = 9
// 计算MACD
[macdLine, signalLine, _] = macd(close, macdFast, macdSlow, macdSignal)
// 判断RSI和MACD共振买入信号
buySignal = rsi < rsiBuy and crossover(macdLine, signalLine) // RSI低于30且MACD金叉
// 返回结果
plotshape(buySignal, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small) 加载方法: 在TradingView中,点击图表右上角的"Pine Editor",新建脚本,粘贴代码后保存并应用到图表。 MetaTrader 4/5 //+------------------------------------------------------------------+
//| RSI and MACD Resonance Indicator |
//+------------------------------------------------------------------+
#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 Lime
double ExtMapBuffer[];
int rsiPeriod = 14;
double rsiBuy = 30;
int macdFast = 12, macdSlow = 26, macdSignal = 9;
int OnInit()
{
SetIndexStyle(0, DRAW_ARROW, 0, 1);
SetIndexArrow(0, 233);
SetIndexBuffer(0, ExtMapBuffer);
return(INIT_SUCCEEDED);
}
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 i, limit;
if(rates_total signalLine && macdLine[1] 加载方法: 在MetaTrader中,进入"MetaEditor",新建Expert Advisor或Indicator,粘贴代码,编译并加载到图表。 参数说明 参数 意义 RSI_PERIOD RSI的计算周期,通常为14天 RSI_BUY RSI低于该值时视为买入信号,通常设为30 MACD_FAST, MACD_SLOW, MACD_SIGNAL MACD指标的快线、慢线和信号线周期,通常为12、26、9 CROSS(MACD,MACD_SIGNAL) 判断MACD是否从下方穿过信号线(金叉) 针对不同产品推荐参数 产品类型 推荐参数 理由 股票 RSI(14), MACD(12,26,9), RSI_BUY(30) 标准设置,适用于股票市场的中期趋势判断 期货 RSI(7), MACD(6,13,4), RSI_BUY(25) 期货市场波动快,需更短周期捕捉信号 外汇 RSI(20), MACD(24,52,18), RSI_BUY(35) 外汇市场波动相对小,需长时间周期判断 加密货币 RSI(10), MACD(15,35,10), RSI_BUY(40) 加密货币市场波动大,调整参数以适应其特性 优点和缺点 优点 缺点 双指标确认,减少假信号,提高买入信号的可靠性 在高波动市场,可能错过一些快速的反弹机会 适用于多种市场和软件 需要对RSI和MACD的用法有深入理解 可用于不同时间框架的交易 在趋势极端时,RSI可能长时间停留在过买或过卖区间 使用建议 此策略在市场回调或震荡时尤为有效。建议结合价格行为和成交量分析来进一步确认信号的有效性。设置止损点以管理风险,避免在市场反转时遭受过大损失。定期调整参数以适应市场变化,并且在使用时考虑大盘走势和市场情绪。 X用户点评 "RSI和MACD共振策略确实能在市场回调时找到好的买入机会,不过要注意不要在趋势过强时盲目买入。" - @TechnicalTrader "这个策略在股票市场表现不错,特别是结合了基本面分析的使用效果更好。" - @FundamentalAnalyst "在期货市场用这个策略时,要快速行动,因为信号可能转瞬即逝。" - @FuturesExpert "外汇市场用这个策略要耐心,因为信号可能需要更长时间来确认。" - @ForexMaster "对于加密货币,这个策略可以用,但要注意市场的极端波动,信号容易失效。" - @CryptoTrader 来源:今日美股网lg...