描述
RSI最常見的誤解是將極端值視為事件。 RSI低於30可能在下跌趨勢中持續數十個交易日,而基於此買入的策略會在市場下跌期間持續加倉,只要這種狀態持續下去。 此軟體包需要一個轉換條件:前一個 RSI 值必須位於極值區域內,而當前值必須位於極值區域外。這項條件徹底消除了重複進入故障模式,使每個訊號都代表著真正的狀態變化。 RSI 本身採用的是 Wilder 平滑法,這是其原始定義——與某些庫提供的簡單平均法不同,因此在相同設定下,圖表可能會存在細微的數值差異。 何時使用此功能 • 交易者必須判斷超賣訊號是否已達到可操作的程度。 • 你需要一個反轉入場點,該入場點不會在同一極端情況下觸發兩次。 • 你正在診斷一種均值回歸策略,該策略會不斷追加持股,從而延續趨勢。 不適合強勁趨勢的工具:在較慢的時間框架內,趨勢可能會使 RSI 長時間保持在超買線之上,因此永遠不會觸發退出訊號。 本包裹特意不包含以下內容 這是一個框架版本,並非經過最佳化的生產版本。具體來說: • 無需設定部位大小或停損。反轉入場需要一個明確的失效位,該位由您自行定義。 • 無法進行真正的背離偵測。儘管名稱如此,但該策略實現的是區域轉換規則,而非價格/RSI波動比較。背離檢測需要識別波動,這是一個獨立且更複雜的問題。 • 無法調整週期或區域水平。 • 程式碼中沒有預設閾值。 scripts/rsi_zone_reversal.py 會拋出 PARAM_INCOMPLETE 異常,而不是回退到一個數值。這種靜默的預設值會讓你誤以為自己正在運行一個校準過的系統,而實際上你運行的是別人的參數。 每一個決策邊界都是一個輸入。這就是整份合約。 決策合約 • 操作:條件 • 做多:前一個 RSI 值低於超賣線,目前 RSI 值等於或高於超賣線 • 平倉:前一個 RSI 值高於超買線,當前 RSI 值等於或低於超買線 • 橫盤:無區域轉換 回應包含 rsi_now 和 rsi_prev,因此轉換(而不僅僅是等級)會在您的日誌中顯示。 輸出方案 { "action": "long", "price": 61840.0, "rsi_now": 29.4, "rsi_prev": 27.1, "oversold": 28.0, "overbought": 72.0, "reason": "RSI recovered out of oversold (27.1 -> 29.4)" } 操作是唯一必須基於其進行分支的欄位。原因欄位僅供日誌記錄和代理程式向使用者回饋,請勿解析。 運行它 python3 scripts/rsi_zone_reversal.py \ --params references/params-example.json \ --symbol BTC/USDT \ --interval 4h references/params-example.json 檔案包含一些整數,顯然是為了方便說明。它們的存在是為了確保命令能夠一次成功運行,並非因為它們本身是正確的。 進料位置狀態: python3 scripts/rsi_zone_reversal.py --params my.json --state '{"avg_entry": 61250.5, "layers": 2}' 校準閾值 1. rsi_period-回溯週期。 Wilder平滑法會使數值反應緩慢;較短的週期會導致RSI值在區間內持續波動,進而使區間失去意義。 2. 超賣/超買-要用數據衡量,不要猜測。計算你所關注的交易品種和時間週期內RSI的經驗分佈,然後將區域邊界放置在能夠產生實際可操作訊號頻率的百分位數上。對稱的30/70只是一種約定俗成的方案,並非最優方案。 3. 區域值應遠離 0 和 100。寬區域幾乎不會產生過渡效果;非常窄的區域會在雜訊上產生過渡效果。 保留最近約30%的K線。統計每個K線段出現的訊號次數-一年內觸發兩次的規則無法校準,純屬巧合。 已知極限 • 至少需要 rsi_period + 2 個已收盤柱才能產生任何轉換訊號;歷史資料較少時,RSI 指標會傳回平坦狀態並給予診斷資訊。 • 更平滑的處理方式意味著第一個週期的值帶有固定的種子偏差。在短時間內,這會導致 RSI 水平線發生偏移。 • 沒有趨勢濾鏡。在持續的下跌趨勢中,超賣轉換訊號會不斷觸發,每次都會失效;強烈建議配合狀態過濾器使用,具體操作由呼叫者自行決定。 • 正在形成的柱線會被排除在外,因此決策不會重繪。 免責聲明 這是一個用於研究和教育的決策框架。它並非投資建議、獲利聲明或回測結果。加密貨幣衍生性商品可能損失超過本金。您需對您選擇的參數以及您的執行人下的每一筆訂單負責。