Chiến lược giao dịch lưới phục hồi quá bán chỉ số lớn theo xu hướng sóng

DCA EMA SMA
Ngày tạo: 2024-04-25 17:13:39 sửa đổi lần cuối: 2024-04-25 17:13:39
sao chép: 3 Số nhấp chuột: 898
1
tập trung vào
1617
Người theo dõi

Chiến lược giao dịch lưới phục hồi quá bán chỉ số lớn theo xu hướng sóng

Tổng quan

Chiến lược này dựa trên chỉ số Wavetrend, bằng cách thiết lập nhiều mức bán và mua quá mức, tạo vị trí nhiều đầu khi giá chạm các mức này và kiếm lợi nhuận khi giá bật lên mức mua quá mức. Đây là một chiến lược giao dịch lưới, nhằm mục đích nắm bắt sự phục hồi vượt quá thị trường, áp dụng cho các loại tiền kỹ thuật số như Bitcoin và Solana trong chu kỳ 15 phút.

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

  1. Tính hai đường của chỉ số Wavetrend, một là giá trị nguyên thủy ((wt1)) và một là giá trị mịn ((wt2)).
  2. Thiết lập nhiều mức bán tháo (oslevel1 ~ 8) và mức mua tháo (Oblevel1 ~ 5)
  3. Khi wt1 và wt2 cùng lúc ở dưới một mức bán tháo nhất định, và wt1 ở trên wt2, mở nhiều vị trí đầu. Càng thấp cấp độ, mở vị trí càng quyết liệt hơn.
  4. Khi wt1 và wt2 cùng lúc cao hơn mức mua quá mức 1 và wt1 dưới wt2, xóa 70% vị trí đa đầu.
  5. Lặp lại các bước 3 và 4 để tạo ra một hệ thống giao dịch lưới.

Lợi thế chiến lược

  1. Lấy một sự phục hồi vượt mức giá: Lấy lợi nhuận từ sự phục hồi bằng cách thiết lập nhiều mức bán tháo, mở vị trí sau khi giá giảm mạnh.
  2. Xây dựng kho hàng loạt, kiểm soát rủi ro: Xây dựng kho hàng loạt theo cấp độ bán tháo, mức thấp hơn thì trọng lượng của kho càng lớn, có thể kiểm soát rủi ro tốt hơn.
  3. Tự động dừng: Tự động xóa hầu hết các vị trí khi giá tăng trở lại khu vực mua quá mức, khóa lợi nhuận
  4. Các tham số linh hoạt: Mức độ bán quá mức và mua quá mức có thể được điều chỉnh theo đặc điểm thị trường và sở thích cá nhân, thích nghi với các loại giao dịch và chu kỳ khác nhau.

Rủi ro chiến lược

  1. Rủi ro sụp đổ: Nếu giá tiếp tục giảm, nó có thể gây ra các tín hiệu mở bán quá mức, có thể dẫn đến việc đóng các vị trí trọng.
  2. Rủi ro thị trường rung động: Nếu giá liên tục rung động trong khu vực bán tháo, có thể dẫn đến việc mở nhiều lần và không thể dừng lại, do đó làm suy yếu hiệu quả chiến lược.
  3. Rủi ro tham số: Cài đặt tham số khác nhau có ảnh hưởng lớn đến hiệu suất chiến lược, cần tối ưu hóa dựa trên phản hồi và kinh nghiệm, nếu không có thể gây thiệt hại.

Hướng tối ưu hóa chiến lược

  1. Thêm bộ lọc xu hướng: Trước khi mở vị trí, hãy đánh giá xu hướng lớn có tăng hay không và tránh mở vị trí trong xu hướng giảm.
  2. Quản lý vị trí tối ưu hóa: Điều chỉnh kích thước vị trí mở theo khoảng cách từ mức bán tháo.
  3. Động lực dừng: Động lực điều chỉnh mức dừng dựa trên tỷ lệ lợi nhuận của vị trí, thay vì tỷ lệ cố định.
  4. Thêm dừng: thiết lập dừng cố định hoặc theo dõi, kiểm soát tổn thất tối đa cho mỗi giao dịch.

Tóm tắt

