デュアルSMAシステムに基づくトレンドフォロー戦略


作成日: 2023-09-20 11:35:30 最終変更日: 2023-09-20 11:35:30
コピー: 1 クリック数: 688
1
フォロー
1617
フォロワー

概要

この戦略は2つのSMA平均線のみを使用し,その中で遅いSMAはトレンドの方向を判断するために使用され,速いSMAは入場信号のために使用されます.K線実体色の判断と組み合わせて,長ポジションと短いポジションの信号を生成します.戦略は中期トレンドを追跡し,高位震動または低位震動の状況に適用されます.

戦略原則

2つのSMA平均線,および価格チャネルの中線を,素早くゆっくり計算する. 速線周期は5で,慢線周期は20である. 価格チャネルの中線上方,上昇傾向として,この段階では,速線上での慢線を突破するチャンスを多く求めること. 価格チャネルの中線下方,下降傾向として,速線下での慢線を突破するチャンスを多く求めること.

また,K線実体色の判断を組み合わせて,上昇傾向の場合,下部K線が連続して2根赤実体より大きいと要求し,快線で慢線を横切るときに多めにする.下部傾向の場合,上部K線が連続して2根緑実体より大きいと要求し,快線の下部で慢線を横切るときに空にする.

優位分析

この戦略は,同時に2つのSMA平均線と価格チャネルを使用してトレンドの方向を判断し,偽の突破から誤導されないようにする。そして,K線実体色を加え,偽のシグナルをフィルターする。空白のシグナルが同時に存在し,ベージング操作を行う。中期トレンドを効果的に追跡できる。

パラメータは,長短ポジション条件をカスタマイズすることができ,適応性が強い. レビューデータによると,この戦略は,高位震動と低位震動の市場の両方で良い利益を得ることができます.

リスク分析

この戦略は,平均線指標に過度に依存し,波動的な状況で偽信号が過剰に発生する可能性があり,価格要因のみを考慮し,取引量の影響を無視している.

適切なSMA周期パラメータを調整したり,他の技術指標にシグナルフィルタリングを加えたりすることもできます.また,量能指標などの総合判断を導入することもできます.さらに,ポジション管理を最適化し,市場状況に応じてポジションサイズを調整することもできます.

最適化の方向

  1. 異なるSMA快慢線の組み合わせをテストし,最適なパラメータを見つけます.

  2. 取引量などの指標を検証する.

  3. 他の技術指標と組み合わせた戦略の組み合わせ

  4. ダイナミックポジションを設定し,資金管理を最適化する.

  5. 価格の動向と転換点を予測する機械学習の応用.

  6. 損失を防止する戦略を最適化する

要約する

この戦略は,全体的な考え方が明確で,双SMAシステムを使用してトレンドを判断することが一般的です。しかし,均線システムだけで誤信号を生じやすいため,他の技術指標を導入して最適化する必要があります。より多くの質的および定量的指標を導入して検証することができれば,この戦略はより効果的です。全体的に,それは簡単な信頼できるトレンド追跡戦略のテンプレートを提供します。

ストラテジーソースコード
/*backtest
start: 2023-08-20 00:00:00
end: 2023-09-19 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("Noro's Trend SMA Strategy v1.4", shorttitle = "Trend SMA str 1.4", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value=100.0, pyramiding=0)

needlong = input(true, "long")
needshort = input(true, "short")
usefastsma = input(true, "Use fast SMA")
fastlen = input(5, defval = 5, minval = 1, maxval = 50, title = "fast SMA Period")
slowlen = input(20, defval = 20, minval = 2, maxval = 200, title = "slow SMA Period")
bars = input(2, defval = 2, minval = 0, maxval = 3, title = "Bars Q")

fastsma = ema(close, fastlen)
slowsma = ema(close, slowlen)

//PriceChannel
src = ohlc4
lasthigh = highest(src, slowlen)
lastlow = lowest(src, slowlen)
center = (lasthigh + lastlow) / 2

trend = low > center ? 1 : high < center ? -1 : trend[1]

bar = close > open ? 1 : close < open ? -1 : 0
redbars = bars == 0 ? 1 : bars == 1 and bar == -1 ? 1 : bars == 2 and bar == -1 and bar[1] == -1 ? 1 : bars == 3 and bar == -1 and bar[1] == -1 and bar[2] == -1 ? 1 : 0
greenbars = bars == 0 ? 1 : bars == 1 and bar == 1 ? 1 : bars == 2 and bar == 1 and bar[1] == 1 ? 1 : bars == 3 and bar == 1 and bar[1] == 1 and bar[2] == 1 ? 1 : 0

up = trend == 1 and (low < fastsma or usefastsma == false) and redbars == 1 ? 1 : 0
dn = trend == -1 and (high > fastsma or usefastsma == false) and greenbars == 1 ? 1 : 0

colorfastsma = usefastsma == true ? red : na
plot(fastsma, color = colorfastsma, title = "Fast SMA")
plot(center, color = blue, title = "Price Channel")

longCondition = up == 1
if (longCondition)
    strategy.entry("Long", strategy.long, needlong == false ? 0 : na)

shortCondition = dn == 1
if (shortCondition)
    strategy.entry("Short", strategy.short, needshort == false ? 0 : na)