Chiến lược giao cắt đường trung bình động EMA đôi theo dõi động lượng


Ngày tạo: 2024-02-26 16:40:29 sửa đổi lần cuối: 2024-02-26 16:40:29
sao chép: 0 Số nhấp chuột: 604
1
tập trung vào
1617
Người theo dõi

Chiến lược giao cắt đường trung bình động EMA đôi theo dõi động lượng

Tổng quan

Chiến lược này là một chiến lược giao dịch thuật toán theo dõi xu hướng, nó tính toán đường trung bình EMA của hai tham số khác nhau và phát ra tín hiệu giao dịch khi đường trung bình xảy ra Golden Cross ((Gold Forks) và Death Cross ((Death Forks)). Chiến lược này kết hợp nhiều đường trung bình EMA để rút ra lợi nhuận đồng thời và đặt điểm dừng để kiểm soát rủi ro.

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

Chiến lược này sử dụng 4 đường trung bình EMA, bao gồm một nhóm đường trung bình EMA nhanh và đường trung bình EMA chậm, giao chéo của chúng được sử dụng để tạo ra tín hiệu mua và bán. Ngoài ra, chiến lược này cũng sử dụng hai đường trung bình EMA giữa các tham số EMA nhanh và EMA chậm để rút ra một phần hoặc toàn bộ vị trí giữ vị trí sớm và khóa lợi nhuận.

Cụ thể, khi EMA nhanh vượt qua EMA chậm, nó tạo ra tín hiệu mua; khi EMA nhanh vượt qua EMA chậm, nó tạo ra tín hiệu bán. Đây là một chiến lược giao chéo trung bình di chuyển EMA đôi điển hình. Để theo dõi xu hướng tốt hơn và tăng tỷ lệ lợi nhuận, chiến lược này sẽ chọn lọc một phần hoặc toàn bộ vị trí khi vượt qua đường trung bình EMA thứ hai trên EMA nhanh hoặc đường trung bình EMA thứ ba dưới EMA nhanh.

Ngoài ra, chiến lược này cũng đặt hai điểm dừng chân dài và ngắn để ngăn chặn sự mất mát mở rộng. Cụ thể, mức dừng chân nhiều đơn đặt là 6% giá nhập cảnh và mức dừng chân đơn đặt là 3% giá nhập cảnh.

Phân tích lợi thế

Những ưu điểm chính của chiến lược này so với chiến lược giao chéo trung bình di chuyển EMA kép điển hình là:

  1. Thiết lập nhiều đường trung bình EMA để rút lợi nhuận, có thể khóa lợi nhuận tốt hơn và ngăn chặn lợi nhuận bị thu hẹp trong điều chỉnh lại tiếp theo.

  2. Vị trí đầu trống có độ dừng lỗ nhỏ hơn, có thể chịu được những biến động lớn hơn trong tình trạng bình thường, ngăn chặn việc dừng lỗ thường xuyên.

  3. Cài đặt các tham số khác nhau EMA trung bình để có lợi nhuận thoát, có thể chọn điểm thoát tối ưu tùy theo tình hình thị trường.

  4. Chiến lược tổng thể có khả năng theo dõi xu hướng tốt hơn, có thể nắm bắt được những lợi nhuận từ xu hướng đường dài và đường trung.

Phân tích rủi ro

Các điểm nguy cơ chính của chiến lược này bao gồm:

  1. Trong các tình huống bất ổn, các tín hiệu giao dịch được tạo ra bởi đường trung bình EMA thường xuyên và dễ bị giao dịch quá mức.

  2. Điểm dừng ngắn chỉ có thể ngăn chặn tình trạng cực đoan, không thể ngăn chặn sự rút lui mạnh mẽ của tài khoản chiến lược.

  3. Rủi ro của việc rút lại chiến lược này vẫn tồn tại, và lợi nhuận có thể giảm đáng kể khi đối mặt với tình hình điều chỉnh lâu dài.

  4. Chính sách này rất nhạy cảm với các thay đổi tham số và có thể bị hỏng nếu không được cấu hình đúng cách.

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

Với những rủi ro nêu trên, chiến lược này có thể được tối ưu hóa theo các khía cạnh sau:

  1. Tăng các thuật toán học máy, hỗ trợ phán đoán xu hướng, giảm khả năng giao dịch sai.

  2. Thêm cơ chế dừng lỗ thích ứng, có thể điều chỉnh động độ dừng lỗ theo mức độ biến động của thị trường.

  3. Thiết lập tỷ lệ sử dụng vốn, tránh tài khoản chiến lược chiếm quá nhiều tiền, tăng cơ chế quản lý vị trí.

  4. Trình lọc các loại giao dịch, chọn xu hướng rõ ràng, giao dịch các chỉ số có biến động lớn.

  5. Thêm mô-đun tối ưu hóa tham số để tối ưu hóa và cập nhật các tham số tự động.

Tóm tắt

Chiến lược chéo đường trung bình di chuyển EMA kép là một chiến lược theo dõi xu hướng có chi phí cao hơn. Nó có những lợi thế như thiết lập nhiều đường trung bình EMA để có lợi nhuận thoát ra, dừng chân nhỏ và khả năng theo dõi xu hướng mạnh mẽ. Tuy nhiên, chiến lược này cũng có một số rủi ro, cần điều chỉnh các tham số để tối ưu hóa và hỗ trợ các thuật toán học máy để tăng cường sự ổn định của chiến lược. Nói chung, chiến lược này phù hợp cho các nhà đầu tư có kinh nghiệm giao dịch.

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

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © RealTraderAkeme

//@version=5
strategy("AKEME_EMA_CROSS_V6", overlay=true)

////////////////////////////////////////////////////////////PARAMETERS/////////////////////////////////////////////////////////////////
emaFast_op = input(title="Fast_EMA", defval=6)
emaSlow_op = input(title="Slow_EMA", defval=26)
emaExit_op = input(title="Sell_EMA_Exit",defval=10)
emabuyExit_op = input(title="Buy_EMA_Exit",defval=20)
Order_Value = input(defval=1000, title="Order_Value in Pounds") 
Direction_Of_Trade = input(title="Trade Direction", defval="Both")


////////////////////////////////////////////////////////////INPUTS//////////////////////////////////////////////////////////////////

fastEMA = ta.ema(close, emaFast_op)
slowEMA = ta.ema(close,emaSlow_op)
emaExit = ta.ema(close,emaExit_op)
emabuyExit = ta.ema(close,emabuyExit_op)
Entry_Ratio = strategy.openprofit/Order_Value


//////////////////////////////////////////////////////////GRAPHS//////////////////////////////////////////////////////////////////

plot(fastEMA, color=color.orange, linewidth = 2)
plot(slowEMA,color = color.blue, linewidth = 2)
plot(emaExit,color = color.gray, linewidth = 2)
plot(series=emabuyExit, color= color.rgb(210, 74, 235), linewidth=2)


/////////////////////////////////////////////////////Conditions//////////////////////////////////////////////////////////////////////
longOK  = (Direction_Of_Trade == "Long") or (Direction_Of_Trade == "Both")
shortOK = (Direction_Of_Trade == "Short") or (Direction_Of_Trade == "Both")


///////////////////////////////////////////////////////////ENTRIES&EXITS///////////////////////////////////////////////////////////////
longCondition = ta.crossover(fastEMA, slowEMA) and longOK 
if (longCondition)  
    strategy.entry("Buy", strategy.long) 

shortCondition = ta.crossunder(fastEMA, slowEMA) and shortOK
if (shortCondition)
    strategy.entry("Sell", strategy.short)

if (strategy.position_size > 0 and shortCondition)
    strategy.exit(id="exit Buy", stop=close)
    
if (strategy.position_size < 0 and longCondition)
    strategy.exit(id="exit Sell", stop=close)


/////////////////////////////////////////////////////TAKE PROFIT CONDITIONS////////////////////////////////////////////////////////

if  ta.crossunder(fastEMA, emabuyExit) and Entry_Ratio > 0.08333
    strategy.close("Buy",comment = "Exit")

if  ta.crossover(fastEMA, emaExit) and Entry_Ratio > 0.016666
    strategy.close("Sell",comment = "Exit")


if Entry_Ratio > 0.4166666 //0.4166666 
    strategy.close("Buy",comment = "Exit", qty_percent = 100)

if Entry_Ratio > 0.0833333//0.0833333
    strategy.close("Sell",comment = "Exit")//50

if Entry_Ratio > 0.1111111//4000
    strategy.close("Sell",comment = "Exit", qty_percent = 50)

if ta.crossover(fastEMA, emaExit) and Entry_Ratio > 0.278 //Percentage 
    strategy.close("Sell",comment = "Exit")

////////////////////////////////////////////STOP LOSS AS PERCENTAGE OF ENTRY CONDITIONS///////////////////////////////////////////

if Entry_Ratio < -0.05555555555
    strategy.close("Buy",comment = "Exit")
if Entry_Ratio < -0.027777777777
    strategy.close("Sell",comment = "Exit")// The Sell Stoloss is half the buying stoploss.