ボトムフィッシング戦略は,典型的な低値購入と高値販売戦略である.RSIインジケーターを使用して過売り点を特定し,価格が一定程度低下すると購入信号を発行し,より低い価格でトークンを蓄積する.価格がリバウンドすると,RSI出口限界を設定することで利益を得ます.この戦略は中長期保有に適しています.不安定な市場で偽ブレイクを効果的にフィルタリングし,保有料金のコストベースを最適化することができます.
この戦略は,主にRSIインジケーターに頼り,過剰販売状態を特定する.RSIインジケーターの通常の範囲は0から100である.RSIインジケーターが設定されたエントリースリージルの35を下回ると,購入信号が発行される.RSIインジケーターが設定された出口スリージルの65を下回ると,販売信号が発行される.これは,低価格購入と高価格販売を実装するために,トレンド逆転点にタイムリーエントリーと出口を可能にします.
さらに,RSIインジケーターと組み合わせた条件を形成するために,戦略には100期間の単純な移動平均値も導入されています.RSIが過売領域に入るとき,価格が移動平均値を下回るときにのみ,購入信号が起動します.これは誤ったブレイクアウトを一定程度フィルタリングし,不必要な取引を減らすのに役立ちます.
RSI を使って,逆転点への入力を有効に識別し,より良いコストベースを得ます.
移動平均値と組み合わせて,ピークで購入するのを避けることで,誤った信号をフィルタリング
中期から長期にわたる保有に適しており,潜在的上昇傾向を検出できる
ある程度の遅れがあり, 迅速な逆転の機会を逃している可能性があります
変動市場では,より多くのブレイク・イブンまたは負ける閉店が起こる可能性があります.
異なるコインとタイムフレームでテストパラメータの最適化
MACD,ボリンジャー帯など他の指標を組み合わせてみてください
RSI パラメータまたは移動平均 パラメータを動的に調整する
ポジションサイズ戦略を最適化
ボトムフィッシング戦略は,全体的に堅牢で実用的な低価格購入と高価格販売戦略である.RSIと移動平均値との二重フィルタリングによって,誤った信号を効果的に抑制し,最適化されたパラメータで低コストベースを得ることができます.同時に,指標パラメータを適切に最適化し,ポジション戦略を調整することで,資本利用効率が向上する可能性があります.
/*backtest start: 2024-01-10 00:00:00 end: 2024-01-17 00:00:00 period: 1m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © Coinrule //@version=4 strategy(shorttitle='Optimized RSI Strategy',title='Optimized RSI Strategy - Buy The Dips (by Coinrule)', overlay=true, initial_capital = 1000, default_qty_type = strategy.percent_of_equity, default_qty_type = strategy.percent_of_equity, default_qty_value = 30, commission_type=strategy.commission.percent, commission_value=0.1) //Backtest dates fromMonth = input(defval = 1, title = "From Month", type = input.integer, minval = 1, maxval = 12) fromDay = input(defval = 1, title = "From Day", type = input.integer, minval = 1, maxval = 31) fromYear = input(defval = 2020, title = "From Year", type = input.integer, minval = 1970) thruMonth = input(defval = 1, title = "Thru Month", type = input.integer, minval = 1, maxval = 12) thruDay = input(defval = 1, title = "Thru Day", type = input.integer, minval = 1, maxval = 31) thruYear = input(defval = 2112, title = "Thru Year", type = input.integer, minval = 1970) showDate = input(defval = true, title = "Show Date Range", type = input.bool) start = timestamp(fromYear, fromMonth, fromDay, 00, 00) // backtest start window finish = timestamp(thruYear, thruMonth, thruDay, 23, 59) // backtest finish window window() => true // create function "within window of time" // RSI inputs and calculations lengthRSI = (14) RSI = rsi(close, lengthRSI) RSI_entry = input(35, title = 'RSI Entry', minval=1) RSI_exit = input(65, title = 'RSI Close', minval=1) //Calculate Moving Averages movingaverage_signal = sma(close, input(100)) //Entry strategy.entry(id="long", long = true, when = RSI< RSI_entry and close < movingaverage_signal and window()) //Exit //RSI strategy.close("long", when = RSI > RSI_exit and window()) plot (movingaverage_signal)