ストック・RSIに基づくトレンド フォローする戦略

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

img

概要

この戦略は,トレンドフォローのためのストックRSIインジケーターに基づいて設計されています.ストックRSIクロスオーバーを通じて取引信号を生成し,ストックRSIクロスオーバーを通じてトレンドトラッキングメカニズムを採用して,ストップロスを動的に調整し,最適化されたマネーマネジメントのために利益ラインを取ることで,RSIとストックインジケーターの利点を組み合わせます.

戦略の論理

この戦略は,RSIのストックKおよびDラインを計算する.ストックRSIのKラインが低点から20を超えると購入信号を生成する.その後,以前のいくつかのKラインの最低点に基づいてストップ損失を設定し,ストップ損失線は上昇する価格とともに動的に上向きに調整される.同時に,最高価格に基づいて利益を引き出すラインが設定され,価格が利益を引き出すラインに達するとポジションは閉鎖される.

利点分析

この戦略は,ストックRSIインジケーターを組み合わせて市場トレンドとクロスオーバーを決定し,RSIインジケーターのみを使用する制限を回避し,シグナルを生成する.一方,トレンド追跡メカニズムは,ストップ・ロスのラインを価格動きに応じて常に向上調整できるようにし,早期ストップ・ロスの出口のリスクを回避し,トレンド動き中に持続的な利益を獲得することを可能にします.さらに,RSIインジケーター自体は比較的良い勝利率を持っています.

リスク分析

この戦略は,主にトレンドとクロスオーバー信号生成のためのストックRSIインジケーターに依存している.インジケーター自体からの誤った信号はいくつかのリスクをもたらす.また,レンジバインド市場では,頻繁に起動されるストップ・ロストとテイク・プロフィートラインが戦略の収益性に影響を与える可能性がある.パラメータ最適化によってリスクは軽減できる.

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

  • ストックRSIのパラメータを最適化し,誤った信号の確率を下げるためにKとDラインの滑らかな速度を調整
  • ストップ・ロスの設定を最適化し,パラメータの安定性を向上させるために利益を取ります.
  • フィルタリング条件を追加して,市場範囲でウィップソウを避ける
  • 市場状況に基づくポジションサイズメカニズムを組み込む

結論

この戦略は,ストックRSI指標の優位性を統合し,トレンド動きを効果的に特定し,利益獲得確率を改善するためにストップとターゲットを動的に調整するためのトレンド追跡メカニズムを採用している.パラメータ最適化によって安定性と追跡能力のさらなる向上を達成することができる.全体的に言えば,この戦略はリスクを制御しながら利益を得ることができ,ライブテストに値する.


/*backtest
start: 2023-01-26 00:00:00
end: 2024-02-01 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2

strategy("sdf",calc_on_every_tick=true,precision=8,
     default_qty_type=strategy.fixed,currency="USD")
//entradas y variables de indicadores
smoothK = input(3, minval=1)
smoothD = input(3, minval=1)
lengthRSI = input(14, minval=1)
lengthStoch = input(14, minval=1)
src = input(close, title="RSI Source")
rsi1 = rsi(src, lengthRSI)
k = sma(stoch(rsi1, rsi1, rsi1, lengthStoch), smoothK)
d = sma(k, smoothD)
overbought=input(80)
oversold=input(20)
//entradas de stop , trail, profit
stop=input(1500)
stop_dentro_de_los_ultimos_lows=input(20)
trail_points=input(500)
trail_offset=input(100)
profit=input(1000)
riesgo_en_dolares=input(15)
marsi=sma(rsi(close,14),14)
//condicion de compra: k>80
buycondition=crossover(k,20) and security(syminfo.ticker,"240",rsi(close,14)>marsi)
bgcolor( security(syminfo.ticker,"240",rsi(close,14)>marsi) ? yellow : na , transp=0)

if year>2014
    strategy.entry("l",strategy.long,qty=1,when=buycondition)
    velasiguente=barssince(buycondition)+1  //cierre en cada vela nueva independientemente si subeObaja.FUNCIONANDO
    strategy.close("l",when=velasiguente>2)       //cierre en cada vela nueva independientemente si subeObaja.FUNCIONANDO
    //paradaMasBajo=lowest(low,stop_dentro_de_los_ultimos_lows)//stop_dentro_de_los_ultimos_lows, NO PROBADA 
    //strategy.exit("l",loss=paradaMasBajo,profit=profit)
plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)

もっと