
この戦略は,仮想通貨のRSI指標と暗号市場のRSI指標を比較して,暗号市場の相対的な価値判断を行い,取引信号を生成する.
この策略は,まず,総市場価値,総市場価値を除くビットコイン,その他の通貨の総市場価値などの暗号市場指数を選択することを許可する.同時に,より高い時間周期の暗号市場指数を選択し,デフォルトは日線である.それから,選択した暗号通貨のRSI指数と,その暗号市場指数のRSI指数を計算し,比値によって相対的に強い弱指数を得ます.この相対的に強い指数が指定されたパラメータを突破すると,買入シグナルを生成し,次に突破すると,売り出シグナルを生成する.
この戦略の核心的な論理は,仮想通貨のRSIが暗号市場指数より強ければ,その通貨の相対市場価値が過大評価され,過大評価される可能性があり,購入できることを示し,仮想通貨のRSIが市場指数より弱ければ,その通貨の相対市場価値が過大評価され,過大評価される可能性があり,売れることを示し,相対強弱指数によって,価値をより正確に判断できるということである.
この戦略の最大の利点は,比較的弱い指数指標を利用することで,単一通貨の技術指標のみに基づいて決定するのではなく,デジタル通貨の価値をより正確に判断でき,一角だけを見る困境を回避することです.
比較的強い指数は,市場全体の環境が単一の通貨に与える影響を十分に考慮し,市場の回転のペース,および異なるセクターの流動を把握し,市場内の価値通貨を掘り下げます.
さらに,この戦略は,さまざまな指数選択を提供しており,異なる市場状況に応じて最も適切な指数を選択して取引することができます.これは,戦略の効果を保証します.
この戦略の主なリスクは,相対的に強いインデックスは価値判断の道具に過ぎず,単一通貨自体の技術的な形態から生じる取引リスクを完全に回避できないことです.
例えば,この通貨が目立つ頭肩頂背の形に入り,市場構造が変化し,比較的強い指数による買い信号だけで損失が生じることがあります.
この戦略は,デジタル通貨の技術的な性質を組み合わせて,技術的な重要なポイントで不適切な取引を避ける必要があります.
もう一つのリスクは,選択されたインデックスが不適切で,デジタル通貨と高い関連性がない場合,相対的に強いインデックスの指示作用は大きく割引されるということです.これは,異なる通貨種と市場インデックスの関連性に基づいて選択を最適化する必要があります.
この戦略は以下の点で最適化できます.
通貨の価格が逆転したときに,時効的に止まるという,止損策を増やす.
インデックスの最適化選択,異なる通貨が異なるインデックスをマッチさせ,関連性を高める.
日線指数と4時間線指数との確認など,複数の時間周期を組み合わせることで,信号の信頼性が向上する.
機械学習アルゴリズムを追加し,固定パラメータを使用するのではなく,自己適応的な方法で相対的な強弱指数の値を決定する.
感情分析,基本面分析などの他の指標と組み合わせて,より包括的な価値判断システムを形成する.
この相対的に強いインデックス戦略は,デジタル通貨と市場インデックスの強弱関係を比較して,通貨の相対的な価値の高低を判断し,取引シグナルを形成する.戦略の優点は,市場の分析の次元を増やし,市場のペースを把握することにある.しかし,一定のリスクも存在し,効果を高めるために,停止損失,時間周期の組み合わせ,自律的な減価償却などの手段を最適化する必要もある.この戦略は,適用されれば,デジタル通貨の量化取引において重要な役割を果たすことができる.
/*backtest
start: 2023-10-16 00:00:00
end: 2023-11-15 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy('RSI correlation with cryptoindices [strategy version]', overlay=false)
// Testing Start dates
testStartYear = input(2016, 'Backtest Start Year')
testStartMonth = input(1, 'Backtest Start Month')
testStartDay = input(1, 'Backtest Start Day')
testPeriodStart = timestamp(testStartYear, testStartMonth, testStartDay, 0, 0)
//Stop date if you want to use a specific range of dates
testStopYear = input(2030, 'Backtest Stop Year')
testStopMonth = input(12, 'Backtest Stop Month')
testStopDay = input(30, 'Backtest Stop Day')
testPeriodStop = timestamp(testStopYear, testStopMonth, testStopDay, 0, 0)
testPeriod() =>
time >= testPeriodStart and time <= testPeriodStop ? true : false
len = input(4, title='length of rsi comparison')
correlationcrossover = input(1, title='correlation crossover')
IndexSwitch = input.string('CRYPTOCAP:TOTAL2', title='Index selection', options=['CRYPTOCAP:TOTAL2', 'CRYPTOCAP:TOTAL', 'CRYPTOCAP:OTHERS', 'CRYPTOCAP:USDT', 'CRYPTOINDEX:CIX100', 'CRYPTOCAP:BTC.D', 'CRYPTOCAP:BTC'])
IndexHTF = input.string('120', title='higher time frame reference index', options=['1', '2', '5', '10', '15', '30', '45', '60', '90', '120', '150', '240', '360', '720', 'D', '3D', 'W', 'M'])
switchColor = input(true, 'Color Hull according to trend?')
ref = request.security(IndexSwitch, IndexHTF, close[1], lookahead=barmerge.lookahead_on)
RSI_ref = ta.rsi(ref, len)
RSI_close = ta.rsi(close, len)
relative = RSI_ref / RSI_close
plot(relative, color=color.new(color.blue, 0))
long = ta.crossover(relative, correlationcrossover)
short = ta.crossunder(relative, correlationcrossover)
corr = plot(correlationcrossover, color=color.new(color.green, 0), linewidth=1)
hullColor = switchColor ? relative > correlationcrossover ? #00ff00 : #ff0000 : #ff9800
//PLOT
///< Frame
Fi1 = plot(relative, title='relative', color=hullColor, linewidth=1, transp=50)
fill(Fi1, corr, title='Band Filler', color=hullColor, transp=50)
if long and testPeriod()
strategy.entry("long", strategy.long)
if short and testPeriod()
strategy.entry("long", strategy.short)
// alertcondition(long, title='long', message='long')
// alertcondition(short, title='short', message='short')