移動平均のクロスオーバー戦略

作者: リン・ハーンチャオチャン開催日:2023年10月17日 16時46分57秒
タグ:

img

概要

この戦略は,移動平均値に基づいたトレンドフォロー戦略である.低リスクトレンド取引のトレンド方向を決定するために,速い移動平均値と遅い移動平均値のクロスオーバーとクロスアンダーを使用する.

戦略の論理

この戦略は,期間の9の高速移動平均と21の遅い移動平均を使用する.高速MAが遅いMAを超えると,市場の上昇傾向が示され,ロングポジションが取られる.高速MAが遅いMAを下回ると,ダウントレンドが示され,すべてのロングポジションが閉鎖される.

戦略は,トレンド方向を決定するために,高速MAと遅いMAの値を計算し,その関係を比較する.上昇傾向では,高速MAが遅いMAを超えると,ロングエントリーシグナルが起動する.下落傾向では,高速MAが遅いMAを下回ると,既存のロングポジションを閉鎖するための出口シグナルが起動する.

この方法により,高速MAsと遅いMAsのクロスオーバーとクロスアンダーは,取引後の低リスクトレンドのトレンド移行を把握します.

利点

  • トレンドを決定するために移動平均を使用することで,市場の騒音をフィルタリングし,トレンドの方向性を特定します
  • 速いMAはトレンド変化を早く捉え,遅いMAは誤った信号をフィルタリングします
  • クロスオーバーを使って購入し,クロスアンダーを使って販売することで,トップを追いかけて底を売り出すことは避けられます
  • シンプルで明確な取引論理,理解し実行しやすい

リスク

  • 移動平均値は遅れがあり,トレンド移行の最良のエントリー/アウトプットポイントを逃す可能性があります.
  • 固定的なMA長さは,異なる市場サイクルに適応できない
  • 双 MA 戦略は,過剰な取引信号と過剰なフィットメントを生成する傾向があります
  • 取引を決定するためにMAsのみを使用することは突然の出来事や損失に易い

リスクはパラメータを調整し フィルターを追加し ストップ・ロスト/テイク・プロフィートで 管理できます

改善 の 方向

  • 異なるパラメータ設定,例えば MA 長度,クロスオーバー/クロスオーバーの限界値などをテストする.
  • 誤ったブレイクを避けるためにフィルターとしてモメントインジケーターを追加します
  • トレンドとレンジングの市場を区別するための傾向決定指標を追加する
  • ストップを最適化し,利益を取るために波動性指標を組み込む
  • マシン学習を使用してパラメータを動的に最適化します

概要

トレンドフォロー戦略として,基本的なアイデアは,トレンド方向を決定するために,速いおよび遅いMAを使用することです. 利点はシンプルさ,明確なルール,効果的なトレンドトラッキングです. 欠点は遅延,誤った信号,過剰な取引です. パラメータを調整し,他の指標を追加することで,市場状況により良く適応することで最適化することができます. 全体として,ダブルMA戦略は定量取引にシンプルで信頼できるアプローチを提供します. 継続的な改善により,そのパフォーマンスはさらに向上することができます.


/*backtest
start: 2023-09-01 00:00:00
end: 2023-09-20 23:59:59
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Profitable Crypto Strategy", shorttitle="Profit Strategy", overlay=true)

// Define strategy parameters
fastLength = input.int(9, title="Fast MA Length", minval=1)
slowLength = input.int(21, title="Slow MA Length", minval=1)
stopLossPercent = input.float(1.0, title="Stop Loss %", step=0.1)
takeProfitPercent = input.float(1.0, title="Take Profit %", step=0.1)

// Calculate moving averages
fastMA = ta.sma(close, fastLength)
slowMA = ta.sma(close, slowLength)

// Entry condition: Buy when fast MA crosses above slow MA
longCondition = ta.crossover(fastMA, slowMA)
// Exit condition: Sell when fast MA crosses below slow MA
shortCondition = ta.crossunder(fastMA, slowMA)

// Plot moving averages on the chart
plot(fastMA, color=color.blue, title="Fast MA")
plot(slowMA, color=color.orange, title="Slow MA")

// Strategy entry and exit logic
var stopLossPrice = 0.0
var takeProfitPrice = 0.0

if (longCondition)
    stopLossPrice := close * (1.0 - stopLossPercent / 100)
    takeProfitPrice := close * (1.0 + takeProfitPercent / 100)
    strategy.entry("Long", strategy.long)

if (shortCondition)
    strategy.close("Long")

// Set stop loss and take profit for open positions
strategy.exit("Stop Loss/Profit", stop=stopLossPrice, limit=takeProfitPrice)


もっと