MACDとAlbrooksの価格アクショントレンドフォロー戦略を組み合わせた

MACD SMA PA RR SL TP
作成日: 2025-02-19 17:36:15 最終変更日: 2025-02-19 17:36:15
コピー: 0 クリック数: 452
2
フォロー
319
フォロワー

MACDとAlbrooksの価格アクショントレンドフォロー戦略を組み合わせた MACDとAlbrooksの価格アクショントレンドフォロー戦略を組み合わせた

概要

この戦略は,アルブルックスの価格行動理論とMACD指標に基づくトレンド追跡取引システムである.それは,移動平均 ((SMA)) とMACD指標を組み合わせて,市場トレンドを識別し,適切なタイミングで取引を行う.戦略は,固定されたリスク/利益比率を使用して,各取引のストップとストップのレベルを管理し,リスクを効果的に制御する.

戦略原則

戦略の中核となるロジックには、次の重要な要素が含まれます。

  1. トレンド判断: シンプル・ムービング・アベア (SMA) をトレンド判断の基準として使用し,価格がSMA上にあるときは上昇傾向と判断し,逆に下降傾向と判断する.
  2. 入口信号:
    • 多条件:価格がSMA上であり,MACD線は0より大きく,信号線の上を通過する
    • 空白条件:価格がSMA以下で,MACD線は0より小さく,信号線を下を通過する
  3. リスク管理:
    • 固定パーセントを損保区として使用する
    • 預算されたリスクと利益の比率は,ストップポジションを計算する
  4. 退出メカニズム: 買入または売却の信号が消えたとき,自動平仓は既に保有している

戦略的優位性

  1. トレンド追跡の信頼性:価格行動と技術指標を組み合わせて,トレンド判断の正確さを向上させる
  2. リスク管理の科学性: 固定されたリスクと利益の比率で取引を管理する
  3. 信号確認の包括性:複数の条件の確認により,偽信号を減らす
  4. 高い自動化度: 完全入場,出場,リスク管理システムを含む
  5. 視覚効果: サポートとレジスタンス位置を明確に表示する

戦略リスク

  1. トレンドの逆転リスク: トレンドの転換点で連続した偽信号が生じる可能性
  2. 遅滞のリスク:移動平均とMACDには遅滞がある
  3. パラメタセンシビリティ: パラメタ設定に敏感な策略効果
  4. 市場環境への依存: 変動する市場では,より負の取引が起こりうる

戦略最適化の方向性

  1. 信号フィルタリング:交差量または波動率の指標を追加して信号をフィルタリングできる
  2. ダイナミックパラメータ: 固定リスク/利益の比率を,市場の変動率に基づくダイナミックパラメータに変換する
  3. タイムフィルター: 取引時間ウィンドウの制限を増やして,不適切な時間帯で取引を避ける
  4. 市場情緒指標の増強:トレンドの強さや弱さを判断するための市場情緒指標の導入

要約する

これは,クラシックな価格行動理論と技術指標を組み合わせた完全な取引システムである. 戦略は,厳格な信号確認機構とリスク管理方法によって,比較的安定した取引効果を実現している. いくつかの固有のリスクがあるものの,推奨された最適化の方向によって,戦略の安定性と収益性をさらに向上させることができる.

ストラテジーソースコード
/*backtest
start: 2024-11-15 00:00:00
end: 2025-02-18 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Binance","currency":"DOGE_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Abdulhossein

//@version=6
strategy(title="Al Brooks Price Action with MACD Signals", shorttitle="Al Brooks PA + MACD", overlay=true)

// Inputs
length = input.int(52, title="Moving Average Length", minval=1)
riskRewardRatio = input.float(2.0, title="Risk/Reward Ratio", minval=1.0)
stopLossBuffer = input.float(0.01, title="Stop Loss Buffer (in %)", minval=0.001)
candleType = input.string("Close", title="Candle Type", options=["Close", "Open"])

// Indicators
sma = ta.sma(close, length)
[macdLine, signalLine, _] = ta.macd(close, 12, 26, 9)
price = candleType == "Close" ? close : open

// Trend Conditions
uptrend = price > sma
downtrend = price < sma

// Buy/Sell Signals
buySignal = price > sma and macdLine > 0 and macdLine > signalLine
sellSignal = price < sma and macdLine < 0 and macdLine < signalLine

// Trade Execution
if (buySignal)
    longStopLoss = close * (1 - stopLossBuffer)
    longTakeProfit = close + (close - longStopLoss) * riskRewardRatio
    strategy.entry("Buy", strategy.long)
    strategy.exit("Take Profit", "Buy", limit=longTakeProfit, stop=longStopLoss)

if (sellSignal)
    shortStopLoss = close * (1 + stopLossBuffer)
    shortTakeProfit = close - (shortStopLoss - close) * riskRewardRatio
    strategy.entry("Sell", strategy.short)
    strategy.exit("Take Profit", "Sell", limit=shortTakeProfit, stop=shortStopLoss)

// Plot Signals
plotarrow(buySignal[2] ? 1 : na, colorup=color.new(color.green, 50), title="Buy Signal Arrow", offset=-1)
plotarrow(sellSignal[2] ? -1 : na, colordown=color.new(color.red, 50), title="Sell Signal Arrow", offset=-1)

// Close Positions
if (not buySignal and not sellSignal)
    strategy.close("Sell")
    strategy.close("Buy")

// Support and Resistance
support = ta.lowest(low, length)
resistance = ta.highest(high, length)
plot(support, title="Support", color=color.green, linewidth=1, style=plot.style_stepline)
plot(resistance, title="Resistance", color=color.red, linewidth=1, style=plot.style_stepline)
plot(sma, title="SMA", color=color.blue, linewidth=2)

// Alerts
alertcondition(buySignal[2], title="Buy Alert", message="Buy Signal Triggered")
alertcondition(sellSignal[2], title="Sell Alert", message="Sell Signal Triggered")