
Chiến lược phá vỡ độ cứng là một chiến lược phá vỡ dựa trên chỉ số độ cứng của giá. Nó đánh giá độ cứng của giá bằng cách tính toán số lần giá tháo gỡ phá vỡ đường đua trong một chu kỳ nhất định. Khi chỉ số độ cứng vượt quá ngưỡng thiết lập, đánh giá thị trường sắp phá vỡ và thực hiện giao dịch mua; Khi chỉ số độ cứng thấp hơn ngưỡng, đánh giá thị trường sắp giảm và thực hiện giao dịch bán.
Tính trung bình và chênh lệch tiêu chuẩn: Đầu tiên tính trung bình di chuyển đơn giản của n chu kỳ làm chuẩn trên đường ray, sau đó tính giá gấp 0,2 lần chênh lệch tiêu chuẩn làm đệm dưới đường ray.
Tính toán chỉ số độ cứng: Tính toán giá đóng cửa trong chu kỳ m cao hơn số ngày trên đường ray, chia cho m có giá trị 0-100 và sau đó bằng n chu kỳ EMA mịn, có giá trị độ cứng cuối cùng, biểu thị xác suất giá phá vỡ đường ray.
So sánh độ cứng với ngưỡng: Khi chỉ số độ cứng vượt qua ngưỡng thiết lập, cho thấy khả năng phá vỡ tăng lên, tạo ra tín hiệu mua; Khi chỉ số độ cứng vượt qua ngưỡng, cho thấy khả năng phá vỡ giảm xuống, tạo ra tín hiệu bán.
Tham gia và ra khỏi thị trường: mua khi giá đóng cửa phá vỡ đường ray, bán khi phá vỡ thất bại bắt đầu giảm.
Lấy thời gian đột phá: relativel có thể xác định một cách đáng tin cậy hơn liệu xu hướng có sắp xảy ra đột phá hoặc điều chỉnh lại thời gian, do đó có thể tham gia sớm hơn.
Giao diện giữa phá vỡ và điều chỉnh: Chiến lược này sử dụng cả phá vỡ và lùi của chỉ số cứng để nắm bắt cơ hội làm nhiều và làm ít.
Tính linh hoạt của tham số: Người dùng có thể điều chỉnh các tham số như chiều dài đường trung bình, chu kỳ cứng và giá trị giảm theo thị trường để thích ứng với các chu kỳ và đặc điểm của thị trường khác nhau.
Đơn giản thực hiện: Chỉ sử dụng chỉ số cứng và so sánh giá trị rào, không có logic phức tạp, thực hiện mã đơn giản hơn.
Rủi ro phá vỡ thất bại: Khi độ cứng vượt quá mức giảm giá, không hoàn toàn đảm bảo giá sẽ phá vỡ đường ray, có một số rủi ro phá vỡ giả.
Rủi ro về phạm vi điều chỉnh: Không thể dự đoán phạm vi và vị trí điều chỉnh cụ thể khi làm trống, có nguy cơ mất mát quá nhiều.
Rủi ro tối ưu hóa tham số: Các tham số tham chiếu không thể thích ứng hoàn toàn với sự thay đổi của thị trường, cần phải liên tục được thử nghiệm và tối ưu hóa theo tình hình thực tế.
Rủi ro giao dịch thường xuyên: Chiến lược này giao dịch với tần suất cao, làm tăng chi phí giao dịch và mất điểm trượt.
Các tham số tối ưu hóa: Bạn có thể thử nghiệm các thiết lập tham số trong các thị trường khác nhau để tìm các tham số kết hợp tốt nhất. Ví dụ: tăng chiều dài đường trung bình để giảm tần suất giao dịch.
Thêm Stop Loss: Thiết lập logic Stop Loss hợp lý để kiểm soát tổn thất đơn lẻ. Bạn có thể thiết lập điểm Stop Loss theoatr.
Kết hợp với các chỉ số khác: Các chỉ số như MACD, KD và các chỉ số khác có thể được thêm vào để xác định điểm vào cụ thể, giảm khả năng phá vỡ giả.
Tối ưu hóa điều kiện ra sân: có thể xác định các đặc điểm của sự đảo ngược xu hướng dựa trên các chỉ số xu hướng, thiết lập các điều kiện ra sân chính xác hơn.
Chiến lược phá vỡ cứng là một chiến lược thực tế đơn giản hơn. Nó có thể dự đoán trước thời điểm giá có thể phá vỡ và trở lại, có giá trị thực tế. Nhưng chúng ta cũng cần chú ý đến vấn đề phá vỡ giả và phạm vi điều chỉnh trở lại, để khóa cơ hội giao dịch chính xác hơn bằng cách tối ưu hóa tham số và thêm các chỉ số kỹ thuật khác.
/*backtest
start: 2023-12-26 00:00:00
end: 2024-01-02 00:00:00
period: 3m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
// Copyright (c) 2020-present, JMOZ (1337.ltd)
// Copyright (c) 2018-present, Alex Orekhov (everget)
// Stiffness Indicator script may be freely distributed under the MIT license.
strategy("Stiffness Strategy", overlay=false, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_value=0.075)
maLength = input(title="Moving Average Length", minval=1, defval=100)
stiffLength = input(title="Stiffness Length", minval=1, defval=60)
stiffSmooth = input(title="Stiffness Smoothing Length", minval=1, defval=3)
threshold = input(title="Threshold", minval=1, defval=90)
highlightThresholdCrossovers = input(title="Highlight Threshold Crossovers ?", type=input.bool, defval=false)
bound = sma(close, maLength) - 0.2 * stdev(close, maLength)
sumAbove = sum(close > bound ? 1 : 0, stiffLength)
stiffness = ema(sumAbove * 100 / stiffLength, stiffSmooth)
long_cond = crossover(stiffness, threshold)
long_close = stiffness > threshold and falling(stiffness, 1)
short_cond = crossunder(stiffness, threshold) or stiffness < threshold and falling(stiffness, 1)
short_close = stiffness < threshold and rising(stiffness, 1)
strategy.entry("Long", strategy.long, when=long_cond)
strategy.close("Long", when=long_close)
strategy.entry("Short", strategy.short, when=short_cond)
strategy.close("Short", when=short_close)
transparent = color.new(color.white, 100)
bgColor = highlightThresholdCrossovers ? stiffness > threshold ? #0ebb23 : color.red : transparent
bgcolor(bgColor, transp=90)
plot(stiffness, title="Stiffness", style=plot.style_histogram, color=#f5c75e, transp=0)
plot(threshold, title="Threshold", color=color.red, transp=0)