
Chiến lược theo dõi xu hướng đường ngang dựa trên biểu đồ đường ngang của chỉ số phổ biến. Chiến lược này sử dụng đường xoay của biểu đồ đường ngang để phát tín hiệu mua và bán trước, để thực hiện việc bắt đầu xu hướng. Đồng thời, chiến lược này cũng kết hợp phán đoán xu hướng đường ngang, xác nhận nhiều lớp, tránh phá vỡ giả.
Chiến lược này được xây dựng dựa trên những điểm sau:
Xây dựng một bản đồ đám mây bằng đường chuyển đổi và đường chuẩn và vẽ bản đồ đám mây với độ di chuyển 26 chu kỳ.
Một tín hiệu mua được phát ra khi giá đóng cửa phá vỡ đường dẫn lên của biểu đồ đám mây; một tín hiệu bán được phát ra khi giá đóng cửa phá vỡ đường dẫn xuống của biểu đồ đám mây.
Để lọc phá vỡ giả mạo, yêu cầu giá đóng cửa hiện tại phá vỡ cùng một lúc các giá trị tối đa và tối thiểu của đường chuyển đổi và đường chuẩn.
Đường dừng lỗ được thiết lập là 5% giá nhập cảnh và có thể tắt.
Thông qua việc lọc nhiều lần như vậy, bạn có thể xác định hiệu quả các điểm thay đổi xu hướng và bắt kịp các cơ hội giao dịch mới. Trong khi đó, việc lọc phá vỡ nghiêm ngặt cũng có thể làm giảm phát ra các tín hiệu sai.
Chiến lược này có một số lợi thế:
Chiến lược này cũng có một số rủi ro:
Bạn có thể giảm thiểu rủi ro bằng cách:
Chiến lược này cũng có thể được tối ưu hóa theo các khía cạnh sau:
Thêm cơ chế quản lý vị trí, thông qua các toán tử như:strategy.position_sizeKiểm soát tỷ lệ xây nhà kho.
Thêm bộ lọc giống, thông quasecurity()Lưu trữ các loại lọc, tự động nhận diện xu hướng.
Thêm chiến lược dừng lỗ, thiết lập dừng di động hoặc dừng một phần để kiểm soát rủi ro hơn nữa.
Kết hợp với các chỉ số khác như đường Brin, RSI, v.v., xây dựng hệ thống giao dịch đa chỉ số để cải thiện chất lượng tín hiệu.
Ứng dụng phương pháp học máy để đánh giá độ tin cậy của tín hiệu mua bán thông qua đào tạo, điều chỉnh số lượng đơn đặt hàng động.
Chiến lược theo dõi xu hướng đường thẳng của một đám mây bằng cách đánh giá trước xu hướng của một bản đồ đám mây, sau đó kết hợp các bộ lọc đa lớp đường thẳng, có thể xác định hiệu quả các cơ hội giao dịch chất lượng cao. Chiến lược này khá vững chắc, có không gian tối ưu hóa lớn và có thể được áp dụng rộng rãi cho giao dịch thực.
/*backtest
start: 2022-12-05 00:00:00
end: 2023-12-11 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © QuantCT
//@version=4
strategy("Ichimoku Cloud Strategy Idea",
shorttitle="Ichimoku",
overlay=true,
pyramiding=0,
default_qty_type=strategy.percent_of_equity,
default_qty_value=99,
initial_capital=1000,
commission_type=strategy.commission.percent,
commission_value=0.1)
// ____ Inputs
conversion_period = input(9, minval=1, title="Conversion Line Period")
base_period = input(26, minval=1, title="Base Line Period")
lagging_span2_period = input(52, minval=1, title="Lagging Span 2 Period")
displacement = input(26, minval=1, title="Displacement")
long_only = input(title="Long Only", defval=false)
slp = input(title="Stop-loss (%)", minval=1.0, maxval=25.0, defval=5.0)
use_sl = input(title="Use Stop-Loss", defval=false)
// ____ Logic
donchian(len) => avg(lowest(len), highest(len))
conversion_line = donchian(conversion_period)
base_line = donchian(base_period)
lead_line1 = avg(conversion_line, base_line)
lead_line2 = donchian(lagging_span2_period)
chikou = close
chikou_free_long = close > high[displacement] and close > max(lead_line1[2 * displacement], lead_line2[2 * displacement])
enter_long = chikou_free_long and close > max(lead_line1[displacement], lead_line2[displacement])
exit_long = close < lead_line1[displacement] or close < lead_line2[displacement]
chikou_free_short = close < low[displacement] and close < min(lead_line1[2 * displacement], lead_line2[2 * displacement])
enter_short = chikou_free_short and close < min(lead_line1[displacement], lead_line2[displacement])
exit_short = close > lead_line1[displacement] or close > lead_line2[displacement]
strategy.entry("Long", strategy.long, when=enter_long)
strategy.close("Long", when=exit_long)
if (not long_only)
strategy.entry("Short", strategy.short, when=enter_short)
strategy.close("Short", when=exit_short)
// ____ SL
sl_long = strategy.position_avg_price * (1- (slp/100))
sl_short = strategy.position_avg_price * (1 + (slp/100))
if (use_sl)
strategy.exit(id="SL", from_entry="Long", stop=sl_long)
strategy.exit(id="SL", from_entry="Short", stop=sl_short)
// ____ Plots
colors =
enter_long ? #27D600 :
enter_short ? #E30202 :
color.orange
p1 = plot(lead_line1, offset = displacement, color=colors,
title="Lead 1")
p2 = plot(lead_line2, offset = displacement, color=colors,
title="Lead 2")
fill(p1, p2, color = colors)
plot(chikou, offset = -displacement, color=color.blue)