MACD制御リスク取引戦略

作者: リン・ハーンチャオチャン開催日:2023年10月26日 15:51:34
タグ:

img

概要

この戦略は,MACD指標に基づいて各取引のリスクを制御する長期的取引戦略を設計する.伝統的なロングショートフリッピング戦略と比較して,この戦略は各取引のリスクを制御することに焦点を当てています.合理的なストップ損失と利益のレベルを計算し,適切なポジションサイズを設定することで,各取引の最大損失を制限します.これは引き下げを効果的に制御し,長期的には安定した利益を達成することができます.

原則

この戦略は,まずMACD線とMACD指標の信号線を計算する.MACD線が信号線を超えると,それは購入信号として決定される.偽のブレイクアウトをフィルタリングするために,戦略はバーシンス ((crossover ((macd_line, signal_line)) <= 5が必要である.つまり,ブレイクアウトは最近5バー以内に起こった.また,MACDと信号線の両方が0を下回る,過剰販売状態を示し,閉じるがWMA線の上回る,上向きの傾向を示します.上記の条件を満たすと,ロングポジションが開かれます.

ストップ・ロスは,最も最近の3バーの最低値に設定される. ストップ・ロスはエントリー価格加えてストップ・ロスの4倍の距離に設定される.

鍵は,戦略が最大手頃なリスクに基づいて特定のポジションサイズを計算することです. capital_riskパラメータは,各取引で失うことができる総資本のパーセントを設定します. USDのポジションサイズは,ストップ損失範囲に基づいて計算されます.その後,実行のための契約に変換されます.

各取引のリスクは,総資本の1%以内に制御され,引き下げを効果的に制御できます.同時に,高い利益目標により,より高い利益が得られます.

利点

  • リスク管理が優先され,取引ごとにリスクはコントロール可能
  • 資本利用を最大化するために最適化されたポジションサイズ
  • ストップ・ロスの戦略は,引き上げを効果的に制御する
  • 合理的な利益は高い利益の可能性を可能にします

リスク と 改善

  • MACDは遅れている 急速なトレンド変化を見逃すかもしれない
  • 誤ったストップ・ロースまたは/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または
  • 取引頻度が高い場合,取引コストが上昇する可能性があります.

改善可能:

  • トレンドを決定するために他の指標を組み込む MACD遅延を避ける
  • ストップ・ロスの最適化と,より柔軟性のある利得アルゴリズム
  • 取引コストを削減するために取引頻度を緩和する

概要

この戦略は,MACDを使用してトレンド方向を決定し,最適化されたポジションサイジングで取引する際の優先事項としてリスク管理を考慮する.鍵はリスク制御とポジションサイジングで,長期的に安定した利益を達成することができる.しかし,MACDにはいくつかの欠陥があり,ストップ損失/取利益メカニズムにはさらなる最適化が必要である.指標の使用,ストップ損失/取利益設定をさらに最適化し,取引頻度を減らすことが戦略をより強力にする.


/*backtest
start: 2022-10-19 00:00:00
end: 2023-10-25 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy( "McDonalds ", shorttitle="Ur Lovin' It", initial_capital=10000, default_qty_type=strategy.cash, currency=currency.USD )

capital_risk    = input( 1.0, "% capital risk per trade" ) / 100
r_exit          = input( 4.0, "Take Profit in 'R'" )
wma_length      = input( 150, 'WMA Bias Length' )

[macd_line, signal_line, hist ] = macd(close, 12, 26, 9)

w_line = wma( close, wma_length )

golong = barssince(crossover(macd_line, signal_line)) <= 5 and ( macd_line < 0 and signal_line < 0 ) and ( close > w_line ) and strategy.opentrades == 0

float stop = na
float tp = na

// For a stop, use a recent low 
stop := golong ? lowest(low, 3)[1] : stop[1]
range = abs(close - stop)
tp := golong ? close + (r_exit * range) : tp[1]


// This is the bit that calculates how much size to use so we only lose 1% of the `strategy.equity`
how_much_willing_to_lose = strategy.equity * capital_risk
// Spread the risk across the stop range 
position_size_in_usd = how_much_willing_to_lose / (range / close)
// Sized specified in base contract
position_size_in_contracts = position_size_in_usd / close

// Enter the position
if golong
    strategy.entry("long", strategy.long, qty=position_size_in_contracts)
    strategy.exit("long exit","long", stop=stop, limit=tp)

// experimental exit strategy
// hist_strength = hist >= 0 ? ( hist[1] < hist ? 'strong' : 'weak') : ( hist[1] < hist ? 'weak' : 'strong' )
// if hist < 0 and hist_strength == 'strong' and falling( hist, 8 )
//     strategy.close("long")


plot( strategy.equity,  color=strategy.equity > 10000 ? color.green : color.red, linewidth=2 )

もっと