描述
「價格突破了區間高點」這句話並不完整。它沒有說明是否存在區間震盪——在波動劇烈的市場中,每隔幾根K線就會出現一根寬K線突破前一個高點的情況——也沒有說明是否有人參與交易。 此軟體包需要同時滿足這兩個條件。突破前的窗口必須相對於其中點足夠窄,且突破柱的成交量必須超過該窗口平均成交量指定的倍數。這兩個測試都是無量綱的,因此只需一個校準後的組合即可適用於所有交易品種。每次呼叫(包括失敗呼叫)都會輸出視窗的窄度和成交量比率,因此即使策略從未觸發,也可以進行診斷,而無需猜測。 何時使用此功能 • 代理必須判斷區間突破是否有參與支撐。 • 你正在調試一個在震盪行情中持續觸發的突破策略。 • 你需要一個無量綱的緊緻度指標,以便在不同交易品種間進行比較。 在新聞驅動的缺口中,其優勢會大大降低,因為區間和成交量條件都已滿足,但行情已經完成。 本包裹特意不包含以下內容 這是一個框架版本,並非經過最佳化的生產版本。具體來說: • 無需設定部位大小、停損或止盈。突破入場需要同時設定這三項。 • 無需多視窗掃描。一個窗口,一次決策。 • 無需調整K線數量、成交量倍數或突破百分比。 • 程式碼中沒有預設閾值。 scripts/range_breakout.py 會拋出 PARAM_INCOMPLETE 異常,而不是回退到一個數值。這種靜默的預設值會讓你誤以為自己正在運行一個經過校準的系統,而實際上你運行的是別人的參數。 每一個決策邊界都是一個輸入。這就是整份合約。 決策合約 • 操作:條件 • 多頭:倒數第二根K線之前的n根K線收窄,且最後一條K線的收盤價超過其最高價的breakout_pct倍數,成交量也突破了倍數限制。 • 平頭:任何條件均不符合;failed_on 表示哪些條件不滿足。 回應包含 range_high、range_low、tightness、volume_ratio 和 failed_on 參數。當訊號有效時,failed_on 為空。 輸出方案 { "action": "flat", "price": 63110.0, "range_high": 62980.0, "range_low": 62400.0, "tightness": 0.00921, "volume_ratio": 1.31, "failed_on": "volume", "reason": "broke the range but relative volume 1.31 < 1.60" } 操作是唯一必須基於其進行分支的欄位。原因欄位僅供日誌記錄和代理程式向使用者回饋,請勿解析。 運行它 python3 scripts/range_breakout.py \ --params references/params-example.json \ --symbol BTC/USDT \ --interval 1h references/params-example.json 檔案包含一些整數,顯然是為了方便說明。它們的存在是為了確保命令能夠一次成功運行,並非因為它們本身是正確的。 進料位置狀態: python3 scripts/range_breakout.py --params my.json --state '{"avg_entry": 61250.5, "layers": 2}' 校準閾值 1. 盤整柱長度(consolidation_bars)-底部週期的長度。較長的視窗可以發現更罕見、更有意義的波動區間;較短的視窗則將該規則轉換為動量過濾器。以 1 小時為間隔,24 根柱線大致相當於一天,這是一個合理的初始假設,需要進行驗證,而非建議做法。 2. volume_ratio - 首先測量相對體積的經驗分佈。根據定義,中位數為 1.0,因此接近 1.0 的倍數幾乎沒有意義。 3. breakout_pct - 突破區間高點後的決斷程度。應以K線區間為基準,而非整數;小於K線波動幅度的突破不能算有效突破。 這三者相互影響:較窄的波動範圍需要較小的突破百分比才有意義。將它們放在一起進行網格分析,然後保留最近約 30% 的時間區塊,並在判斷收益之前檢查每個時間段內的訊號計數。 已知極限 • 緊縮度僅在突破前窗口進行測量,因此,即使價格區間在突破前擴大,其緊縮度仍以其平靜階段為準。 • 成交量取自與突破點相同的K線。如果資料來源只報告形成K線的部分成交量,則實際成交量會偏低-本模組會剔除形成K線,但其前一條K線在某些API中可能仍然不完整。 • 此規則只適用於做多。對稱突破機制尚未實現。 • 不處理缺口:高於區間的大幅開盤價同時滿足兩個條件。 免責聲明 這是一個用於研究和教育的決策框架。它並非投資建議、獲利聲明或回測結果。加密貨幣衍生性商品可能損失超過本金。您需對您選擇的參數以及您的執行人下的每一筆訂單負責。