
この策略は,RSI-MAトレンド追跡策略と呼ばれています.この策略は,RSI指数とMA平均線を同時に使用して,価格の傾向を判断し,取引信号を発信するものです. RSI指数が設定された上下値を超えると取引信号を生成し,MA線は,偽の信号をフィルターするために使用され,価格が上昇または下落を継続した場合にのみ信号を発信します.これは,一定の利得スペースを維持しながら,効果的なフィルターショッキングの動きをすることができます.
この戦略は,主にRSI指標とMA平均線を使用する. RSIは,超買いを判断するために使用され,MAは,トレンドの方向を判断するために使用されます. 具体的ロジックは:
RSI指標値を計算し,上限90と下限10を設定します. RSIが90を超えるとオーバーバイ信号で,10未満になるとオーバーセール信号です.
ある周期 (例えば4日) のMA平均線を計算する. 価格が上昇し続けるとMA線が上昇し,価格が低下し続けるとMA線が低下する.
RSIが90を超えると同時にMAが上線すると,空白する.RSIが10未満になると同時にMAが下線すると,多めにする.
ストップダストは,手ごとに固定ポイント数で,ストップは手ごとに固定パーセントで設定されます.
この戦略は,RSI指標とMA均線のダブルフィルタを組み合わせて,波動的な状況下での偽信号を効果的にフィルタリングできます.同時に,RSIの設定により,信号が遅すぎることを避け,一定程度の利益の余地があります.MAを使用して,トレンドの方向を判断し,逆転取引を避けることができます.さらに,戦略のパラメータは単純で,容易に理解し,最適化できます.
この戦略の主なリスクは
RSIとMAは反応せず,大きな損失を招く可能性があります.
RSIとMAは波動的な状況で頻繁に信号を発し,取引費やスライドポイントのコストを増加させる可能性があります.
パラメータ設定が不適切であることも戦略のパフォーマンスに影響を与えます.例えば,RSI上下値があまりにも広く設定された場合,信号が遅延し,信号があまりにも狭く設定された場合,信号が頻繁に発生します.
この戦略の改善の方向は以下の通りです.
異なる品種と周期のパラメータに応じてテストおよび最適化を行い,最適なパラメータの組み合わせを設定する.
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)