Mua Dips - MA200 Chiến lược tối ưu

Tác giả:ChaoZhang, Ngày: 2024-01-08 16:54:21
Tags:

img

Tổng quan

Chiến lược này kết hợp một cách tiếp cận ngược lại (mua giảm) với logic theo xu hướng (chỉ khi giá trên MA200). Chiến lược nhằm mục đích tìm thời điểm tốt nhất để mua giảm có khả năng có lợi nhuận cao nhất. Giá trên trung bình động dài hạn cho thấy đà tăng khả năng kiếm lợi từ việc mua tài sản trong thời gian suy yếu ngắn hạn.

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

Chiến lược này tính toán sự thay đổi tỷ lệ phần trăm tổng thể của giá trong khoảng thời gian xem lại để xác định xem giá có ở mức giảm tương đối hay không. Khi tỷ lệ thay đổi tổng thể dưới -3%, giá được coi là giảm. Ngoài ra, chiến lược cũng thiết lập trung bình di chuyển đơn giản 200 ngày như một chỉ số để đánh giá xu hướng. Các tín hiệu mua chỉ được kích hoạt khi giá vượt quá trung bình di chuyển 200 ngày. Bằng cách sử dụng cả nguyên tắc đảo ngược trung bình và ghép đôi ngắn dài, chiến lược mua giảm trong xu hướng tăng để kiếm lợi nhuận.

Phân tích lợi thế

Chiến lược này kết hợp cả hai lợi thế của giao dịch xu hướng và giao dịch ngược lại. Mặt khác, sử dụng đường trung bình động dài hạn để xác định xu hướng tránh mua mù quáng trong xu hướng giảm. Mặt khác, mua giảm cung cấp cơ hội nhập cảnh tốt hơn trong thời gian điều chỉnh ngắn hạn. Sự kết hợp đảm bảo cả an toàn giao dịch và xác suất lợi nhuận cao hơn. Hơn nữa, chiến lược có không gian tối ưu hóa lớn cho các thông số có thể được điều chỉnh để phù hợp với các thị trường khác nhau, mang lại khả năng thích nghi mạnh mẽ.

Phân tích rủi ro

Rủi ro lớn nhất là giá có thể tiếp tục giảm sau khi tín hiệu mua được kích hoạt, dẫn đến tổn thất lớn hơn. Ngoài ra, nếu thị trường vẫn bị giới hạn trong phạm vi trong một thời gian dài và giá không vượt qua đường trung bình động, chiến lược cũng sẽ thất bại. Để giảm thiểu những rủi ro như vậy, thời gian trung bình động có thể được rút ngắn phù hợp và các tiêu chí mua có thể được tối ưu hóa để đảm bảo đủ biên độ an toàn.

Hướng dẫn tối ưu hóa

Chiến lược có thể được tối ưu hóa theo một số khía cạnh: 1) tối ưu hóa thời gian trung bình động để thích nghi với các thị trường khác nhau; 2) tối ưu hóa các tiêu chí mua để đảm bảo đủ lợi nhuận; 3) thêm dừng lỗ để kiểm soát lỗ; 4) kết hợp các chỉ số khác để đánh giá xu hướng và giảm để cải thiện độ chính xác.

Tóm lại

Nói chung, đây là một chiến lược điển hình kết hợp các ý tưởng giao dịch theo xu hướng và ngược lại. Nó đảm bảo cả an toàn giao dịch và xác suất chiến thắng cao hơn, với giá trị thực tế mạnh mẽ.


/*backtest
start: 2023-12-08 00:00:00
end: 2024-01-07 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Buy The Dips - MA200 Optimised", overlay=false)

//Moving average
MAinp = input(defval = 100, title = "MA", type = input.integer, minval = 1, step = 1)
MA=sma(close, MAinp)

//Percent change
inp_lkb = input(1, title='Lookback Period')
 
perc_change(lkb) =>
    overall_change = ((close[0] - close[lkb]) / close[lkb]) * 100

// Call the function    
overall = perc_change(inp_lkb)

// === INPUT BACKTEST RANGE ===
fromMonth = input(defval = 1,    title = "From Month",      type = input.integer, minval = 1, maxval = 12)
fromDay   = input(defval = 1,    title = "From Day",        type = input.integer, minval = 1, maxval = 31)
fromYear  = input(defval = 2020, title = "From Year",       type = input.integer, minval = 1970)
thruMonth = input(defval = 1,    title = "Thru Month",      type = input.integer, minval = 1, maxval = 12)
thruDay   = input(defval = 1,    title = "Thru Day",        type = input.integer, minval = 1, maxval = 31)
thruYear  = input(defval = 2112, title = "Thru Year",       type = input.integer, minval = 1970)

showDate  = input(defval = true, title = "Show Date Range", type = input.bool)

start     = timestamp(fromYear, fromMonth, fromDay, 00, 00)        // backtest start window
finish    = timestamp(thruYear, thruMonth, thruDay, 23, 59)        // backtest finish window
window()  => true       // create function "within window of time"

//Entry/Exit
strategy.entry(id="long", long = true, when = window() and overall<-3 and close > MA) 
strategy.close(id="long", when = window() and overall>1)


bgcolor(color = showDate and window() ? color.gray : na, transp = 90) 
plot(overall, color=color.black, title='Overall Percentage Change', linewidth=3)
band1 = hline(1, "Upper Band", color=#C0C0C0)
band0 = hline(-2, "Lower Band", color=#C0C0C0)
fill(band1, band0, color=#9915FF, transp=90, title="Background")
hline(0, title='Center Line', color=color.orange, linestyle=hline.style_solid, linewidth=2)

Thêm nữa