この戦略は,移動平均値に基づいたトレンドフォロー戦略である.低リスクトレンド取引のトレンド方向を決定するために,速い移動平均値と遅い移動平均値のクロスオーバーとクロスアンダーを使用する.
この戦略は,期間の9の高速移動平均と21の遅い移動平均を使用する.高速MAが遅いMAを超えると,市場の上昇傾向が示され,ロングポジションが取られる.高速MAが遅いMAを下回ると,ダウントレンドが示され,すべてのロングポジションが閉鎖される.
戦略は,トレンド方向を決定するために,高速MAと遅いMAの値を計算し,その関係を比較する.上昇傾向では,高速MAが遅いMAを超えると,ロングエントリーシグナルが起動する.下落傾向では,高速MAが遅いMAを下回ると,既存のロングポジションを閉鎖するための出口シグナルが起動する.
この方法により,高速MAsと遅いMAsのクロスオーバーとクロスアンダーは,取引後の低リスクトレンドのトレンド移行を把握します.
リスクはパラメータを調整し フィルターを追加し ストップ・ロスト/テイク・プロフィートで 管理できます
トレンドフォロー戦略として,基本的なアイデアは,トレンド方向を決定するために,速いおよび遅い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)