
この戦略は,相対的に強い弱い指標 ((RSI) と移動平均 ((MA) の両方を同時に利用して取引信号を生成する.具体的には,RSIラインがMAラインを上下に横切るときに買い信号を生成し,RSIラインがMAラインを上下に横切るときに売り信号を生成する.この戦略は比較的シンプルですが,二つの異なるタイプの指標を組み合わせることで,偽信号を効果的に軽減し,信号の信頼性を向上させることができます.
この戦略の基本的な論理は,
取引のシグナルが発生すると,グラフに関連するマーカーを描いて,視覚的に判断する.これは,二重均線戦略の全体的な作業プロセスである.
双均線戦略の最大の利点は,トレンド指標と超買い超売り指標を効果的に組み合わせて,取引シグナルをより信頼性のあるものにすることにある.具体的には,主に以下のいくつかの側面の利点はあります.
偽信号を減らす. RSIとMAの組み合わせを使用すると,相互にシグナルを検証し,単一の指標によって発生する偽信号を避ける.
勝率の向上 単一のRSIまたはMA戦略に比べて,双均線戦略は,より高い利益の機会を得ることができます.
適応性 戦略は2つのパラメータのみで,操作が簡単で,使用コストが低く,異なる市場環境に適合する.
容易に最適化できる.RSIとMAの周期パラメータを調整することで,より多くの品種に適した最適化が可能である.
双均線戦略には多くの利点があるが,実用的な応用ではリスクを完全に回避することもできない.主なリスクは以下のとおりである.
MAは,過去平均価格を使用しており,最新の価格変更に遅れがある可能性があります.
RSIは偽突破が発生し,誤った信号を生成する可能性があります.
市場が急激に変化する傾向に適応できず,損をする可能性が高い.
パラメータの設定を間違えれば,戦略のパフォーマンスに大きく影響する.
リスクの管理は,以下のようなものから行われます.
最新の価格変化に応じて調整する周期パラメータである自適性MAを使用する.
単一損失を抑えるため,損失防止機構を強化する.
パラメータを最適化して,最適なパラメータ組み合わせをテストする.
ステップ・ストップ・ロスを採用し,利益の一部をロックし,リスクを減らす.
双重均線策の潜在的な問題に対して,以下のような側面から最適化を検討しました.
通常のMAの代わりに自律的なMAを使用することで,価格変化の傾向をより早く捉えることができます.
取引量指標の検証を増やし,偽の突破を避ける.例えば,取引量と同調した値上がりのときに購入する.
他の指標と組み合わせると,filtフィルタが有効でない信号である.例えばMACDまたはKD指標のverifiesである.
パラメータ設定の範囲を最適化して,最適のパラメータ組合せを探します. 戦略のHighest gainのパラメータの範囲を反省で探すことができます.
機械学習技術を用いたパラメータ自在化最適化.戦略がリアルタイム市場の状況に応じて最適なパラメータを選択できるようにする.
この2つのポイントを最適化することで,二重均等線戦略の実盤パフォーマンスを大幅に向上させることが期待されている.
双均線戦略は,RSIとMAの2つの指標の優位性を統合し,両者を組み合わせることで,より正確で信頼できる取引信号を生成することができる.単一の技術指標戦略と比較して,双均線戦略は,信号の正確性が高く,偽信号が少なく,最適化が容易であるなどの優位性がある.しかし,誤操作のリスクを完全に回避することもできない.我々は,いくつかの具体的なリスク管理手段を提案している.さらに,この戦略の存在は,自己適応指標,他の補助的証券指標,パラメータ優位性の探求などの手段と組み合わせれば,戦略の収益率をさらに向上させると期待される.全体的に,この戦略は,取引を量化するための簡潔な技術分析方案を提供します.
/*backtest
start: 2023-10-31 00:00:00
end: 2023-11-30 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy(title="RSI + MA", shorttitle="RSI + MA")
reverseTrade = input(false, title = "Use Reverse Trade?")
lengthRSI = input(14, minval=1, title="RSI Length")
sourceRSI = input(close, "RSI Source", type = input.source)
showMA = input(true, title="Show MA")
lengthMA = input(9, minval=1, title="MA Length")
offsetMA = input(title="MA Offset", type=input.integer, defval=0, minval=-500, maxval=500)
up = rma(max(change(sourceRSI), 0), lengthRSI)
down = rma(-min(change(sourceRSI), 0), lengthRSI)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
ma = sma(rsi, lengthMA)
plot(showMA ? ma : na, "MA", color=color.blue, linewidth=2, style=0, offset=offsetMA)
plot(rsi, "RSI", color=#9915FF, linewidth=1, style=0)
band1 = hline(70, "Upper Band", color=#C0C0C0, linestyle=2, linewidth=1)
band0 = hline(30, "Lower Band", color=#C0C0C0, linestyle=2, linewidth=1)
fill(band1, band0, color=color.new(#9915FF,95), title="Background")
buy = reverseTrade ? rsi[1] < ma[1] and rsi > ma : rsi[1] > ma[1] and rsi < ma
sell = reverseTrade ? rsi[1] > ma[1] and rsi < ma : rsi[1] < ma[1] and rsi > ma
strategy.entry("Buy", true, when = buy)
strategy.entry("Sell", false, when = sell)