
Chiến lược điều chỉnh lại phá vỡ là một chiến lược theo dõi xu hướng. Nguyên tắc cơ bản của nó là thực hiện thêm nhị phân khi giá cao nhất hoặc giá thấp nhất của một đường K trước khi phá vỡ, đặt lệnh dừng lỗ và để lợi nhuận tiếp tục hoạt động.
Chiến lược này chủ yếu xác định thời điểm Entry bằng cách đánh giá xem giá có phá vỡ mức giá cao nhất hoặc thấp nhất của một đường K trước đó hay không.
Nếu giá cao nhất của dòng K hiện tại cao hơn giá cao nhất của dòng K trước đó, sẽ phát ra một tín hiệu đa.
Nếu giá thấp nhất của dòng K hiện tại thấp hơn giá thấp nhất của dòng K trước đó, sẽ phát ra một tín hiệu trống.
Sau khi nhận được tín hiệu làm thêm, hãy vào ngay. Sau khi vào, thiết lập dừng là 50 điểm và dừng là 100 điểm.
Khi thua lỗ lớn hơn bằng số điểm dừng lỗ hoặc lợi nhuận lớn hơn bằng số điểm dừng.
Chiến lược này có những lợi thế sau:
Chiến lược này cũng có một số rủi ro:
Chiến lược này có thể được tiếp tục tối ưu hóa trong một số khía cạnh:
Tăng tính xác định hiệu quả của đợt phá vỡ giá, tránh đợt phá vỡ giả. Ví dụ, có thể thêm bộ lọc chỉ số và xác minh khối lượng giao dịch.
Tăng cơ chế phán đoán xu hướng, tránh rủi ro của thị trường. Các chỉ số xu hướng như trung bình di chuyển có thể được thêm vào.
Tối ưu hóa các chiến lược dừng lỗ, như theo dõi dừng lỗ, dừng lỗ sau lợi nhuận, để tối đa hóa lợi nhuận.
Tối ưu hóa tham số để tìm điểm dừng lỗ tốt nhất.
Chiến lược điều chỉnh lại đột phá này nói chung là đơn giản về mặt logic, dễ thực hiện, có khả năng bắt đầu xu hướng hiệu quả, có khả năng kiểm soát lùi và rủi ro mạnh mẽ. Bằng cách tối ưu hóa hơn nữa, nó có thể trở thành một chiến lược định lượng rất hữu ích.
/*backtest
start: 2023-01-25 00:00:00
end: 2024-01-31 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Breakout Strategy", shorttitle="BS", overlay=true)
// Input for take profit and stop loss in pips
tp_pips = input(50, title="Take Profit (in pips)")
sl_pips = input(100, title="Stop Loss (in pips)")
// Calculate take profit and stop loss levels in points
tp_level = tp_pips * syminfo.mintick
sl_level = sl_pips * syminfo.mintick
// Function to check if a breakout has occurred
breakout(high_or_low) =>
high_or_low > request.security(syminfo.tickerid, "D", high[1]) ? true : false
// Buy condition
buy_condition = breakout(high)
strategy.entry("Buy", strategy.long, when=buy_condition)
// Sell condition
sell_condition = breakout(low)
strategy.entry("Sell", strategy.short, when=sell_condition)
// Take profit and stop loss conditions for Buy
tp_buy_condition = strategy.position_avg_price + tp_level
sl_buy_condition = strategy.position_avg_price - sl_level
strategy.exit("Take Profit/Close Buy", from_entry="Buy", profit=tp_buy_condition, loss=sl_buy_condition)
// Take profit and stop loss conditions for Sell
tp_sell_condition = strategy.position_avg_price - tp_level
sl_sell_condition = strategy.position_avg_price + sl_level
strategy.exit("Take Profit/Close Sell", from_entry="Sell", profit=tp_sell_condition, loss=sl_sell_condition)