Chiến lược giao dịch số lượng trung bình di chuyển hàm số hai

Tác giả:ChaoZhang, Ngày: 2024-02-02 11:41:34
Tags:

img

Tổng quan

Chiến lược này tạo ra các tín hiệu giao dịch bằng cách tính toán các chéo chéo giữa trung bình di chuyển theo cấp số (EMA) 5 ngày và trung bình di chuyển đơn giản 20 ngày (SMA). Nó đi dài khi EMA 5 ngày vượt qua trên SMA 20 ngày và đóng vị trí khi thay đổi giá đạt 5% hoặc -5%. Nó cũng kết hợp Chỉ số Chỉ số Giao dịch (TII) như một chỉ số phụ trợ.

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

Đường trung bình di chuyển theo hàm số hai là các chỉ số kỹ thuật được sử dụng rộng rãi. EMA 5 ngày đại diện cho xu hướng giá gần đây trong khi SMA 20 ngày cho thấy xu hướng giá trung hạn. Khi MA ngắn hạn vượt qua trên MA dài hạn, nó báo hiệu một sự đột phá tăng và xu hướng giá tăng, cho thấy thời điểm tốt để đi dài. Ngược lại, giao thoa giảm có nghĩa là sự đảo ngược giá tiềm năng và nên xem xét ra khỏi các vị trí.

Chiến lược này thiết lập EMA 5 ngày và SMA 20 ngày làm tín hiệu giao dịch. Nó đi dài khi EMA 5 ngày vượt qua SMA 20 ngày và đóng vị trí khi thay đổi giá đạt 5% hoặc -5%. Nó cũng kiểm tra xem TII có dương tính và tăng để xác nhận độ tin cậy của tín hiệu.

Các bước chi tiết là:

  1. Tính toán EMA 5 ngày, SMA 20 ngày và TII
  2. Tạo tín hiệu mua khi EMA 5 ngày vượt qua SMA 20 ngày trong khi TII dương tính và tăng
  3. Nhập vị trí dài
  4. Khóa vị trí khi thay đổi giá đạt 5% hoặc -5%

Ưu điểm

Chiến lược này sử dụng giao thoa vàng giữa hai MA và có những ưu điểm sau:

  1. Các tín hiệu giao dịch rõ ràng và đơn giản, dễ thực hiện.
  2. MAs là các chỉ số kỹ thuật phổ biến và phổ biến, tín hiệu chéo vàng là cổ điển và đáng tin cậy.
  3. Kết hợp TII có thể lọc một số tín hiệu không chắc chắn và cải thiện tỷ lệ thắng.
  4. Các tiêu chuẩn dừng lỗ / lấy lợi nhuận được xác định trước để kiểm soát hiệu quả rủi ro theo giao dịch.

Nói chung, chiến lược này có các quy tắc đơn giản, sử dụng các chỉ số kỹ thuật trưởng thành như MA crossover và có các phép đo kiểm soát rủi ro tương đối toàn diện. Nó phù hợp cho người mới bắt đầu học và sử dụng trong lĩnh vực giao dịch định lượng.

Rủi ro

Vẫn còn một số rủi ro trong chiến lược này:

  1. Các tín hiệu chéo MA có thể bị chậm.
  2. Chỉ số TII không hoạt động tốt trên các thị trường giới hạn phạm vi.
  3. Các tiêu chuẩn dừng lỗ / lấy lợi nhuận cố định có thể tùy ý.

Những cải tiến được đề xuất là:

  1. Tối ưu hóa các tham số MA để giảm độ trễ.
  2. Thêm các chỉ số phụ trợ khác để tăng độ tin cậy tín hiệu.
  3. Thiết lập các tiêu chuẩn dừng lỗ / lấy lợi nhuận năng động.

Vì vậy có chỗ cho việc tối ưu hóa hơn nữa.

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

Chiến lược này có thể được cải thiện từ các khía cạnh sau:

  1. Tối ưu hóa các thông số MA bằng cách thử nghiệm các kết hợp EMA ngắn hơn / dài hơn và SMA để tìm cặp tối ưu.

  2. Thêm các chỉ số khác như MACD, KDJ để lọc tín hiệu sai.

  3. Sử dụng thuật toán học máy để tìm các thông số tốt hơn thông qua mô hình dữ liệu lịch sử và thống kê.

  4. Thiết lập stop loss / take profit năng động dựa trên biến động thị trường và đặc điểm của công cụ để kiểm soát tốt hơn rủi ro.

  5. Mở rộng chiến lược này sang các sản phẩm khác như ngoại hối, tiền điện tử.

Thông qua các cải tiến trên, sự ổn định và lợi nhuận của chiến lược này có thể được cải thiện đáng kể.

Kết luận

Kết luận, đây là một chiến lược chéo MA đôi dễ hiểu và thực hiện. Nó tận dụng lợi thế của các tín hiệu MA và sử dụng TII để lọc lỗi. Nó kiểm soát rủi ro bằng cách dừng lỗ / lấy lợi nhuận. Chiến lược phù hợp với người mới bắt đầu học và cũng có nhiều chỗ để tối ưu hóa. Những cải tiến hơn nữa về điều chỉnh tham số, lọc tín hiệu và dừng lỗ động có thể biến nó thành một chiến lược giao dịch thực tế và mạnh mẽ.


/*backtest
start: 2024-01-02 00:00:00
end: 2024-02-01 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("EMA-SMA Crossover Strategy", shorttitle="EMA-SMA Cross", overlay=true)

// Define the moving averages
ema5 = ta.ema(close, 5)
sma20 = ta.sma(close, 20)
smaVolume10 = ta.sma(volume, 50)

majorLength = input(60, title="Major Length")
minorLength = input(30, title="Minor Length")
src = input(close, title="Source")

smaValue = ta.sma(src, majorLength)

positiveSum = 0.0
negativeSum = 0.0

for i = 0 to minorLength - 1
    price = na(src[i]) ? 0 : src[i]
    avg = na(smaValue[i]) ? 0 : smaValue[i]
    positiveSum := positiveSum + (price > avg ? price - avg : 0)
    negativeSum := negativeSum + (price > avg ? 0 : avg - price)

tii = 100 * positiveSum / (positiveSum + negativeSum)

// Buy condition: 5 EMA crosses above 20 SMA
buyCondition = ta.crossover(ema5, sma20) and tii > 0 and tii >= tii[1]

//and volume > smaVolume10 //

// Track entry price
var entryPrice = 0.0
if (buyCondition)
    entryPrice := close

// Calculate percentage change from entry price
priceChange = close / entryPrice - 1

// Plotting the moving averages on the chart
plot(ema5, color=color.blue, title="5 EMA")
plot(sma20, color=color.red, title="20 SMA")

// Highlighting buy signals and exit signals on the chart
// plotshape(series=buyCondition, title="Buy Signal", location=location.belowbar, color=color.green, size=size.small, style=shape.labelup, text="Buy")

// Strategy entry and exit
if (buyCondition)
    strategy.entry("Buy", strategy.long)

// Exit conditions
if (strategy.opentrades > 0)
    if (priceChange >= 0.05 or priceChange <= -0.05)
        strategy.close("Buy")


Thêm nữa