この戦略は,RSI-MAトレンドフォロー戦略と呼ばれる.アイデアは,RSI指標とMA線の両方を利用して価格動向を判断し,取引信号を生成することです.RSI指標が事前に設定された上位および下位
この戦略の主な構成要素は,RSIインジケーターとMAラインである.RSIは過買い・過売のレベルを特定するために使用され,MAはトレンド方向性を決定するために使用される.具体的な論理は:
RSI指標値を計算し,上限を90で,下限を10に設定します. RSI値が90を超えると過買い信号が表示され,10を下回ると過売り信号が表示されます.
特定の期間 (例えば4日) のMA線を計算する.価格が継続的に上昇しているとき,MA線は上向きに傾きます.価格が継続的に下がっているとき,MA線は下向きに傾きます.
RSI が 90 を超え,MA 線が上向きに傾くと,ショートします.RSI が 10 を下回り,MA 線が下向きに傾くと,ロングします.
ストップ・ロスは1つの契約ごとに 固定数点で設定し,利益は1つの契約ごとに 固定パーセントで設定します.
この戦略は,RSIインジケーターとMAラインの二重フィルターを組み合わせ,範囲限定価格変動下で誤ったシグナルを効果的にフィルタリングすることができます. 一方,RSI設定は遅延信号を避け,良質な利益の可能性を維持します.トレンド方向性を決定するためにMAを使用することで,トレンドに反する取引を防ぐことができます. さらに,戦略には理解し最適化しやすい単純なパラメータがあります.
この戦略の主なリスクは以下の通りである.
急激な物価急上昇を引き起こす突然の出来事は,RSIとMAの読み取りに間に合わず,より大きな損失につながる可能性があります.
範囲限定市場では,RSIとMAは頻繁にシグナルを発行し,取引コストと滑り幅を増加させる過度に頻繁な取引を引き起こす可能性があります.
不適切なパラメータ設定は戦略のパフォーマンスにも影響する.例えば,RSI上下の
さらに最適化すべき分野は以下の通りである.
バックテストとパラメータを最適化して,最適なパラメータの組み合わせを見つけるために,異なる製品とタイムフレームで.
RSI/MAに加えて,KDJ,BOLLなど他の指標を組み込むことで,より厳格なシグナルフィルターを設定し,誤ったシグナルを減らす.
価格レベルを動的に調整するために,波動性とATRをベースに適応性のあるストップ・ロスト/テイク・プロフィートメカニズムを構築する.
変化する市場状況に基づいてパラメータを自動調整する機械学習アルゴリズムを追加し,動的なパラメータ最適化を実現します
このRSI-MA戦略は,トレンドフォローとオーバーバイト/オーバーセール分析の要素を組み合わせて,比較的シンプルで実用的なものである.有利な市場条件で,適切な利益を達成できるが,強度向上のためにさらなる最適化によって減少する必要がある誤った信号のリスクも伴う.
/*backtest start: 2023-11-10 00:00:00 end: 2023-12-10 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 //This strategy is best used with the Chrome Extension AutoView for automating TradingView alerts. //You can get the AutoView extension for FREE using the following link //https://chrome.google.com/webstore/detail/autoview/okdhadoplaoehmeldlpakhpekjcpljmb?utm_source=chrome-app-launcher-info-dialog strategy("4All", shorttitle="Strategy", overlay=false) src = close len = input(4, minval=1, title="Length") up = rma(max(change(src), 0), len) down = rma(-min(change(src), 0), len) rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down)) plot(rsi, color=purple) band1 = hline(90) band0 = hline(10) fill(band1, band0, color=purple, transp=90) rsin = input(5) sn = 100 - rsin ln = 0 + rsin short = crossover(rsi, sn) long = crossunder(rsi, ln) strategy.entry("long", strategy.long, when=long) strategy.entry("short", strategy.short, when=short) TP = input(15) * 10 SL = input(23) * 10 TS = input(0) * 10 CQ = 100 TPP = (TP > 0) ? TP : na SLP = (SL > 0) ? SL : na TSP = (TS > 0) ? TS : na strategy.exit("Close Long", "long", qty_percent=CQ, profit=TPP, loss=SLP, trail_points=TSP) strategy.exit("Close Short", "short", qty_percent=CQ, profit=TPP, loss=SLP, trail_points=TSP)