双移動平均クロスオーバー戦略は,一般的な定量的な取引戦略である. 購入・販売信号として,高速移動平均と遅移動平均のクロスオーバーを使用する. 急速移動平均が下からゆっくり移動平均を超えると,購入信号が生成される. 急速移動平均が上からゆっくり移動平均を下に越えると,販売信号が生成される.
この戦略の主な論理は,移動平均の2つのグループを計算することである.一つは10日間のパラメータを持つ高速移動平均であり,もう一つは30日間のパラメータを持つ遅い移動平均である.高速移動平均は価格変化により速く反応することができ,遅い移動平均は長期的な傾向をよりよく反映することができる.
急速移動平均値が遅い値を超えると,短期価格が長期トレンドを突破し始めることを意味し,これはロングに行くための黄金十字信号です.高速移動平均値が遅い値を下回ると,短期価格が長期トレンドを下回り始めることを意味し,これはショートに行くための死亡十字信号です.
ストップ・ロスは,価格がエントリー価格の一定パーセントを下回るときに起動する. ストップ・ロスは,価格がエントリー価格の一定パーセントを超えると起動する. ストップ・ロスは,価格がエントリー価格の一定パーセントを下回るときに起動する.
二重移動平均のクロスオーバー戦略には以下の利点があります.
論理は単純で理解し実行するのが簡単です
急速な移動平均値と遅い移動平均値のパラメータは,異なる市場に対応するように調整できます.
損失を制限するためのストップ・ロースと/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または
トレンド市場とレンジ市場の両方で良いパフォーマンスを発揮できます
双重移動平均のクロスオーバー戦略には,次のリスクもあります.
交差点からの信号は誤ったブレイクで損失を引き起こす可能性があります.
ストップ・ロスの設定と得益の設定が正しくない場合,莫大な損失や期待利益の減少が起こり得る.
基本的指標を考慮せずに技術指標のみをベースにしている.
対応する解法:
誤った信号をフィルタリングするために他の技術指標を追加する.
ストップ・ロスのテストと最適化
基本的な分析を組み込む
戦略は以下の側面から最適化できます.
移動平均値の異なるパラメータ組み合わせをテストし,最適なパラメータを見つけます.
誤ったブレイクを避けるため,価格・量確認指標を追加する.
ストップ・ロスを動的に調整し,より良い利益を得るために利益率を調整する.
取引量,売上率などの他の指標を含める
概要すると,ダブル移動平均クロスオーバー戦略は,シンプルで実践的な定量的な取引戦略である.理解し,実装しやすく,ほとんどの市場環境で安定した利益を生むことができる.パラメータを最適化し,シグナルフィルターとダイナミックな利益採取メカニズムを追加することで,戦略はより信頼性と利益を得ることができます.基本的な定量的な取引戦略の1つとして,学習と適用に価値があります.
/*backtest start: 2023-01-12 00:00:00 end: 2024-01-18 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Moving Average Crossover", overlay=true) // Define input parameters fast_length = input(10, title="Fast MA Length") slow_length = input(30, title="Slow MA Length") stop_loss_percent = input(1.0, title="Stop Loss (%)", minval=0.1, maxval=10, step=0.1) take_profit_percent = input(2.0, title="Take Profit (%)", minval=0.1, maxval=10, step=0.1) // Calculate moving averages fast_ma = sma(close, fast_length) slow_ma = sma(close, slow_length) // Entry conditions long_condition = crossover(fast_ma, slow_ma) short_condition = crossunder(fast_ma, slow_ma) // Plot moving averages on the chart plot(fast_ma, title="Fast MA", color=color.blue) plot(slow_ma, title="Slow MA", color=color.red) // Strategy orders strategy.entry("Long", strategy.long, when=long_condition) strategy.entry("Short", strategy.short, when=short_condition) // Set stop loss and take profit levels stop_loss_price = close * (1 - stop_loss_percent / 100) take_profit_price = close * (1 + take_profit_percent / 100) strategy.exit("Take Profit/Stop Loss", from_entry="Long", stop=stop_loss_price, limit=take_profit_price) strategy.exit("Take Profit/Stop Loss", from_entry="Short", stop=take_profit_price, limit=stop_loss_price)