この戦略は,移動平均値のトレンド判断とボリンジャーバンドのオーバーバイト/オーバーセール判断を完全に利用する.T3移動平均値の平滑化により,トレンド逆転をタイミングで特定し,市場に参入することができます.振動ゾーンでは,ボリンジャーバンドを使用して反トレンド取引のためのオーバーバイト/オーバーセールエリアを特定します.したがって,超短期取引を実現します.
この戦略は,主にトレンドを特定し,取引信号を生成するために3つの移動平均を使用する.第一はT3移動平均で,指数的なスムージングを通じて価格変動をフィルタリングし,トレンド方向を判断することができます.第二は中期移動平均で,ここで20期SMAを使用して中期トレンドを決定します.最後にそれぞれ50期および200期T3移動平均である.速い線がスローラインよりも大きいとき,それは上向きの傾向を示し,そうでなければ下向きの傾向を示します.
取引信号は,中期SMAが中期T3上向きを上向きのトレンドと組み合わせて横切ったときに生成される.中期SMAが中期T3下向きを下向きのトレンドと組み合わせて下向きを下向きに横切ったとき,ショートに行く.また,ボリンジャー帯は利益を得るために使用され,ストップ損失を発生させる.価格が上部帯を突破した場合,利益を得ることを検討する.価格が下部帯を突破した場合,ストップ損失を考慮する.
具体的には,ロング条件は,中間SMAが中間T3を上向きに横切り,高速MAは遅いMAより大きい.価格が上部ボリンジャーバンドを突破したり,中間SMAがT3を下向きに突破したりした場合,利益を取ることを検討する.ショート条件は,中間SMAが中間T3を下向きに突破したり,高速MAは遅いMAよりも小さい.価格が下部ボリンジャーバンドを突破したり,中間SMAがT3上向きに突破したりすると,ストップ損失を検討する.
改善:
概要すると,この戦略は,トレンドを決定するためにシスタマティックに移動平均値を使用し,ボリンジャーバンドでオーバーバイト/オーバーセールレベルを特定します.トレンドの逆転時にタイミングで市場に参入することができ,リスクを効果的に制御します.しかし,パラメータの調整と最適化は,戦略が本当にうまく機能するために重要です.トレンド強度,波動性,ストップロスの追跡とさらに組み合わせることで,戦略がより堅牢でスマートになります.
/*backtest start: 2023-10-25 00:00:00 end: 2023-11-01 00:00:00 period: 10m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy(shorttitle="BB T3 Strategy", title="BB T3 Strategy", overlay=true) //T3 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 t3(len) => c1 * ema(ema(ema(ema(ema(ema(close, len), len), len), len), len), len) + c2 * ema(ema(ema(ema(ema(close, len), len), len), len), len) + c3 * ema(ema(ema(ema(close, len), len), len), len) + c4 * ema(ema(ema(close, len), len), len) //T3 end length = input(20, minval=1) mult = input(2.5, minval=0.001, maxval=50, title="StdDev") basis = t3(length) basisDev = t3(length/10) dev = mult * stdev(basisDev,length) upper = basis + dev lower = basis - dev offset = input(0, "Offset", type = input.integer, minval = -500, maxval = 500) plot(basis, "Basis", color=#872323, offset = offset) p1 = plot(upper, "Upper", color=color.teal, offset = offset) p2 = plot(lower, "Lower", color=color.teal, offset = offset) fill(p1, p2, title = "Background", color=#198787, transp=95) stoploss = input(true, "Stop Loss") basisSma = sma(close, length) p3 = plot(basisSma, color=color.blue, title="MA", offset=offset) fastT3 = t3(50) slowT3 = t3(200) crossUp = crossover(basisSma, basis) crossDown = crossunder(basisSma, basis) bollBounce = crossover(close, upper) bollReject = crossunder(close, lower) underBasis = crossunder(close, basis) overBasis = crossover(close, basis) trendUp = fastT3 > slowT3 trendDown = fastT3 < slowT3 strategy.entry("long", strategy.long, when=(trendUp and crossUp), stop=(stoploss ? high+syminfo.mintick : na)) strategy.close("long", when=(bollBounce or crossDown or underBasis)) strategy.entry("short", strategy.short, when=(trendDown and crossDown), stop=(stoploss ? low-syminfo.mintick : na)) strategy.close("short", when=(bollReject or crossUp or overBasis))