
Chiến lược giao dịch chiết khấu ngược kênh Đồng Sơn là một chiến lược giao dịch định lượng dựa trên các chỉ số kênh Đồng Sơn. Chiến lược này kết hợp dừng lỗ và theo dõi dừng lỗ để quản lý rủi ro.
Khi giá chạm đến biên giới trên và dưới của kênh Tang Shou, mở vị trí làm nhiều thời gian, đồng thời thiết lập dừng lỗ và dừng. Nếu dừng lỗ xảy ra, hãy tạm dừng mở vị trí mới sau một thời gian nhất định. Trong thời gian giữ vị trí, hãy khóa lợi nhuận bằng cách theo dõi dừng lỗ.
Chiến lược này sử dụng chỉ số đường Tang Shou 20 ngày, bao gồm đường lên, đường xuống và đường giữa.
Khi giá chạm đường xuống, mở nhiều vị trí; khi giá chạm đường lên, mở vị trí trống.
Nếu trước đó giao dịch đồng chiều bị dừng, hãy tạm dừng một chu kỳ (ví dụ như 3 đường K), tránh theo dõi con rồng.
Cài đặt stop loss và take profit theo tỷ lệ cố định và điều chỉnh động mỗi khi mở vị trí.
Take profit được tính dựa trên tỷ lệ lợi nhuận rủi ro (ví dụ: 2) và tỷ lệ lỗ dừng (ví dụ: 22%).
Khởi động lệnh dừng theo dõi trong giai đoạn nắm giữ:
Khi giữ nhiều vị thế, nếu giá vượt qua đường trung tâm, điều chỉnh điểm dừng đến giữa giá nhập và giá đường trung tâm.
Trong khi đó, các cầu thủ khác cũng có thể thay đổi vị trí của mình khi đi qua đường giữa.
Sử dụng các chỉ số của kênh Đường Sơn, có một khả năng nắm bắt các hành động đột phá.
Các nhà giao dịch đã đưa ra một số giải pháp khác cho các giao dịch này, bao gồm:
Dừng lỗ tạm dừng tránh đuổi theo con rồng, theo dõi dừng lỗ khóa lợi nhuận, có quản lý rủi ro tốt.
Quy tắc chiến lược rõ ràng, dễ hiểu và dễ thực hiện.
Đường Thanh Sơn là một chỉ số xu hướng, dễ bị phá vỡ giả trong việc cân bằng tình hình thị trường, có thể dẫn đến tổn thất.
Hạn chế cố định dễ bị mắc kẹt, nên điều chỉnh phạm vi hạn chế thích hợp.
Đánh giá độ biến động của stop loss có thể dễ dàng bị phá vỡ, nên cân bằng tần số điều chỉnh.
Thiết lập tham số không đúng cũng ảnh hưởng đến hiệu suất của chiến lược.
Chiều dài của đường Thanh Sơn có thể được tối ưu hóa để tìm kiếm sự kết hợp tham số tốt nhất.
Thêm mô-đun quản lý vị trí, chẳng hạn như định kỳ đặt lại chu kỳ tạm dừng.
Kết hợp các chỉ số khác để đánh giá xu hướng, tránh phá vỡ xu hướng giả.
Khởi động dừng động, điều chỉnh vị trí dừng động trong thời gian thực.
Chiến lược giao dịch giảm áp lực kênh ngược của Tang Shou tích hợp nhiều chức năng như đánh giá xu hướng, quản lý rủi ro và các yếu tố cơ bản. Bằng cách tiếp tục tối ưu hóa các tham số và kết hợp với các chỉ số hoặc mô hình khác, bạn có thể tăng cường tính mạnh mẽ của chiến lược và tăng lợi nhuận. Chiến lược này phù hợp cho các nhà đầu tư có kinh nghiệm giao dịch.
/*backtest
start: 2023-01-17 00:00:00
end: 2024-01-23 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("Contrarian Donchian Channel Strategy - Touch Entry with Post-SL Pause and Trailing Stop", overlay=true, default_qty_value=0.01, default_qty_type=strategy.percent_of_equity)
// Inputs
length = input(20, minval=1, title="Donchian Channel Length")
riskRewardRatio = input(2, title="Risk/Reward Ratio")
stopLossPercent = input(0.22, title="Stop Loss (%)") / 100
pauseCandles = input(3, minval=1, title="Pause After SL (Candles)")
// Donchian Channel Calculation
upper = highest(high, length)
lower = lowest(low, length)
centerline = (upper + lower) / 2 // Calculating the Centerline
// Plotting Donchian Channel and Centerline
plot(upper, color=color.red, title="Upper Band")
plot(lower, color=color.green, title="Lower Band")
plot(centerline, color=color.blue, title="Centerline")
// Tracking Stop Loss Hits and Pause
var longSLHitBar = 0
var shortSLHitBar = 0
var int lastTradeDirection = 0 // 1 for long, -1 for short, 0 for none
// Update SL Hit Bars
if (strategy.position_size[1] > 0 and strategy.position_size == 0)
if (close[1] < strategy.position_avg_price[1])
longSLHitBar := bar_index
lastTradeDirection := 1
if (strategy.position_size[1] < 0 and strategy.position_size == 0)
if (close[1] > strategy.position_avg_price[1])
shortSLHitBar := bar_index
lastTradeDirection := -1
// Entry Conditions - Trigger on touch
longCondition = (low <= lower) and (bar_index - longSLHitBar > pauseCandles or lastTradeDirection != 1)
shortCondition = (high >= upper) and (bar_index - shortSLHitBar > pauseCandles or lastTradeDirection != -1)
// Trade Execution
if (longCondition)
strategy.entry("Long", strategy.long)
if (shortCondition)
strategy.entry("Short", strategy.short)
// Initial Stop Loss and Take Profit Calculation
stopLoss = strategy.position_avg_price * (1 - stopLossPercent)
takeProfit = strategy.position_avg_price * (1 + stopLossPercent * riskRewardRatio)
// Trailing Stop Loss Logic
var float trailingStopLong = na
var float trailingStopShort = na
// Update Trailing Stop for Long Position
if (strategy.position_size > 0)
if (close > centerline)
trailingStopLong := (strategy.position_avg_price + centerline) / 2
stopLoss := na(trailingStopLong) ? stopLoss : max(trailingStopLong, stopLoss)
// Update Trailing Stop for Short Position
if (strategy.position_size < 0)
if (close < centerline)
trailingStopShort := (strategy.position_avg_price + centerline) / 2
stopLoss := na(trailingStopShort) ? stopLoss : min(trailingStopShort, stopLoss)
// Setting Stop Loss and Take Profit for each trade
strategy.exit("SL_TP_Long", "Long", stop=stopLoss, limit=takeProfit)
strategy.exit("SL_TP_Short", "Short", stop=stopLoss, limit=takeProfit)