Stoch RSIに基づくトレンドフォロー戦略


作成日: 2024-02-02 11:23:29 最終変更日: 2024-02-02 11:23:29
コピー: 0 クリック数: 340
1
フォロー
1166
フォロワー

Stoch 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)