この戦略は,比較的完全な株式取引システムを実装する長方形のチャネルと二重移動平均のモメントインジケーターに基づいています.この戦略は,まず高速EMAと遅いEMAを使用して二重移動平均の取引信号を構築します.その後,長方形のチャネルインジケーターと組み合わせて,より正確なエントリを達成するために取引信号をさらに検証します.さらに,戦略はトレンド方向を判断するのにSARインジケーターも使用します.
5 日間の速い EMA と 50 日間の遅い EMA の移動平均を計算する.速い EMA は最近の価格変化を反映し,遅い EMA は長期的な傾向を反映する.
EMAをTEMA (Triple Exponential Moving Average) に変換し,TEMA
急速なTEMAが遅いTEMAを超えると,購入信号が生成され,急速なTEMAが遅いTEMAを下回ると,販売信号が生成される.ダブル移動平均クロスオーバーの原則は定量取引で広く使用されている.
チャンネルエリアを形成するために価格チャネル幅を計算する. 価格がチャネルを突破するときにのみ取引信号が考慮されます. これは偽の信号をフィルターし,トレンドの実際の開始を確認することができます.
SAR インディケーターは,二重移動平均取引信号と組み合わせて,全体的なトレンド方向を決定し,不必要な逆転操作を回避することができます.
二重移動平均クロスオーバーとチャネルブレークスルーの組み合わせにより,トレンドの始まりを効果的に特定し,ノイズをフィルターし,買い売り信号をより正確かつ信頼性のあるものにすることができます.
TEMA曲線は EMA曲線よりも敏感で,価格変動をより早く捉えることができます.
複数の指標を組み合わせることで,指標間の検証メカニズムが形成され,単一の指標の限界を回避し,戦略をより包括的で堅牢なものにすることができます.
戦略パラメータは柔軟で,EMAサイクル,チャネル幅など,市場の条件に応じて調整し最適化することができ,適応性が高い.
短期的には株価の変動が起こり ストップロスを容易に行う可能性があります
予期せぬ出来事により,予想価格で取引できない価格格差が生じることがあります.
二重移動平均のクロスオーバーは 誤った信号を完全に回避できないので 判断の誤りも ある程度あります
パラメータの設定が正しくない場合,取引信号が過剰に頻繁または遅れている可能性があります.
KD と MACD などのより多くの指標を組み合わせて検証することで,戦略がより包括的で信頼性が高くなります.
ダイナミックサイクルは,市場変動の程度に応じて EMA とチャネルのパラメータを調整するために設定され,戦略をより柔軟にすることができます.
マシン学習モデルは,大量の歴史的データを訓練してパラメータ設定を自動的に最適化し,手動介入を減らすために確立できます.
テキスト分析とニュースセンチメント判断は,重要なニュースがリリースされたときに不必要な取引を避けるために組み合わせることができます.
この戦略は,TEMA移動平均のクロスオーバーを介して取引信号を形成し,その後価格チャネルとSAR指標で検証し,株価トレンドの開始を効果的に特定し,合理的なポジションで買取・売却操作を行うことができます.相互検証のための複数の指標の組み合わせは,シグナルの信頼性を向上させ,比較的堅牢で効率的な株式取引戦略です.パラメータ設定を継続的に最適化し,新しい検証指標を追加することで,戦略の効果はさらに向上することができます.
/*backtest start: 2024-01-01 00:00:00 end: 2024-01-31 23:59:59 period: 4h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy("TEMA_System_SAR", overlay=true) //Collect inputs parameters fastEmaPeriod = input(5, minval=1, title="Fast TEMA Period") slowEmaPeriod = input(50, minval=1, title="Slow TEMA Periods") // === INPUT BACKTEST RANGE === FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12) FromDay = input(defval = 4, title = "From Day", minval = 1, maxval = 31) FromYear = input(defval = 2010, title = "From Year", minval = 2000) ToMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12) ToDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31) ToYear = input(defval = 9999, title = "To Year", minval = 2000) // === FUNCTION EXAMPLE === start = timestamp(FromYear, FromMonth, FromDay, 09, 15) // backtest start window finish = timestamp(ToYear, ToMonth, ToDay, 15, 30) // backtest finish window window() => true fastEma = ema(close, fastEmaPeriod) slowEma = ema(close, slowEmaPeriod) //convert EMA into TEMA ema1 = ema(close, fastEmaPeriod) ema2 = ema(ema1, fastEmaPeriod) ema3 = ema(ema2, fastEmaPeriod) fastTEMA = 3 * (ema1 - ema2) + ema3 // convert EMA into TEMA ema4 = ema(close, fastEmaPeriod) ema5 = ema(ema1, fastEmaPeriod) ema6 = ema(ema2, fastEmaPeriod) slowTEMA = 3 * (ema4 - ema5) + ema6 buy = close > fastTEMA sell = close < fastTEMA plot(fastTEMA, title = 'fast TEMA', linewidth=2, color=white) plot(slowTEMA, title = 'slow TEMA', linewidth=2, color=yellow) strategy.entry("long",strategy.long, when = window() and buy) strategy.entry("short", strategy.short, when = window() and sell)