
この戦略は,双均線交差に基づくトレンド追跡システムで,短期および長期の2つの単純な移動平均 ((SMA)) の交差を利用して,明確な多空取引信号を生成する.この戦略は,簡潔でわかりやすく,理解しやすく,実行しやすく,特に移動平均交差の基本原理を習得したいトレーダーに適しています.戦略の核心思想は,短期均線の下から上方から長期均線を横断すると,システムが多信号を生成し,短期均線上から下方から長期均線を横断すると,システムが空信号を生成するということです.この取引方法は,信号が発生した閉盘価格の逆ポジションを自動的に保持し,トレーダーが市場方向をタイムリーに調整できるようにします.
戦略の核心は,2つのSMAの相互作用に基づいています.
取引シグナル生成の論理:
取引の実行プロセス:
策略はまた,ユーザが異なる市場環境または取引スタイルに適合するために,価格源 (デフォルトの開場価格) と平均線周期の長さをカスタマイズすることを許可します.
戦略のコードを詳しく分析すると,以下のような明らかな利点が挙げられます.
この戦略は簡潔で効果的ですが,以下の潜在的なリスクがあります.
振動市場の頻繁な取引:横横整理または振動市場の場合,短期と長期の平均線が頻繁に交差し,過剰な取引信号と不必要な取引コストを引き起こす可能性があります.
遅滞性問題: 移動平均は本質的に遅滞の指標であり,トレンドが進行している時または終了に近づいているときに信号が生成される可能性があります.
偽突破リスク: 価格が一時的に平均線を越え,その後元のトレンドに戻り,誤ったシグナルを生む
止損メカニズムの欠如:現在の戦略には明確な止損設定がないため,強烈な逆転状況で大きな損失を引き起こす可能性があります.
パラメータ感性: 策略のパフォーマンスは平均線周期長さの選択に敏感であり,不適切なパラメータは,策略の効果に大幅な変化をもたらす可能性があります.
このコードの詳細を分析した結果,以下のような改善策を提案しました.
トレンドフィルターを追加: ADX,トレンド強度指数,または価格と平均線の相対的な位置判断を導入し,確認されたトレンド環境でのみ信号を生成し,揺れ市場での頻繁な取引を回避する
ダイナミック・ストップ・メカニズムの導入:ATRまたは他の波動性指標に基づいてダイナミック・ストップ・レベルを設定し,利益を保護し,単一取引の最大リスクを制限する
入場時間を最適化:信号生成後に小周期の確認を使用するか,より良い実行価格を得るために再入場を待機する
取引量フィルタリングを増やす:交差信号に基づいて取引量を増やす確認,取引量も方向変化を支持する場合にのみ取引を実行する
適応均線周期を実現:市場の変動に応じて均線周期の長さを自動的に調整し,高波動環境でより長い周期を使用し,低波動環境でより短い周期を使用
倉庫開設と平和倉庫の分期メカニズムを追加: 一度にすべての倉庫を建設するのではなく,時間点選択のリスクを減らすために,段階的に倉庫と平和倉庫を建設する
双均線交差トレンド追跡戦略は,簡潔で強力な量化取引システムであり,短期と長期の移動平均の交差によって明確な取引信号を生成する.その主な優点は,操作の簡素性,視覚的直感性,自動反転機構であり,トレーダーは市場傾向を客観的に追うことができる.しかし,この戦略には,震動市場での頻繁な取引や信号遅れなどの固有のリスクもあります.
この基本戦略は,トレンドフィルターを追加し,ダイナミックストップ・メカニズムを導入し,入場時間を最適化し,取引量確認を増やすなどによって,著しく強化することができます. 特に,他の技術指標と組み合わせてシグナルをフィルターし,リスク管理を最適化することで,様々な市場環境下での戦略のパフォーマンスを向上させることができます.
これは,取引の量化を開始したい初心者にとって理想的な出発点であり,経験豊富なトレーダーにとって,さらにカスタマイズと最適化を行うための堅固な基盤を提供します.重要なことは,どのような改善も採用しても,厳格な反省と前向きな検証によって評価され,戦略の改善が本当に長期的な価値を増やすことを保証することです.
/*backtest
start: 2025-01-01 00:00:00
end: 2025-03-24 00:00:00
period: 2d
basePeriod: 2d
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//
//@version=6
//
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// @author = Da_mENIZ
// © denis_zvegelj
// last change 20.Mar.2025
//
// Simple MA Crossover strategy that shows on the chart with Long/Short indicators. Feel free to use it to suit
// your needs
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
strategy("DZ Simple MA Crossover Strategy", shorttitle="DZ_MACross", overlay=true, calc_on_every_tick=true)
// Define the moving average lengths
i_src_price = input.source (open, "Price source", group="Main Settings")
i_shMA_len = input.int (9, "Short MA Length", minval=1, group="Main Settings")
i_loMA_len = input.int (21, "Long MA Length", minval=6, group="Main Settings")
// Calculate the moving averages
short_MA = ta.sma(i_src_price, i_shMA_len)
long_MA = ta.sma(i_src_price, i_loMA_len)
// Plot the moving averages on the chart
plot(short_MA, color=color.red, linewidth=2, title="Short MA")
plot(long_MA, color=color.blue, linewidth=2, title="Long MA")
// Generate the buy and sell signals
long_Cond = ta.crossover(short_MA, long_MA)
short_Cond = ta.crossunder(short_MA, long_MA)
// Place the orders based on conditions
if (long_Cond)
strategy.close("Short", immediately = true, comment = "Close")
strategy.entry("Long", strategy.long, comment = "Enter")
label.new(bar_index+1, open, "Long\n" + str.tostring(open), style=label.style_label_down, color=color.blue, textcolor=color.white, yloc=yloc.abovebar)
if (short_Cond)
strategy.close("Long", immediately = true, comment = "Close")
// strategy.entry("Short", strategy.short, comment = "Short\n" + str.tostring(open))
strategy.entry("Short", strategy.short, comment = "Enter")
label.new(bar_index+1, open, "Short\n" + str.tostring(open), style=label.style_label_up, color=color.red, textcolor=color.white, yloc=yloc.belowbar)