基于多时间框架移动平均线与RSI的趋势跟踪策略


创建日期: 2024-01-08 16:57:29 最后修改: 2024-01-08 16:57:29
复制: 0 点击次数: 305
1
关注
1102
关注者

基于多时间框架移动平均线与RSI的趋势跟踪策略

概述

本策略基于多时间框架移动平均线以识别趋势方向,并结合相对强度指数(RSI)来判断超买超卖情况,从而产生交易信号。当长线、中线、短线的快慢均线都处于同一方向时,认为趋势形成,此时再通过RSI判断是否超买超卖,并产生交易信号。此外,策略还采用追踪止损来控制风险。

策略原理

基本原理是通过快慢均线的黄金交叉和死亡交叉来判断趋势,当快线上穿慢线时为黄金交叉,表示牛市来临;当快线下穿慢线时为死亡交叉,表示熊市来临。本策略在不同的时间框架上使用该基本原理,判断长、中、短三个周期是否同向,如果都是多头市场或者空头市场就产生交易信号。此外,RSI指标判断是否处于超买或超卖状态,避免在市场转折点错过止损。追踪止损设置一定的后移点数,让盈利可以扩大,同时可以抵御部分回调,控制风险。

优势分析

  1. 使用多时间框架判断趋势,可以有效过滤短期市场噪音,识别中长线趋势。

  2. RSI指标结合判断超买超卖情况,避免在市场转折点后继续坚持原有方向,错过止损。

  3. 追踪止损同时考虑扩大盈利和控制风险,收益风险比高。

风险分析

  1. 多时间框架判断可能存在时间滞后,导致入场较晚,可能错过行情初期阶段。

  2. RSI指标仅判断超买超卖情况,如果行情出现断头反弹,无法很好判断市场转折点。

  3. 追踪止损后移点数设置不当,可能出现过于激进或过于保守,需要调整参数。

优化方向

  1. 可以考虑结合更多指标判断市场转折点,如布林带、KDJ等,使交易信号更加精确。

  2. 可以设置动态追踪止损,根据市场波动性和风险偏好来调整后移点数。

  3. 可以在更短周期时间框架中引入类似策略判断资金进出,优化资金使用效率。

总结

本策略总体而言优势大于劣势,对中长线趋势判断准确,收益风险比高,值得实盘验证与优化调整。作为一种趋势跟踪策略,它可以在震荡行情中识别主要趋势方向,高效跟踪中长线趋势。通过参数调整和指标优化,可以进一步提升策略的稳定性和获利能力。

策略源码
                
                    /*backtest
start: 2023-01-01 00:00:00
end: 2024-01-07 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
//Cryptocurrency Trading Tools by XMAXPRO
//ATA INDIKATORU
//Test 4.0v Tarih:23.02.2020
//

strategy("MTF+MA+RSI+TSL", overlay=false, shorttitle="ATA v4 Strategy")
src = input(title="kaynak", type=input.source, defval=close)
fast = input(title="hızlıbarlar", type=input.integer, defval=21)
slow = input(title="yavaşbarlar", type=input.integer, defval=34)

//MTF source
long = input(title="uzunvade", type=input.resolution, defval="240")
mid = input(title="ortavade", type=input.resolution, defval="60")
short = input(title="kısavade", type=input.resolution, defval="5")

//MTF Grafikleri
ln = security(syminfo.ticker, long, src)
md = security(syminfo.ticker, mid, src)
sh = security(syminfo.ticker, short, src)

//0
lnma = ema(ln, fast) - ema(ln, slow)
mdma = ema(sh, fast) - ema(md, slow)
shma = ema(sh, fast) - ema(sh, slow)

//Makeup
uzunrenk = lnma > 0 ? color.white : color.red
ortarenk = mdma > 0 ? color.white : color.red
kisarenk = shma > 0 ? color.white : color.red

l1 = 1
m1 = 2
s1 = 3

plot(l1, style=plot.style_line, color=uzunrenk, linewidth=25)
plot(m1, style=plot.style_line, color=ortarenk, linewidth=25)
plot(s1, style=plot.style_line, color=kisarenk, linewidth=25)

atarsi = rsi(close, 14)
rsiob = input(title="aşırıalım", type=input.integer, defval=60)
rsios = input(title="aşırısatış", type=input.integer, defval=25)

sell = atarsi > rsiob and lnma > 0 and mdma > 0 and shma > 0
buy = atarsi < rsios and lnma < 0 and mdma < 0 and shma < 0

barcolor(sell ? color.white : color.red)
barcolor(buy ? color.white : color.red)

//strateji
strategy.entry("long", strategy.long, comment = "BULL", when = sell)
strategy.entry("short", strategy.short, comment = "BEAR", when = buy)

//kompleks alarm
//alertcondition(sell, title = "ATA LONG SIGNAL", message = "btc/usd ata long sinyali")
//alertcondition(buy, title = "ATA SHORT SIGNAL", message = "btc/usd ata short sinyali")

//iz sürücü TSL
strategy.exit ("Bull TSL", "long", trail_points=close * 0.02 / syminfo.mintick, trail_offset=close * 0.02/syminfo.mintick)
strategy.exit ("Bear TSL", "short", trail_points=close * 0.02 / syminfo.mintick, trail_offset=close * 0.02/syminfo.mintick)
                
            
更多内容