複数移動平均ブレイクアウト戦略


作成日: 2023-11-22 13:41:38 最終変更日: 2023-11-22 13:41:38
コピー: 0 クリック数: 607
1
フォロー
1617
フォロワー

複数移動平均ブレイクアウト戦略

概要

この戦略は,複数の移動平均の突破と逆転を利用して取引信号を生成します. 価格が上昇平均線を破るときは,多めに; 価格が下降平均線を破るときは,空いてください.

戦略原則

4つの異なる周期の移動平均線21日線,50,100日線,200日線を使用している.価格がこれらの平均線を破るときは入場し,価格がこれらの平均線を下回るときは入場しなくなっている.さらに,戦略は,ストップ・ロースとストップ・ロースを設定している.具体的には,ストップ・ロースは,前K線の最低価格の近くに設定され,ストップ・ロースは,前K線の最低価格から最高価格の3倍の距離に設定されている.

この戦略の核心思想は,移動平均を使用して価格の傾向を判断することです.価格が上行平均線を破るときは,現在上昇傾向にあることを示し,多めにすべきです.価格が下行平均線を破るときは,現在下行傾向にあることを示し,空っぽにすべきです.複数の異なる周期の平均線を使用して,より正確に傾向を判断することができ,同時に,傾向の一致性によって取引信号を検証することもできます.

優位分析

この戦略の利点は以下の通りです.

  1. 多重平均線判定を使用して,偽信号を効果的にフィルターできます.
  2. ストップ・ストップ・ストップ戦略を設定し,単一損失を制限します.
  3. 操作が簡単で実行しやすい

リスク分析

この戦略の主なリスクは

  1. 移動平均戦略は,価格の逆転点を逃すため,誤差を起こす可能性が高い.
  2. 偽信号を突破すると損害が発生する可能性があります.
  3. ストップダメージブレーキを正しく設定しない場合,損失が拡大する可能性があります.

平均線パラメータを調整し,ストップ・ストップ戦略を最適化することで,これらのリスクを軽減することができます.

最適化の方向

この戦略は以下の点で最適化できます.

  1. より多くの周期の平均線組み合わせをテストし,最適なパラメータを探します.
  2. 偽の突破を避けるために,他の指標の判断を加える.
  3. ストップ・ストップ・ストップ戦略を最適化して,よりよいリスク/利益の比率を実現する
  4. 市場状況に応じてパラメータを調整し,戦略をより柔軟にする

要約する

この戦略は,全体として典型的なトレンド追跡戦略である.その優点は,アイデアが明確で,理解しやすく,実行できることです.その欠点は,誤信号を生成しやすいことです.パラメータを最適化し,他の指標を追加することで,戦略の効果を向上させることができます.この戦略は,中長線ポジションに適しています.また,短線取引戦略の構成部分としても使用できます.

ストラテジーソースコード
/*backtest
start: 2022-11-15 00:00:00
end: 2023-11-21 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("DolarBasar by AlperDursun", shorttitle="DOLARBASAR", overlay=true)

// Input for Moving Averages
ma21 = ta.sma(close, 21)
ma50 = ta.sma(close, 50)
ma100 = ta.sma(close, 100)
ma200 = ta.sma(close, 200)

// Calculate the lowest point of the previous candle for stop loss
lowestLow = ta.lowest(low, 2)

// Calculate the highest point of the previous candle for stop loss
highestHigh = ta.highest(high, 2)

// Calculate take profit levels
takeProfitLong = lowestLow - 3 * (lowestLow - highestHigh)
takeProfitShort = highestHigh + 3 * (lowestLow - highestHigh)

// Entry Conditions
longCondition = ta.crossover(close, ma21) or ta.crossover(close, ma50) or ta.crossover(close, ma100) or ta.crossover(close, ma200)
shortCondition = ta.crossunder(close, ma21) or ta.crossunder(close, ma50) or ta.crossunder(close, ma100) or ta.crossunder(close, ma200)

// Stop Loss Levels
stopLossLong = lowestLow * 0.995
stopLossShort = highestHigh * 1.005

// Exit Conditions
longExitCondition = low < stopLossLong or high > takeProfitLong
shortExitCondition = high > stopLossShort or low < takeProfitShort

if (longCondition)
    strategy.entry("Long", strategy.long)

if (shortCondition)
    strategy.entry("Short", strategy.short)

if (longExitCondition)
    strategy.exit("Long Exit", from_entry="Long", stop=stopLossLong, limit=takeProfitLong)

if (shortExitCondition)
    strategy.exit("Short Exit", from_entry="Short", stop=stopLossShort, limit=takeProfitShort)