
Chiến lược này dựa trên nguyên tắc phá vỡ kênh và sử dụng giao thoa ngang nhau như một tín hiệu thoát, áp dụng cho giao dịch tương lai và chỉ số.
Tính toán giá cao nhất và giá thấp nhất trong một chu kỳ nhất định, xây dựng kênh lên xuống.
Khi giá vượt qua kênh trên, hãy làm nhiều hơn; khi giá vượt qua kênh dưới, hãy làm trống.
Tính trung bình SMA của hai giai đoạn nhanh và chậm.
Khi làm nhiều, SMA thời gian nhanh trên SMA thời gian chậm, bán nhiều vị trí; khi làm trống, SMA thời gian nhanh dưới SMA thời gian chậm, bán trống.
Kết hợp với các kênh và hệ thống thống nhất có thể làm tăng tỷ lệ lợi nhuận.
Sử dụng kênh phán đoán vòng quay Ankel giai đoạn nhất định, sử dụng đường cân bằng phán đoán xu hướng kết thúc.
Bộ lọc đồng nhất có thể tránh được sự phân chia, giảm các giao dịch không cần thiết.
Các tham số phạm vi kênh có thể được điều chỉnh để phù hợp với các thị trường khác nhau về chu kỳ và tỷ lệ biến động.
Không đúng cách thiết lập phạm vi, có thể làm mất cơ hội đột phá hoặc tạo ra nhiều đột phá giả.
Các tham số đường trung bình được thiết lập không đúng, có thể thoát khỏi vị trí quá sớm hoặc quá muộn.
Cần xem xét quản lý quy mô vị trí hợp lý để tránh tổn thất đơn lẻ quá lớn.
Cần chú ý đến hiệu quả sau khi phá vỡ, để tránh bị đánh bại.
Kiểm tra lợi nhuận và tỷ lệ chiến lược dưới các tham số khác nhau, tối ưu hóa phạm vi kênh và chu kỳ trung bình.
Kết hợp các chỉ số xu hướng để lọc các tín hiệu đột phá, tăng tỷ lệ đột phá thành công.
Thêm cơ chế quản lý vị trí, chẳng hạn như cổ phần cố định, Martingale.
Tăng các cơ chế ngăn chặn để kiểm soát tổn thất đơn lẻ.
Chiến lược này sử dụng các kênh để đánh giá biến động và điểm nóng của thị trường, đánh giá xu hướng kết thúc, thiết lập tham số hợp lý có thể đạt được lợi nhuận ổn định trong thị trường mạnh. Tuy nhiên, cần phải ngăn chặn tổn thất có thể do whipsaw, đồng thời tối ưu hóa vị trí và quản lý rủi ro rất quan trọng.
/*backtest
start: 2023-10-01 00:00:00
end: 2023-10-13 00:00:00
period: 1m
basePeriod: 1m
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/
// © anshuanshu333
//@version=4
// strategy("ChBrkOutStrategySMA", overlay=true, initial_capital = 200000)
length = input(title="Length", type=input.integer, minval=1, maxval=1000, defval=7)
fastSMA = sma(close,9)
slowSMA = sma(close,21)
upBound = highest(high, length)
downBound = lowest(low, length)
boundLongEntry = ((close >= upBound) or (high >= upBound)) and fastSMA>slowSMA and (close > open)
boundShortEntry =((close <= downBound) or (low <= downBound)) and fastSMA<slowSMA and (close <open)
u=plot(upBound, title = "Upper Bound",color=color.blue, linewidth=1)
l=plot(downBound, title = "Lower Bound",color=color.red, linewidth=1)
plot(fastSMA,title = "Fast SMA", color = color.red, linewidth =2)
plot(slowSMA,title = "Slow SMA" ,color = color.green, linewidth =1)
fill(u,l, transp=95)
plot(avg(upBound,downBound), title = "Avg", color=color.gray,linewidth =1)
if (boundLongEntry )
strategy.entry("LE", long = true)
if (boundShortEntry)
strategy.entry("SE", long = false)
SmaLongExit = crossunder(fastSMA,slowSMA)
SmaShortExit = crossover(fastSMA,slowSMA)
//Close TRades
if (strategy.position_size > 0)
strategy.close(id="LE",when= SmaLongExit)
if (strategy.position_size < 0)
strategy.close(id="SE",when= SmaShortExit)