マルチタイムフレームMACD戦略は,複数のタイムフレームでMACD指標を使用してトレンドを追跡する定量的な取引戦略である.この戦略は,価格トレンドが異なる期間 (3分,5分,15分,30分) で一貫しているかどうかを判断することによって取引信号を生成する.
この戦略の主な論理は,複数の時間枠 (3分,5分,15分,30分) でMACD指標の交差状況を計算することです.まず,MACD指標は,各時間枠で計算され,その時間枠の下での価格動向 (上下) を判断します.次に,複数の時間枠の価格動向は包括的に判断されます:
タイムフレームのトレンドを判断することで 短期的な市場の騒音は効果的にフィルタリングされ 取引信号はより信頼性があります
この戦略には以下の利点があります.
この戦略には次のリスクもあります
対応する解法:
この戦略は,次の側面でさらに最適化できます.
マルチタイムフレームMACD戦略は,MACD指標のトレンド判断能力を利用し,時間枠間の価格動きを検出し,ノイズを効果的にフィルタリングし,シグナル品質を改善することができます.この戦略は,パラメータチューニングとルール最適化によって異なる製品と市場環境に柔軟に適応することができ,強力な実用性があります.
/*backtest start: 2023-10-28 00:00:00 end: 2023-11-27 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy("[RichG] Easy MTF Strategy", overlay=false) TF_1_time = input("3", "Timeframe 1") TF_2_time = input("5", "Timeframe 2") TF_3_time = input("15", "Timeframe 3") TF_4_time = input("30", "Timeframe 4") fastLen = input(title="Fast Length", defval=12) slowLen = input(title="Slow Length", defval=26) sigLen = input(title="Signal Length", defval=9) [macdLine, signalLine, _] = macd(close, fastLen, slowLen, sigLen) width = 5 upcolor = green downcolor = red neutralcolor = blue linestyle = line TF_1 = request.security(syminfo.tickerid, TF_1_time, open) < request.security(syminfo.tickerid, TF_1_time, close) ? true:false TF_1_color = TF_1 ? upcolor:downcolor TF_2 = request.security(syminfo.tickerid, TF_2_time, open) < request.security(syminfo.tickerid, TF_2_time, close) ? true:false TF_2_color = TF_2 ? upcolor:downcolor TF_3 = request.security(syminfo.tickerid, TF_3_time, open) < request.security(syminfo.tickerid, TF_3_time, close) ? true:false TF_3_color = TF_3 ? upcolor:downcolor TF_4 = request.security(syminfo.tickerid, TF_4_time, open) < request.security(syminfo.tickerid, TF_4_time, close) ? true:false TF_4_color = TF_4 ? upcolor:downcolor TF_global = TF_1 and TF_2 and TF_3 and TF_4 TF_global_bear = TF_1 == false and TF_2 == false and TF_3 == false and TF_4 == false TF_global_color = TF_global ? green : TF_global_bear ? red : white TF_trigger_width = TF_global ? 6 : width plot(1, style=linestyle, linewidth=width, color=TF_1_color) plot(5, style=linestyle, linewidth=width, color=TF_2_color) plot(10, style=linestyle, linewidth=width, color=TF_3_color) plot(15, style=linestyle, linewidth=width, color=TF_4_color) plot(25, style=linestyle, linewidth=4, color=TF_global_color) exitCondition_Long = TF_global_bear exitCondition_Short = TF_global longCondition = TF_global if (longCondition) strategy.entry("MTF_Long", strategy.long) shortCondition = TF_global_bear if (shortCondition) strategy.entry("MTF_Short", strategy.short) strategy.close("MTF_Long", when=exitCondition_Long) strategy.close("MTF_Short", when=exitCondition_Short)