Dựa trên chiến lược đột phá kênh năng động


Ngày tạo: 2024-02-27 15:15:07 sửa đổi lần cuối: 2024-02-27 15:15:07
sao chép: 0 Số nhấp chuột: 571
1
tập trung vào
1621
Người theo dõi

Dựa trên chiến lược đột phá kênh năng động

Tổng quan

Chiến lược này sử dụng chỉ số Keltner Channel, kết hợp với đường trung bình di chuyển, thiết lập giá mua và bán phá vỡ động, thực hiện các hoạt động phá vỡ mua và bán thấp. Chiến lược có thể tự động xác định cơ hội mua và bán phá vỡ kênh.

Nguyên tắc chiến lược

  1. Tính trung bình của kênh: sử dụng chỉ số trung bình di chuyển để tính giá trung bình
  2. Tính băng thông kênh: Tính băng thông kênh bằng cách sử dụng tần số thực hoặc trung bình tần số thực hoặc tần số giá
  3. Đường trên và đường dưới đường: băng thông đường trung tâm ± N lần
  4. Lệnh nhập: khi giá chạm đường ray trên, đặt giá mua phá vỡ, chờ phá vỡ; khi giá chạm đường ray dưới, đặt giá bán phá vỡ, chờ phá vỡ
  5. Lệnh xuất phát: dừng khi mua trở lại đường trung bình hoặc khi giá cao nhất vượt qua giá nhập; dừng khi bán trở lại đường trung bình hoặc khi giá thấp hơn giá nhập

Phân tích lợi thế

  1. Sử dụng các kênh động để nắm bắt nhanh chóng các thay đổi trong xu hướng thị trường
  2. Sử dụng đường trung tâm để xác định hướng đi của giá
  3. Thiết lập băng thông gấp N lần cho phép phạm vi đường dẫn hợp lý, tránh điều chỉnh vị trí thường xuyên
  4. Sử dụng các cơ chế đột phá, phù hợp với lý thuyết xu hướng, theo thời gian.
  5. Thiết lập các điều kiện dừng lỗ và kiểm soát rủi ro chặt chẽ

Phân tích rủi ro

  1. Lựa chọn phương pháp tính toán đường quỹ đạo sẽ ảnh hưởng đến hiệu quả phù hợp với phạm vi và giá của kênh
  2. Thiết lập n nhân quá lớn hoặc quá nhỏ sẽ ảnh hưởng đến lợi nhuận của chiến lược
  3. Các nhà giao dịch cho biết các giao dịch mua bán đột phá có thể tạo ra tín hiệu sai lệch và nên ngăn chặn nghiêm ngặt.

Hướng tối ưu hóa

  1. Thử các phương pháp khác nhau để tìm các tham số tốt nhất
  2. Kiểm tra các giá trị N khác nhau để tìm ra số nhân tối ưu
  3. Tăng cường đột phá để tránh tín hiệu sai
  4. Tối ưu hóa logic dừng lỗ, kiểm soát chặt chẽ lỗ đơn

Tóm tắt

Chiến lược này sử dụng khoa học hợp lý tổng thể, thông qua chỉ số kênh động để đánh giá xu hướng và hướng giá, đặt tham số hợp lý để bắt tín hiệu đột phá, thực hiện mua thấp và bán cao, và sau đó thu được lợi nhuận vượt trội. Đồng thời, chiến lược rủi ro được tối ưu hóa liên tục để có thể hoạt động ổn định trong nhiều thị trường.

Mã nguồn chiến lược
/*backtest
start: 2024-01-27 00:00:00
end: 2024-02-26 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy(title="Keltner Strategy", overlay=true)
length = input.int(20, minval=1)
mult = input.float(2.0, "Multiplier")
src = input(close, title="Source")
exp = input(true, "Use Exponential MA")
BandsStyle = input.string("Average True Range", options = ["Average True Range", "True Range", "Range"], title="Bands Style")
atrlength = input(10, "ATR Length")
esma(source, length)=>
	s = ta.sma(source, length)
	e = ta.ema(source, length)
	exp ? e : s
ma = esma(src, length)
rangema = BandsStyle == "True Range" ? ta.tr(true) : BandsStyle == "Average True Range" ? ta.atr(atrlength) : ta.rma(high - low, length)
upper = ma + rangema * mult
lower = ma - rangema * mult
crossUpper = ta.crossover(src, upper)
crossLower = ta.crossunder(src, lower)
bprice = 0.0
bprice := crossUpper ? high+syminfo.mintick : nz(bprice[1])
sprice = 0.0
sprice := crossLower ? low -syminfo.mintick : nz(sprice[1])
crossBcond = false
crossBcond := crossUpper ? true
     : na(crossBcond[1]) ? false : crossBcond[1]
crossScond = false
crossScond := crossLower ? true
     : na(crossScond[1]) ? false : crossScond[1]
cancelBcond = crossBcond and (src < ma or high >= bprice )
cancelScond = crossScond and (src > ma or low <= sprice )
if (cancelBcond)
	strategy.cancel("KltChLE")
if (crossUpper)
	strategy.entry("KltChLE", strategy.long, stop=bprice, comment="KltChLE")
if (cancelScond)
	strategy.cancel("KltChSE")
if (crossLower)
	strategy.entry("KltChSE", strategy.short, stop=sprice, comment="KltChSE")