该策略利用T3均线及其通道来识别趋势方向,在价格突破通道时产生交易信号。
具体交易逻辑:
计算一条T3均线,表示中线
计算均线的通道范围,上轨为均线加范围,下轨为均线减范围
当价格上穿上轨时,做多
当价格下穿下轨时,做空
背景色变化代表趋势转折,辅助判断
T3均线是一种对延迟较小的均线,通道突破时反应迅速,有利于捕捉转折。该策略还利用背景色辅助判断长期趋势,综合多种因素确定交易时机。
T3均线延迟较小,反应灵敏
通道突破发出明确的交易信号
结合背景色判断,避免错 trades
需反复测试确定合适的参数
突破交易容易被套,需要谨慎
信号频繁,可适当加大突破幅度
该策略利用T3均线的灵敏性,在通道突破点位进行交易。辅以背景色判断长线趋势。通过参数优化,可在效率和稳定性之间取得平衡。但需注意防止过度交易。
[trans]
/*backtest
start: 2022-09-07 00:00:00
end: 2023-04-15 00:00:00
period: 4d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Trader_7ye
//@version=4
strategy(title="T3MA_KC_7ye Strategy", shorttitle="T3MA_KC_7ye Strategy",max_bars_back=500,overlay=true,default_qty_type=strategy.percent_of_equity,default_qty_value=100,initial_capital=5000,currency=currency.USD)
t3(src,len)=>
xe1 = ema(src, len)
xe2 = ema(xe1, len)
xe3 = ema(xe2, len)
xe4 = ema(xe3, len)
xe5 = ema(xe4, len)
xe6 = ema(xe5, len)
b = 0.7
c1 = -b*b*b
c2 = 3*b*b+3*b*b*b
c3 = -6*b*b-3*b-3*b*b*b
c4 = 1+3*b+b*b*b+3*b*b
c1 * xe6 + c2 * xe5 + c3 * xe4 + c4 * xe3
Length = input(title="DTMA Lenth", type=input.integer, defval=24, minval=1)
xPrice = input(title="DTMA Source", type=input.source, defval=close)
T3ma=t3(xPrice,Length)
upCol = T3ma > T3ma[1]
downCol = T3ma < T3ma[1]
range= high - low
rangema=t3(range,Length)
upper = T3ma + rangema
lower = T3ma - rangema
myColor = upCol ? color.lime : downCol ? color.red : na
plot(T3ma, color=myColor, title="T3 Slow")
c = color.blue
u = plot(upper, color=#0094FF, title="Upper")
l = plot(lower, color=#0094FF, title="Lower")
fill(u, l, color=#0094FF, transp=95, title="Background")
buySignal = upCol and ohlc4>upper
sellSignal= downCol and ohlc4<lower
//=======输出=======
//多空颜色判断
direction=0
direction:=buySignal?1:sellSignal?-1:direction[1]
macolor=direction==1?color.green:color.red
//多信号处理为一个信号
alertlong = direction!=direction[1] and direction== 1
alertshort= direction!=direction[1] and direction==-1
bgcolor(alertshort ? color.red : alertlong?color.lime:na, transp=20)
if (alertlong)
strategy.entry("Long", strategy.long)
if (alertshort)
strategy.entry("Short",strategy.short)