ダブル移動平均チャネルブレイクアウトSMA戦略


作成日: 2023-10-23 17:08:51 最終変更日: 2023-10-23 17:08:51
コピー: 0 クリック数: 604
1
フォロー
1617
フォロワー

ダブル移動平均チャネルブレイクアウトSMA戦略

この戦略は,チャネルブレイク原理に基づいており,均線交差を退出信号として使用し,先物および指数取引に適用されます.

戦略原則

  1. 一定周期内の最高値と最低値を計算し,上下チャネルを構築する.

  2. 価格が上通路を突破すると,多めに;価格が下通路を突破すると,空いてください.

  3. 速期と遅期の2つのSMA平均線を計算する.

  4. 多時,速期SMA上は慢期SMA,平多ポジション;空き時,速期SMA下は慢期SMA,平空ポジション.

優位分析

  1. 経路と均等なシステムと組み合わせれば,利益の確率を高めることができる.

  2. 経路を判断して,ankelの定期を旋回し,均線を判断して,トレンドを終了する.

  3. 単線フィルタリングは,不必要な取引を減らすためにwhipsawを回避します.

  4. 経路範囲のパラメータは,異なる周期と波動率市場に対応して調整できます.

リスク分析

  1. 経路の範囲は正しく設定されていないため,破口の機会を逃すか,より多くの偽破口を生成する可能性があります.

  2. 平均線のパラメータが正しく設定されていないため,早すぎたり遅すぎたりしてポジションを退出することがあります.

  3. ポジションの規模を合理的に管理し,単一の損失を過大にしないようにする必要があります.

  4. 突破の後に効果があるかどうか注意して,追いかけるのを防ぎます.

最適化の方向

  1. 異なるパラメータの下での戦略の収益率と勝利率をテストし,通路範囲と平均線周期を最適化する.

  2. トレンド指標のフィルタリングと突破信号の組み合わせにより,突破の成功率を高めます.

  3. ポジション管理機構の追加,例えば,固定シェア,マーティンゲルなど.

  4. 単一損失を抑えるための損失防止メカニズムの追加

要約する

この戦略は,市場回転と熱点を判断するためのチャネルを使用し,トレンドの終わりを判断し,合理的なパラメータを設定することで,強力な市場で安定した収益を達成できます.しかし,whipsawがもたらす損失を防止する必要があり,ポジションとリスク管理を最適化することは非常に重要です.パラメータ調整,シグナルフィルタリングおよびリスク管理手段の使用により,戦略の安定性をさらに強化できます.

ストラテジーソースコード
/*backtest
start: 2023-10-01 00:00:00
end: 2023-10-13 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © anshuanshu333

//@version=4

// strategy("ChBrkOutStrategySMA", overlay=true, initial_capital = 200000)
length = input(title="Length", type=input.integer, minval=1, maxval=1000, defval=7)
     
fastSMA = sma(close,9)
slowSMA = sma(close,21)

upBound = highest(high, length)
downBound = lowest(low, length)

boundLongEntry = ((close >= upBound) or (high >= upBound)) and fastSMA>slowSMA and (close > open)
boundShortEntry =((close <= downBound) or (low <= downBound)) and fastSMA<slowSMA and (close <open)

u=plot(upBound, title = "Upper Bound",color=color.blue, linewidth=1)
l=plot(downBound, title = "Lower Bound",color=color.red, linewidth=1)
plot(fastSMA,title = "Fast SMA", color = color.red, linewidth =2)
plot(slowSMA,title = "Slow SMA" ,color = color.green, linewidth =1)
fill(u,l, transp=95)
plot(avg(upBound,downBound), title = "Avg", color=color.gray,linewidth =1)

     
if (boundLongEntry )
    strategy.entry("LE", long = true)
    
if (boundShortEntry)
    strategy.entry("SE", long = false)
    
SmaLongExit = crossunder(fastSMA,slowSMA)
SmaShortExit = crossover(fastSMA,slowSMA)

    
//Close TRades   
if (strategy.position_size > 0)
    strategy.close(id="LE",when= SmaLongExit)
if (strategy.position_size < 0)
    strategy.close(id="SE",when= SmaShortExit)