3つのSMAクロスオーバーモメント戦略

作者: リン・ハーンチャオチャン, 日付: 2023-12-25 12:06:36
タグ:

img

概要

3つのSMAクロスオーバーモメントストラテジーは,市場の動向を追跡する典型的な技術指標戦略である.16期,36期,72期間の単純な移動平均を組み合わせ,トレンド方向性が比較的明確であるときにロングまたはショートポジションを取るためにフィルターとしてカウフマン適応移動平均 (KAMA) とともに,市場の動向を決定するためにそれらの上昇と下落のクロスオーバーを使用する.

戦略の論理

この戦略の主な指標は16期,36期,72期の単純な移動平均線である.短期間SMAが長期間SMAを上向きに横切ると,市場は上向きに進んでいることを示唆する.短期間SMAが長期間SMAを下向きに進んでいることを示唆する.例えば16期SMAが36期SMAと72期SMAを横切ると,それは上昇信号である.16期SMAが36期SMAと72期SMAを下向きに進んでいることを示唆する.

カウフマン適応移動平均 (KAMA) は,トレンドが不明であるときに間違った信号を避けるフィルターとして機能する.SMAクロスオーバー信号は,KAMAが加速しないまたは減速しないモード (線形相) にいるときにのみ起動する.

この戦略は,トレンドが比較的明確であるときに,長または短ポジションを取るためにSMAクロスオーバー状況を追跡する.長条件は36-SMAと線形KAMAの72-SMAを横切る16-SMAである.短条件は36-SMAと線形KAMAの72-SMAを横切る16-SMAである.

利点分析

この戦略の利点は次のとおりです.

  1. 多期SMAを組み合わせることで 中長期市場動向を効果的に追跡できる
  2. フィルターとして適応移動平均を導入することで,トレンドが不明確であるときに誤った信号を減らすことができます.
  3. 実行が簡単で,自動化またはプログラム取引に適しています.

リスク分析

この戦略にはいくつかのリスクもあります:

  1. SMAのクロスオーバーが頻繁に起こるため,周波数帯の市場では頻繁に無効な信号が発生する可能性があります.
  2. ストップ・ロスは設定されていません 損失は拡大する可能性があります
  3. 高い不安定性のある暗号市場のために設計され,不安定な市場では劣悪なパフォーマンスを発揮する可能性があります.

リスクは,SMAパラメータを調整し,ストップロスの制約を設定するか,非常に不安定な市場だけに適用することによって軽減できる.

オプティマイゼーションの方向性

戦略は以下の方法で最適化できます.

  1. 最適の SMA パラメーターの異なる組み合わせをテストして
  2. 追加フィルター条件として取引量または変動指標を追加する
  3. ストップ・ロスのメカニズムを設定する
  4. 入場タイミングを決定するために他の指標を組み合わせる
  5. ポジションのサイズを最適化し,ポジションを徐々に増やして減らすことによってリスクを調整する

結論

3つのSMAクロスオーバーモメントストラテジー (Three SMA Crossover Momentum Strategy) は,全体としてかなり古典的で実用的なトレンドフォロー戦略である.多期SMAクロスオーバーを通じて中長期市場トレンドを効果的に判断し,ノイズをフィルタリングする.ポジショナル取引のタイミング参照指標の一つとして機能することができる.しかし,この戦略にはいくつかの弱点もあるため,より多様な市場で立つためにさらなる強化と最適化が必要である.


/*backtest
start: 2023-11-24 00:00:00
end: 2023-12-24 00:00:00
period: 1h
basePeriod: 15m
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/
// © Wielkieef


//@version=5
strategy(title='Three SMA-crossover strategy [30min] ', overlay=true, pyramiding=1, initial_capital=10000, default_qty_type=strategy.cash, default_qty_value=10000, calc_on_order_fills=false, slippage=0, commission_type=strategy.commission.percent, commission_value=0.03)

src = close

Length1 = input.int(16, title='  1-SMA Lenght', minval=1, group='SMA')
Length2 = input.int(36, title='  2-SMA Lenght', minval=1, group='SMA')
Length3 = input.int(72, title='  3-SMA Lenght', minval=1, group='SMA')
SMA1 = ta.sma(close, Length1)
SMA2 = ta.sma(close, Length2)
SMA3 = ta.sma(close, Length3)

Long_ma = SMA1 > SMA2 and SMA2 > SMA3
Short_ma = SMA1 < SMA2 and SMA2 < SMA3

LengthMainSMA = input.int(100, title='  Trend SMA ', minval=1)

SMAas = ta.sma(src, LengthMainSMA)

//  Powered Kaufman Adaptive Moving Average by alexgrover (modificated by Wielkieef)
lengthas = input.int(50, title='   KAMA Lenght')
sp = input.bool(true, title='  Self Powered')

er = math.abs(ta.change(close, lengthas)) / math.sum(math.abs(ta.change(close)), lengthas)
pow = sp ? 1 / er : 2
per = math.pow(math.abs(ta.change(close, lengthas)) / math.sum(math.abs(ta.change(close)), lengthas), pow)
a = 0.
a := per * src + (1 - per) * nz(a[1], src)
mad4h = 0.
a_f = a / a[1] > .999 and a / a[1] < 1.001

///.

Bar_color = close > SMAas ? color.green : Long_ma ? color.blue : Short_ma ? color.maroon : color.gray

barcolor(color=Bar_color)

long_cond = Long_ma and SMAas < close and not a_f and close > a

short_cond = Short_ma and SMAas > close and not a_f and close < a
  
long_stop = Short_ma and SMAas < close

short_stop = Long_ma and SMAas > close

SMA1plot = plot(SMA1, color=Bar_color, linewidth=2)
SMA2plot = plot(SMA2, color=Bar_color, linewidth=4)
SMA3plot = plot(SMA3, color=Bar_color, linewidth=2)

fill(SMA1plot,SMA3plot,title="RANGE " ,color = color.new(Bar_color, 50))



if  long_cond
    strategy.entry('Long', strategy.long)

if  short_cond
    strategy.entry('Short', strategy.short)

strategy.close_all(when=long_stop or short_stop)



//by wielkieef

もっと