この戦略は,相対強度指数 (RSI) 指標に基づいて,ニフティ指数取引のための定量投資戦略を設計する.これは,RSIを使用して低価格の購入と高価格の売却を導入するために,過剰な収益を出すために,過剰な購入と過剰な売却の機会を特定する.
この戦略は,2期間のRSIを取引シグナルとして設定する.RSIが20を超えるとロングになり,RSIが70を下回るとポジションを閉じる.これは指数の短期調整機会を把握する.
RSIが20を下回ると,資産が過大評価され,リバウンドが進んでいることを示唆する.RSIが20を超えると,ロングに行く.RSIが70を超えると,資産が過大評価され,コールバックが進んでいることを示唆する.RSIが70を下回ると,ポジションを閉じる.
短期的な買い過ぎ/売り過ぎの機会を指標で特定する戦略として,主な利点は以下の通りです.
この戦略の主なリスクは以下のとおりです.
上記リスクを制御するために,以下の側面で最適化を行うことができます.
戦略の最適化のための主な側面:
この戦略は,RSIインジケーターに基づいて短期間の取引戦略を設計し,低価格の購入と高価格の販売のための過剰購入/過剰販売信号を捕獲する.この戦略はシンプルな原則を持ち,実行が簡単ですが,一定の程度の頻繁な取引,長期的なトレンドを特定できないなどがあります.将来の改善は,RSIパラメータを最適化し,ストップロスを追加し,判断トレンドを組み合わせて,戦略をより安定かつ信頼性のあるものにすることができます.
/*backtest start: 2023-01-18 00:00:00 end: 2024-01-24 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("RSI Strategy", overlay=true,pyramiding = 1000) rsi_period = 2 rsi_lower = 20 rsi_upper = 70 rsi_value = rsi(close, rsi_period) buy_signal = crossover(rsi_value, rsi_lower) sell_signal = crossunder(rsi_value, rsi_upper) current_date1 = input(defval=timestamp("01 Nov 2009 00:00 +0000"), title="stary Time", group="Time Settings") current_date = input(defval=timestamp("01 Nov 2023 00:00 +0000"), title="End Time", group="Time Settings") investment_amount = 100000.0 start_time = input(defval=timestamp("01 Dec 2018 00:00 +0000"), title="Start Time", group="Time Settings") end_time = input(defval=timestamp("30 Nov 2023 00:00 +0000"), title="End Time", group="Time Settings") in_time = time >= start_time and time <= end_time // Variable to track accumulation. var accumulation = 0.0 out_time = time >= end_time if (buy_signal ) strategy.entry("long",strategy.long,qty= 1) accumulation += 1 if (out_time) strategy.close(id="long") plotshape(series=buy_signal, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup) plotshape(series=sell_signal, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown) plot(rsi_value, title="RSI", color=color.blue) hline(rsi_lower, title="Lower Level", color=color.red) plot(strategy.opentrades, style=plot.style_columns, color=#2300a1, title="Profit first entry") plot(strategy.openprofit, style=plot.style_line, color=#147a00, title="Profit first entry") // plot(strategy.position_avg_price, style=plot.style_columns, // color=#ca0303, title="Profit first entry") // log.info(strategy.position_size * strategy.position_avg_price)