Chiến lược giao thoa hai EMA theo dõi động lực

Tác giả:ChaoZhang, Ngày: 2024-02-26 16:40:29
Tags:

img

Tổng quan

Chiến lược này là một chiến lược giao dịch thuật toán theo xu hướng. Nó tính toán hai đường EMA với các thông số khác nhau và tạo ra tín hiệu giao dịch khi Golden Cross và Death Cross xảy ra giữa hai EMA. Chiến lược cũng kết hợp nhiều đường EMA để thoát khỏi lợi nhuận và đặt điểm dừng lỗ để kiểm soát rủi ro.

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

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

Đặc biệt, khi EMA nhanh vượt qua trên EMA chậm, một tín hiệu mua được tạo ra. Khi EMA nhanh vượt qua dưới EMA chậm, một tín hiệu bán được tạo ra. Đây là một chiến lược giao thoa EMA kép điển hình. Để theo dõi xu hướng tốt hơn và tăng lợi nhuận, sau khi nhập vào một vị trí, chiến lược sẽ chọn lọc ra khỏi một phần hoặc toàn bộ vị trí khi EMA nhanh vượt qua trên đường EMA thứ hai hoặc khi EMA nhanh vượt qua dưới đường EMA thứ ba.

Ngoài ra, chiến lược đặt cả hai điểm dừng lỗ dài và ngắn để ngăn ngừa tổn thất quá mức.

Phân tích lợi thế

So với chiến lược chéo hai EMA điển hình, những lợi thế chính của chiến lược này bao gồm:

  1. Thiết lập nhiều đường EMA để thoát khỏi lợi nhuận có thể khóa lợi nhuận tốt hơn và ngăn ngừa thu hẹp lợi nhuận trong các lần rút tiền tiếp theo.

  2. Vị trí ngắn có mức dừng lỗ nhỏ hơn, có thể chịu được biến động thị trường bình thường lớn hơn và ngăn ngừa dừng lỗ thường xuyên.

  3. Thiết lập các đường EMA với các tham số khác nhau để thoát khỏi lợi nhuận cho phép chọn điểm thoát tối ưu dựa trên điều kiện thị trường.

  4. Chiến lược tổng thể có khả năng theo dõi xu hướng tốt để thu lợi nhuận lớn hơn từ xu hướng trung và dài hạn.

Phân tích rủi ro

Những rủi ro chính của chiến lược này bao gồm:

  1. Trong các thị trường giới hạn phạm vi, các tín hiệu giao dịch được tạo ra bởi các đường EMA thường xuyên, có thể dẫn đến giao dịch quá mức.

  2. Việc dừng lỗ ngắn chỉ có thể ngăn chặn các điều kiện thị trường cực đoan và không thể ngăn chặn việc rút vốn đáng kể trong tài khoản chiến lược.

  3. Nguy cơ rút vốn vẫn tồn tại. Lợi nhuận có thể giảm đáng kể khi điều chỉnh dài hạn xảy ra.

  4. Chiến lược nhạy cảm với điều chỉnh tham số.

Tối ưu hóa

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

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

  2. Tăng cơ chế dừng lỗ thích ứng để điều chỉnh stop loss theo động dựa trên biến động thị trường.

  3. Thiết lập việc sử dụng vốn để tránh chiếm đóng vốn quá mức và tăng cơ chế quản lý vị trí.

  4. Chọn các sản phẩm giao dịch có xu hướng rõ ràng và biến động cao.

  5. Tăng module tối ưu hóa tham số để đạt được tối ưu hóa tự động và cập nhật các tham số.

Kết luận

Nhìn chung, chiến lược chéo hai EMA là một chiến lược theo xu hướng hiệu quả về chi phí. Nó có những lợi thế như nhiều đường EMA để kiếm lợi nhuận, dừng ngắn nhỏ và khả năng theo xu hướng tốt. Tuy nhiên, vẫn có một số rủi ro với chiến lược này. Nó cần tối ưu hóa điều chỉnh tham số hơn nữa và kết hợp các thuật toán học máy để cải thiện sự ổn định. Nói chung, chiến lược này phù hợp với các nhà đầu tư có một số kinh nghiệm giao dịch để thực hiện giao dịch thuật toán.


/*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.



Thêm nữa