Chiến lược giao dịch lưới phản hồi của Wavetrend là một chiến lược định lượng dựa trên tín hiệu mua bán quá mức, cố gắng nắm bắt tình hình phản hồi sau khi vượt quá mức giá, lấy lợi nhuận từ chênh lệch giá bằng cách xây dựng vị trí và dừng tự động. Ưu điểm của chiến lược này là khả năng thích ứng mạnh mẽ, có thể điều chỉnh tham số một cách linh hoạt, nhưng cũng có nguy cơ tiếp tục giảm thị trường, thiết lập tham số không đúng cách.

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

//@version=5
// © And Isaac, all rights reserved. If there is any piracy, please call the police immediately. 

strategy(title='wavetrend',shorttitle='DCA-High win rate quantitative trading')
n1 = input(40,'channel length')
n2 = input(60,'average length')
Oblevel1 = input(40,'over bought level 1')
Oblevel2 = input(50,'over bought level 1')
Oblevel3 = input(70,'over bought level 1')
Oblevel4 = input(80,'over bought level 1')
Oblevel5 = input(100,'over bought level 2')
oslevel1 = input(-40,'over sold level 1')
oslevel2 = input(-45,'over sold level 1')
oslevel3 = input(-50,'over sold level 1')
oslevel4 = input(-55,'over sold level 1')
oslevel5 = input(-65,'over sold level 1')
oslevel6 = input(-75,'over sold level 1')
oslevel7 = input(-85,'over sold level 1')
oslevel8 = input(-100,'over sold level 2')

ap = input(title="source",defval=hlc3)
esa =ta.ema(ap, n1)
d =ta.ema(math.abs(ap - esa),n1)
ci = (ap - esa)/ (0.015 * d)
tci = ta.ema(ci,n2)

wt1 = tci
wt2 = ta.sma(wt1, 4)

plot(0,color=color.new(#787b86, 0 ))
plot(Oblevel1, color=color.new(#89ff52, 53), linewidth = 2)
plot(oslevel1, color=color.new(#89ff52, 53), linewidth = 2)
plot(oslevel2, color=color.new(#89ff52, 53), linewidth = 2)
plot(oslevel3, color=color.new(#89ff52, 53), linewidth = 2)
plot(oslevel4, color=color.new(#89ff52, 53), linewidth = 2)
plot(oslevel5, color=color.new(#89ff52, 53), linewidth = 2)
plot(oslevel6, color=color.new(#89ff52, 53), linewidth = 2)
plot(oslevel7, color=color.new(#89ff52, 53), linewidth = 2)
plot(oslevel8, color=color.new(#89ff52, 53), linewidth = 2)
plot(oslevel2, color=color.new(#89ff52, 53), linewidth = 2)
plot(wt1, color=color.new(#ff5252,0))
plot(wt2, color=color.new(#ffffff,0))
plot(wt1 - wt2, color=color.new(#00bcd4, 30),style=plot.style_area)

plot(ta.cross(wt1, wt2) ? wt2 : na, color=color.new(#ff5252,0) , style=plot.style_circles, linewidth=4 )

// barcolor(cross(wt1, wt2) ? (wt2 - wt1 > 0 ? aqua : yellow) : na)
barcolor(ta.cross(wt1, wt2) ? (wt2 - wt1 > 0 ? color.new(#ffffff,0) : color.new(#89ff52, 53)) : na)

/////////////
Long1 = wt2 < oslevel1 and wt1 < oslevel1 and wt1>wt2 and wt2 > oslevel3 and wt1>oslevel3
Long5 = wt2 < oslevel5 and wt1 < oslevel5 and wt1>wt2 and wt2 > oslevel6 and wt1>oslevel6

Long7 = wt2 < oslevel7 and wt1 < oslevel7 and wt1>wt2 and wt2 > oslevel8 and wt1>oslevel8
Long8 = wt2 < oslevel8 and wt1 < oslevel8 and wt1>wt2
LS1 = wt2 > Oblevel1 and wt1 > Oblevel1 and wt1<wt2



if Long1
    strategy.entry("L",strategy.long,comment = "做多1")


if Long5
    strategy.entry("L",strategy.long,comment = "做5")

if Long7
    strategy.entry("L",strategy.long,comment = "做多7")
if Long8
    strategy.entry("L",strategy.long,comment = "做多8")
if LS1
    strategy.close("L", qty_percent = 70,comment = "平多")