この戦略の名称はDEMA MACD コンビネーション戦略である. DEMA移動平均指標とMACD指標を組み合わせて,二重指標確認の購入および販売信号を生成する.主なアイデアは,信号の精度を向上させ,より良い戦略パフォーマンスを達成するために,複数の確認のためにDEMAトレンド指標とMACDモメント指標の両方を使用することです.
この戦略は主にDEMA移動平均指標とMACD指標の組み合わせに基づいています.
21日間のDEMA移動平均を計算します.閉値がDEMA線を超えると,それは購入信号とみなされます.下を横切ると,それは販売信号とみなされます.
MACDヒストグラム値を計算し,購入信号の追加確認としてMACDヒストグラムが0より大きいかどうかを制御するためのオプションパラメータを追加します.
DEMAの買い信号が表示される場合,MACDヒストグラムの0以上の追加確認が有効になっている場合,実際の買い信号はMACDヒストグラムが正に変わってからのみ起動されます.
DEMAのセールシグナルが表示されると,追加のMACD確認を必要とせずに直接セールシグナルが発行されます.
この二重指標の組み合わせを通じて,DEMA線はトレンド方向を判断するために使用され,MACDヒストグラムは,市場が誤ったブレイクを回避し,利益の可能性を高めるためにトレンドの初期段階にあるかどうかを判断するために使用されます.購入の0以上のMACDヒストグラムは,戦略が上昇傾向中にのみ購入することを確認し,販売の迅速なDEMA確認は,戦略がタイムリーに損失を削減することを可能にします.
この戦略におけるDEMAとMACD指標の組み合わせの主な利点は以下の通りである.
DEMAはより敏感で 傾向の変化を 及時に把握し ランに縛られた罠に 巻き込まれないようにします
0以上のMACDヒストグラムは 誤った信号をフィルタリングし トレンド開始時にのみ購入し 利益の可能性を拡大します
MACDの確認なしに直接DEMAのダウンクロスを販売することで 迅速なストップ損失を可能にし 利益を最大化します
二重指標の検証は信号の正確性を向上させ,不正な取引を減らす.
異なる市場環境に適応するように調整できるパラメータのための大きな最適化空間.
この戦略の主なリスクは,
DEMAが過度に敏感であるため,より多くの誤った信号が生じ,MACDが信号をフィルターする必要があります.
MACDは遅れがあり,最良のエントリーポイントを見逃す可能性があります.他の主要指標を組み合わせて検討する必要があります.
パラメータ最適化に依存し,市場ごとに異なるパフォーマンスを持つ.最適なパラメータを見つけるために継続的なバックテストが必要です.
DEMAとMACDの両方が計算において EMAに依存している.信号の正確性は検証が必要です.
解決策:
誤った信号を減らすため,複数の指標のコンボを構築するために他の指標フィルターを追加します.
BBやKDのような主要指標で MACDを置き換えて ターンを早く捕捉してみてください
パラメータの安定性をリアルタイムで評価するためのパラメータ最適化と更新メカニズムを組み込む.
関連性リスクを減らすため,関連性のない指標を導入する.
この戦略における主な最適化方向は以下の通りである.
DEMAのパラメータは戦略の感受性を直接制御します
ストップ損失メカニズムの追加.現在戦略はストップのためにDEMAダウンのみに依存しています.トライリングストップまたはパーセントストップを追加できます.
MACDを他の主要指標に置き換える.例えば,ボリンジャーバンドやKDJなど.
信頼性を高めるために関連のない指標を導入する.例えば,ボリューム,波動性指標.
パラメータ状態を継続的に評価し,自動調整するためのパラメータ最適化と更新メカニズムを構築する.
この戦略は,DEMA移動平均値とMACD指標を組み合わせて,信号確認と発行の両方を利用する.単一指標戦略と比較して,より高い感度と信号精度を持っています. 戦略をより堅牢かつスマートにするために,パラメータを最適化,ストップを追加,主要な指標を導入などにより改善の余地があります.
/*backtest start: 2022-12-14 00:00:00 end: 2023-12-20 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © melihtuna //@version=1 strategy("DEMA Strategy with MACD", overlay=true) // === Trend Trader Strategy === DemaLength = input(21, minval=1) MacdControl = input(false, title="Control 'MACD Histogram is positive?' when Buy condition") e1 = ema(close, DemaLength) e2 = ema(e1, DemaLength) dema1 = 2 * e1 - e2 pos = close > dema1 ? 1 : 0 barcolor(pos == 0 ? red: pos == 1 ? green : blue ) plot(dema1, color= blue , title="DEMA Strategy with MACD") // === INPUT BACKTEST RANGE === FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12) FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31) FromYear = input(defval = 2020, title = "From Year", minval = 2017) 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 = 2017) // === FUNCTION EXAMPLE === start = timestamp(FromYear, FromMonth, FromDay, 00, 00) // backtest start window finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) // backtest finish window window() => true // create function "within window of time" // === MACD === [macdLine, signalLine, histLine] = macd(close, 12, 26, 9) macdCond= MacdControl ? histLine[0] > 0 ? true : false : true strategy.entry("BUY", strategy.long, when = window() and pos == 1 and macdCond) strategy.entry("SELL", strategy.short, when = window() and pos == 0)