Chiến lược giao dịch chữ thập vàng dựa trên EMA


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

Chiến lược giao dịch chữ thập vàng dựa trên EMA

Tổng quan

Chiến lược giao dịch chéo vàng EMA bằng cách tính toán đường trung bình của EMA trong các chu kỳ khác nhau, đánh giá sự giao nhau của chúng để phát ra tín hiệu mua và bán. Khi EMA ngắn hạn đi qua EMA dài hạn, phát ra tín hiệu mua; Khi EMA ngắn hạn đi qua EMA dài hạn, phát ra tín hiệu bán.

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

Cốt lõi của chiến lược này là tính trung bình EMA của hai chu kỳ khác nhau, bao gồm trung bình EMA của chu kỳ ngắn hơn, chu kỳ mặc định là 9, và trung bình EMA của chu kỳ dài hơn, chu kỳ mặc định là 20. Mã tính hai đường này một cách riêng biệt bằng cách gọi hàm tích hợp ema trong kịch bản pin. Sau đó, tạo ra giao dịch bằng cách đánh giá xem hai đường EMA có giao nhau không.

Việc đánh giá tín hiệu chéo được thực hiện thông qua hai hàm crossover và crossunder được tích hợp trong kịch bản pine. Chức năng crossover đánh giá xem dòng nhanh có đi qua dòng chậm từ phía dưới, trả về giá trị Boolean hay không; Chức năng crossunder đánh giá xem dòng nhanh có đi qua dòng chậm từ phía trên xuống, trả về giá trị Boolean hay không. Dựa trên giá trị trả về của hai hàm này, mã gửi lệnh mua hoặc bán tương ứng.

Ngoài ra, mã cũng cung cấp một số điều kiện phụ trợ, chẳng hạn như thiết lập ngày bắt đầu và kết thúc, giới hạn chỉ làm nhiều hoặc chỉ làm trống, v.v., Điều này giúp thực hiện phản hồi hoặc tối ưu hóa tinh tế hơn.

Phân tích lợi thế

Ưu điểm lớn nhất của chiến lược này là rất đơn giản, trực tiếp, dễ hiểu và thực hiện, phù hợp cho người mới bắt đầu học. Ngoài ra, đường trung bình di chuyển tự nó là một chỉ số theo dõi xu hướng, có thể theo dõi xu hướng thị trường một cách hiệu quả, sử dụng xu hướng để tạo ra thu nhập bổ sung. Cuối cùng, các tham số của chiến lược ít hơn, dễ điều chỉnh, đây cũng là một trong những ưu điểm của nó.

Phân tích rủi ro

Chiến lược này chủ yếu đối mặt với rủi ro giao dịch ồn ào và đảo ngược xu hướng. Dòng EMA dễ bị ảnh hưởng bởi biến động thị trường ngắn hạn, có thể tạo ra tín hiệu sai, dẫn đến giao dịch không cần thiết, làm tăng tần suất giao dịch và chi phí. Mặt khác, khi tín hiệu chéo xuất hiện, xu hướng có thể đã gần điểm đảo ngược, khi đó rủi ro giao dịch cao hơn. Ngoài ra, cài đặt tham số không đúng cũng có thể ảnh hưởng đến hiệu suất của chiến lược.

Có thể giảm tiếng ồn giao dịch bằng cách điều chỉnh chu kỳ EMA hoặc thêm các điều kiện lọc khác. Đồng thời, thiết lập dừng lỗ để kiểm soát tổn thất đơn lẻ. Các tham số tối ưu hóa có thể làm cho chiến lược ổn định hơn. Tất nhiên, không có chiến lược giao dịch nào có thể tránh hoàn toàn tổn thất và cần phải chịu rủi ro.

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

Chiến lược này có thể được tối ưu hóa theo các hướng sau:

  1. Tối ưu hóa các tham số EMA chu kỳ, tìm các tham số kết hợp tốt nhất
  2. Thêm các bộ lọc cho các chỉ số khác như MACD, RSI, v.v. để giảm tín hiệu giả
  3. Tăng các chỉ số đánh giá xu hướng để tránh sự đảo ngược xu hướng
  4. Kết hợp các chỉ tiêu lựa chọn cơ bản của cổ phiếu
  5. Điều chỉnh quản lý nắm giữ, chẳng hạn như đặt lệnh dừng lỗ theo ATR

Tóm tắt

EMA Gold Cross là một chiến lược theo dõi xu hướng đơn giản và hiệu quả. Nó sử dụng EMA Cross để tạo tín hiệu giao dịch, có thể tự động nắm bắt xu hướng giá, lợi nhuận từ xu hướng trong giá. Chiến lược này dễ hiểu và điều chỉnh, rất phù hợp để người mới bắt đầu học, cũng có thể được tích hợp thành mô-đun vào các chiến lược phức tạp hơn.

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

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// This strategy has been created for illustration purposes only and should not be relied upon as a basis for buying, selling, or holding any asset or security.
// © kirilov

//@version=4
strategy(
     "EMA Cross Strategy",
     overlay=true,
     calc_on_every_tick=true,
     currency=currency.USD
     )

// INPUT:

// Options to enter fast and slow Exponential Moving Average (EMA) values
emaFast = input(title="Fast EMA", type=input.integer, defval=9, minval=1, maxval=9999)
emaSlow = input(title="Slow EMA", type=input.integer, defval=20, minval=1, maxval=9999)

// Option to select trade directions
tradeDirection = input(title="Trade Direction", options=["Long", "Short", "Both"], defval="Both")

// Options that configure the backtest date range
startDate = input(title="Start Date", type=input.time, defval=timestamp("01 Jan 1970 00:00"))
endDate = input(title="End Date", type=input.time, defval=timestamp("31 Dec 2170 23:59"))


// CALCULATIONS:

// Use the built-in function to calculate two EMA lines
fastEMA = ema(close, emaFast)
slowEMA = ema(close, emaSlow)


// PLOT:

// Draw the EMA lines on the chart
plot(series=fastEMA, color=color.black, linewidth=2)
plot(series=slowEMA, color=color.red, linewidth=2)


// CONDITIONS:

// Check if the close time of the current bar falls inside the date range
inDateRange = true

// Translate input into trading conditions
longOK  = (tradeDirection == "Long") or (tradeDirection == "Both")
shortOK = (tradeDirection == "Short") or (tradeDirection == "Both")

// Decide if we should go long or short using the built-in functions
longCondition = crossover(fastEMA, slowEMA)
shortCondition = crossunder(fastEMA, slowEMA)


// ORDERS:

// Submit entry (or reverse) orders
if (longCondition and inDateRange)
    strategy.entry(id="long", long=true, when = longOK)
if (shortCondition and inDateRange)
    strategy.entry(id="short", long=false, when = shortOK)
    
// Submit exit orders in the cases where we trade only long or only short
if (strategy.position_size > 0 and shortCondition)
    strategy.exit(id="exit long", stop=close)
if (strategy.position_size < 0 and longCondition)
    strategy.exit(id="exit short", stop=close)