この戦略は,トレンド決定と追跡のためにATRとT3移動平均を組み合わせます.ATRは全体的なトレンド方向を判断するための価格チャネルを形成します.T3移動平均はエントリー信号とストップ損失出口ポイントを提供します.この戦略は安定した利益を求めるトレンドフォロワーに適しています.
ATRは価格チャネルを形成し,チャネル方向は主要なトレンドを決定します.
T3 移動平均は,特定のエントリータイミングを決定するのに役立ちます.
価格が下帯を下回るとストップ・ロスの出口が始まる.上帯を下回ると利益が上がる.
長期取引のみまたは双方向取引のためのオプション
パラメータの最適化とインディケーターの性質を組み合わせて最適な設定を見つけます
ATRチャネルは 明確なトレンドの識別と方向性を示します
調整可能なT3パラメータで,異なるレベルでの傾向を把握できます.
一貫したストップ・ロストと 利益の引き上げルールは 任意の出口を避ける
低取引頻度は長期保有戦略に適しています
インディケーターの偏差が間違った取引を引き起こす可能性があります
個々の株価変動パターンを考慮しないことは 過適性になる危険性があります
取引頻度が低い場合,機会が失われ,利益の可能性が限られている.
ポジションを重く持っていれば 日末のリスクが上がります
取引の有効性を確保するために他の指標を追加します.
異なる製品のパラメータ調整により適応性が向上します
ポジションのサイズを最適化して 頻度とリスクをバランスさせる
ダイナミックなストップ・ロストと 利益の獲得を考慮して 利益の空間を拡大します
戦略レベルのフィルターを追加して 安定性を向上させる
この戦略は,ATRとT3移動平均を統合し,単純で効果的なトレンド追跡を可能にします.しかし,指標論理とパラメータ最適化におけるさらなる改善により,エラーが減少し,より実用化できます.
/*backtest start: 2023-09-09 00:00:00 end: 2023-09-16 00:00:00 period: 5m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 //Author - CryptoJoncis strategy("ATR and T3 strategy", shorttitle="AT3S_CryptoJoncis", overlay=true) shorting = input(false, title="shorts on?") precentage_diff = input(5,title="Precantage")/100 Lengthx = input(25, title="Lenght of T3") //For best results use 0.7 or 0.618 Vfactx = input(0.72, minval=0.01,step=0.01, title="Volume Factor of T3 with HA source") Source_of_T3_Normal = close Source_of_T3 = Source_of_T3_Normal FirstEMAx = ema(Source_of_T3, Lengthx) SecondEMAx = ema(FirstEMAx, Lengthx) ThirdEMAx = ema(SecondEMAx, Lengthx) FourthEMAx = ema(ThirdEMAx, Lengthx) FifthEMAx = ema(FourthEMAx, Lengthx) SixthEMAx = ema(FifthEMAx, Lengthx) //Doing all the calculations which are from c1x = -Vfactx*Vfactx*Vfactx c2x = 3*Vfactx*Vfactx + 3*Vfactx*Vfactx*Vfactx c3x = -6*Vfactx*Vfactx -3*Vfactx -3*Vfactx*Vfactx*Vfactx c4x = 1 + 3*Vfactx + Vfactx*Vfactx*Vfactx + 3*Vfactx*Vfactx //Assigning EMAS to T3 Moving average T3MAx = c1x * SixthEMAx + c2x * FifthEMAx + c3x * FourthEMAx + c4x * ThirdEMAx color_of_Tilson_Moving_Average = T3MAx > T3MAx[1] ? lime : red plot(T3MAx, title="Tilson Moving Average(ema)", color=color_of_Tilson_Moving_Average) t_up = T3MAx + (T3MAx * precentage_diff) t_dn = T3MAx - (T3MAx * precentage_diff) x=plot(t_up, color=color_of_Tilson_Moving_Average) z=plot(t_dn, color=color_of_Tilson_Moving_Average) fill(x,z, color= T3MAx[1] < T3MAx ? lime : gray) Factor=input(5, minval=1) Pd=input(5, minval=1) // Up=hl2-(Factor*atr(Pd)) Dn=hl2+(Factor*atr(Pd)) TrendUp=close[1]>TrendUp[1]? max(Up,TrendUp[1]) : Up TrendDown=close[1]<TrendDown[1]? min(Dn,TrendDown[1]) : Dn Trend = close > TrendDown[1] ? 1: close< TrendUp[1]? -1: nz(Trend[1],1) Tsl = Trend==1? TrendUp: TrendDown linecolor = Trend == 1 ? green : red // b=plot(Tsl, color = linecolor , style = line , linewidth = 2,title = "") Factor1=input(1, minval=1) Pd1=input(1, minval=1) // Up1=hl2-(Factor1*atr(Pd1)) Dn1=hl2+(Factor1*atr(Pd1)) TrendUp1=close[1]>TrendUp1[1]? max(Up1,TrendUp1[1]) : Up1 TrendDown1=close[1]<TrendDown1[1]? min(Dn1,TrendDown1[1]) : Dn1 Trend1 = close > TrendDown1[1] ? 1: close< TrendUp1[1]? -1: nz(Trend1[1],1) Tsl1 = Trend1==1? TrendUp1: TrendDown1 linecolor1 = Trend1 == 1 ? green : red // a=plot(Tsl1, color = linecolor1 , style = line , linewidth = 2,title = "") long = (close > Tsl and close > Tsl1 and close > T3MAx) short = (close < Tsl and close < Tsl1 and close < T3MAx) if(shorting==true) strategy.entry("MacdSE", strategy.short, comment="Open Short", when=short) strategy.entry("MacdLE", strategy.long, comment="Open Long", when=long) strategy.close("MacdLE", when=hl2 < t_dn) strategy.close("MacdSE", when=hl2 > t_up) if(shorting==false) strategy.entry("MacdLE", strategy.long, comment="Open Long", when=long) strategy.close("MacdLE", when=hl2 < t_dn) fill(a,b,color=linecolor)