TEMAダブル移動平均クロスオーバー戦略は,異なる期間の2つのトリプル指数関数移動平均 (TEMA) のクロスオーバーに基づいて取引信号を生成する定量的な取引戦略である.この戦略は,2つのTEMAラインの相対的なポジションを比較する.短期TEMAラインが長期TEMAラインの上を横切るとロングポジションを開く.短期TEMAラインが長期TEMAラインを下を横切るとショートポジションを開く.逆のクロスオーバー信号が発生するとポジションが閉鎖される.この戦略は,レンジング市場の短期トレンドを捕捉するのに適している.
TEMA 双動平均交差戦略の核心は,異なる期間の2つのTEMA線を構築することである.TEMAは指数動平均 (EMA) に比べて改善されたものである.EMAのEMAにEMAを適用することによって計算され,EMAと単純な動平均 (SMA) に比べて遅延が少なくなります.TEMAは価格動向により敏感であり,短期的なトレンドにより敏感です.
戦略は,短期と長期のTEMAラインのポジションを比較することによって取引信号を生成します.
異なる期間を持つ2つのTEMAラインのクロスオーバー信号を使用することで,変動市場における短期的な価格動向を把握できます.
TEMAダブル移動平均クロスオーバー戦略は,異なる期間の2つのTEMA指標のクロスオーバーシグナルを使用して短期的な価格動向を把握するシンプルで使いやすい定量的な取引戦略である.この戦略は明確な論理を持ち,範囲の市場で使用するのに適している.しかし,この戦略には頻繁な取引,偽信号,極端な市場リスクなどのリスクもあります. 戦略のパフォーマンスは,パラメータを最適化し,フィルター条件を追加し,ストップ損失を設定し,その強度と実用性を高めるために他の戦略と組み合わせることで改善することができます.
/*backtest start: 2023-05-28 00:00:00 end: 2024-06-02 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy('2 TEMA Cross Strategy', shorttitle='2 TEMA Cross Strat', overlay=true, initial_capital=25000, currency=currency.USD) //My backtesting showed best results on a 5 min chart //Create 2 TEMA Input and pre-populate len1 = input.int(9, minval=1, title='Length 1') len2 = input.int(26, minval=2, title='Length 2') //Calculate Tema values for each Input //Tema 1 ema1 = ta.ema(close, len1) ema11 = ta.ema(ema1, len1) ema111 = ta.ema(ema11, len1) tema1 = 3 * (ema1 - ema11) + ema111 //Tema 2 ema2 = ta.ema(close, len2) ema22 = ta.ema(ema2, len2) ema222 = ta.ema(ema22, len2) tema2 = 3 * (ema2 - ema22) + ema222 //Plot the MAs plot(tema1, color=color.new(color.black, 20)) plot(tema2, color=color.new(color.maroon, 20)) // Define long/short conditions long = ta.crossover(tema1, tema2) and tema1 > tema2 short = ta.crossunder(tema1, tema2) and tema1 < tema2 exitLong = ta.crossunder(tema1, tema2) exitShort = ta.cross(tema1, tema2) // Buys when buy condition met strategy.entry('long', strategy.long, when=long) strategy.close('long', when=exitLong) // Closes position when sell condition met strategy.entry('short', strategy.short, when=short) strategy.close('short', when=exitShort)