多指標に基づくトレンド追跡戦略

作者: リン・ハーンチャオチャン, 日付: 2023-11-23 15:43:02
タグ:

img

概要

この戦略は,RSI,MA,EMA,ボリンジャー帯などの複数の指標を組み合わせてトレンド追跡を実施することでトレンドを特定する.比較的上昇傾向が特定された場合,戦略はロングポジションを確立する.逆に,比較的下降傾向が特定された場合,戦略はショートポジションを確立する.

原則

この戦略の主な論理は,RSI,MA,EMAおよびボリンジャーバンドを組み合わせて価格動向を特定することです.具体的には,同時に2つのMAラインをプロットします. 1つは10期に設定され,もう1つは5期に設定されています.同時に,2つのEMAラインはそれぞれ30と20のパラメータで描かれています. RSI指標パラメータは7に設定されています.

閉じる価格が5期間のMA線,20期間のEMA線,下列線を下回り,RSIインジケーターが25期間の超買い線を下回ると,ストラテジーは価格が比較的上昇しており,ロングポジションに入ると判断します.

対照的に,閉じる価格が10期MA線,30期EMA線,上部レールの上を突破し,RSI指標が75期超売り線を突破すると,ストラテジーは価格が比較的下落していると判断し,ショートポジションに入ります.

この戦略は 移動平均値とRSI指数の逆転を組み合わせて 潜在的なトレンドを特定し そのトレンドを追跡します

利点分析

この戦略の最大の利点は,トレンドを識別するために複数の指標を使用し,誤った信号を効果的に軽減することがあります.具体的には,価格は移動平均値とボリンジャー帯を同時に突破して取引信号を誘発する必要があります.また,RSIインジケーターは,多くのノイズをフィルタリングするランガードターンオーバーも経験する必要があります.

さらに,この戦略は,短期間の騒音よりも比較的明確な傾向を追跡し,利益の確率も高めます.一般的に,この戦略には柔軟な構成,仲裁の困難,利益の高い確率などの利点があります.

リスク分析

この戦略は例外ではありません. 主なリスクは,複数の指標の組み合わせ判断が間違って,間違った取引につながることです. さらに,突然の出来事が戦略を無効にすることもできます.

リスクを軽減するために,利潤を最適化するために指標パラメータを適切に調整することができます. さらに,単一の損失を制御するためのストップ損失ポイントを設定することも非常に必要です. もちろん,避けられないシステムリスクは,投資家からの心理的準備を必要とします.

最適化

この戦略の主な最適化は以下の通りである.

  1. より多くの種類の指標の組み合わせをテストし,よりよい複数の指標の組み合わせを見つける.

  2. 戦略の安定性を高めるために指標パラメータを最適化する.

  3. 判断や正確性を向上させるための機械学習モデルの増強

  4. リスク管理のための適応性のあるストップ・ロスのメカニズムを増強する.

  5. バックテストの最適化により 安定性と収益性が向上します

結論

この戦略は,RSI,MA,EMA,ボリンジャーバンドに基づいて比較的上昇する追跡メカニズムのセットを設計し,複数の指標を組み合わせて価格動向を判断した後,方向的なポジションに入ります.判断するための複数の指標の統合は,比較的明確な傾向を追跡し,誤判の可能性を効果的に軽減し,ノイズを一定程度フィルターすることができます.もちろん,リスク管理にも注意が必要です.全体的に,この戦略には大きな最適化空間があり,機械学習やその他の手段でより良い結果を達成することができます.


/*backtest
start: 2022-11-16 00:00:00
end: 2023-11-22 00:00:00
period: 1d
basePeriod: 1h
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/
// © lepstick-TC
//@version=4
strategy("1", overlay=true)
length = input(5, minval=1)
src = input(close, title="Source")
mult = input(1.5, minval=0.001, maxval=50)
basis = sma(src, length)
dev = mult * stdev(src, length)
upper = basis + dev
lower = basis - dev
plot(basis, color=color.red)
p1 = plot(upper, color=color.blue)
p2 = plot(lower, color=color.blue)
fill(p1, p2)
rsicok=input(75,minval=0,title="Rsi yüksek")
rsiaz=input(25,maxval=50,title="Rsi düşük")
rsizaman=input(7,minval=0,title="Rsi zaman")
smadeger=input(10,minval=0,title="Ma üst")
smadeger2=input(5,minval=0,title="Ma alt")
emadeger=input(30,minval=0,title="Ema üst")
emadeger2=input(20,minval=0,title="Ema alt")
myrsi=rsi(close,rsizaman)
myrsi2=rsi(close,rsiaz)
myrsi3=rsi(close,rsicok)
myma=sma(close,smadeger)
myma2=sma(close,smadeger2)
myema=ema(close,emadeger)
myema2=ema(close,emadeger2)
mycond =myrsi >rsicok and close> myma and close>myema
mycond2=myrsi<rsiaz and close<myma2 and close<myema2
barcolor(mycond? #2196F3: na)
barcolor(mycond2? #FF9800: na)
plot(myma,title="Ma yüksek",color=color.black,linewidth=0)
plot(myma2,title="Ma düşük",color=color.blue,linewidth=0)
plot(myema,title="Ema yüksek",color=color.yellow,linewidth=0)
plot(myema2,title="Ema düşük",color=color.gray,linewidth=0)
idunno =close< sma(close,smadeger2) and close < sma(close,smadeger) and close<ema(close,emadeger)and close<ema(close,emadeger2)and crossunder(close,lower)and crossunder(myrsi,myrsi2)and crossunder(close,basis) 
plotchar(idunno,char="A",color=#808000 ,location=location.belowbar) 
idunno2 =close> sma(close,smadeger2) and close> sma(close,smadeger) and close>ema(close,emadeger)and close>ema(close,emadeger2)and crossover(close,upper)and crossover(myrsi,myrsi3)and crossover(close,basis)
plotchar(idunno2,char="S",color=#787B86 ,location=location.abovebar)
strategy.entry("Al",true,when =idunno)
strategy.entry("Sat",false,when = idunno2)
strategy.close("Al",when=ema(close,emadeger)and crossover(open,upper))
strategy.close("Sat",when=sma(close,smadeger2)and crossunder(open,lower))
//strategy.exit("Al çıkış","Al",limit=upper)
//strategy.exit("Sat çıkış","Sat",limit=lower)
//strategy.exit("Al çıkış","Al",trail_points=close*0.1/syminfo.mintick,trail_offset=close*0.005/syminfo.mintick)
//strategy.exit("Sat çıkış","Sat",trail_points=close*0.1/syminfo.mintick,trail_offset=close*0.005/syminfo.mintick)


もっと