Lý thuyết sóng Elliott 4-9 Sóng xung lực Chiến lược giao dịch phát hiện tự động

MACD EMA MA SMA SAR ADX RSI KDJ Boll ATR
Ngày tạo: 2024-04-26 17:32:59 sửa đổi lần cuối: 2024-04-26 17:32:59
sao chép: 3 Số nhấp chuột: 878
1
tập trung vào
1617
Người theo dõi

Lý thuyết sóng Elliott 4-9 Sóng xung lực Chiến lược giao dịch phát hiện tự động

Tổng quan

Chiến lược này dựa trên lý thuyết sóng Elliott, cố gắng tự động phát hiện đợt xung. Nó xác định đợt xung tăng bằng cách tìm kiếm 4 kết hợp đường K liên tiếp tăng giá đóng cửa và giá đóng cửa hiện tại cao hơn giá đóng cửa 9 ngày trước; sử dụng logic ngược lại để xác định đợt xung giảm. Sau khi phát hiện đợt xung, sẽ tạo ra tín hiệu mua bán và đảo ngược vị trí, dừng lỗ được đặt ở điểm thấp hoặc cao của tín hiệu đường K.

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

  1. Xác định số lần chu kỳ giá đóng cửa liên tục tăng / giảm (consclos ((mặc định 3)) và số ngày giá đóng cửa hiện tại so với giá đóng cửa trước N ngày (daysago ((mặc định 9)).
  2. Sử dụng hai biến long_cc và short_cc để ghi lại xem dòng K gốc conclos gần nhất có liên tục dương/ âm không, nếu liên tục thì giá trị là 1 và nếu không thì là 0.
  3. So sánh giá đóng cửa hiện tại với giá đóng cửa ngày trước daysago, nếu giá hiện tại cao hơn/thấp hơn thì long_daysago/short_daysago là đúng.
  4. Kết hợp long_cc, short_cc với long_daysago, short_daysago, và kết quả là tín hiệu đa không gian long và short.
  5. Vẽ các hình tam giác màu xanh lá cây và đỏ tương ứng với tín hiệu long và short.
  6. Nếu tín hiệu long xuất hiện và không có vị trí đầu tư hiện tại, hãy mở thêm và đặt giá dừng lỗ là tín hiệu K-line low.
  7. Nếu tín hiệu ngắn xuất hiện và hiện tại không có vị trí đầu trống, hãy mở trống và thiết lập giá dừng là điểm cao của tín hiệu K.

Phân tích lợi thế

  1. Có thể tự động nhận biết xung trong lý thuyết sóng Elliott, giảm tác động của phân tích chủ quan.
  2. Trong một số trường hợp, một đợt sóng xung quanh một xu hướng mạnh mẽ có thể được sử dụng như một chiến lược để nắm bắt một sự kiện như vậy.
  3. Cài đặt lệnh dừng lỗ phù hợp với xu hướng, tăng tỷ lệ lợi nhuận.
  4. Những người tham gia có thể tìm thấy cơ hội tham gia tiềm năng trước khi xu hướng bắt đầu.
  5. Các tham số có thể điều chỉnh, khả năng ứng dụng mạnh mẽ.

Phân tích rủi ro

  1. Có thể có sự sai lệch trong việc giải thích lý thuyết sóng, dẫn đến sai lầm.
  2. Khó có thể dự đoán được thời gian kéo dài của xu hướng và có thể đặt điểm dừng quá gần dẫn đến dừng lỗ.
  3. Các nhà đầu tư cũng có thể bị ảnh hưởng bởi thị trường chấn động, gây ra giao dịch thường xuyên.
  4. Thiếu sự cân nhắc về quản lý vị thế và quản lý tài chính.

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

  1. Có thể cải thiện độ chính xác của tín hiệu bằng cách tra lại cấu hình tối ưu hóa các tham số consclos và daysago.
  2. Có thể giới thiệu các chỉ số xác nhận xu hướng như MACD để giảm tiếng ồn.
  3. Hãy xem xét việc đưa vào Stop Loss để bảo vệ lợi nhuận tốt hơn.
  4. Có thể đặt một số lượng nhỏ khi xu hướng chưa rõ ràng, sau đó tăng thêm khi xu hướng rõ ràng.
  5. Kiểm soát vị trí và rủi ro, chẳng hạn như giới hạn tỷ lệ tiền trên một giao dịch, thiết lập mức rút tối đa.

Tóm tắt

Chiến lược này dựa trên lý thuyết sóng Elliott cổ điển, có khả năng nắm bắt các tình huống xu hướng mạnh mẽ, có một số ứng dụng và tiềm năng lợi nhuận. Tuy nhiên, chủ quan của lý thuyết sóng và định nghĩa của sóng xung có thể ảnh hưởng đến hiệu suất của chiến lược. Trong ứng dụng thực tế, cần chú ý đến các vấn đề như tối ưu hóa vị trí tham số, quản lý vị trí, giảm tần suất giao dịch.

Mã nguồn chiến lược
/*backtest
start: 2023-04-20 00:00:00
end: 2024-04-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/
// © Smollet

//@version=5
strategy("LW: 4-9 indicator", overlay = true)

consclos = input.int(3, "Consecutive close")
daysago = input.int(9, "Days ago")


var int long_cc = 0
var int short_cc = 0

long_cc := 1
short_cc := 1

for i = 1 to consclos
    long_cc := close[i-1] > close[i] ? long_cc*1 : long_cc*0
    short_cc := close[i-1] < close[i] ? short_cc*1 : short_cc*0

long_daysago = close > close[daysago]
short_daysago = close < close[daysago]



long = long_cc ==1 and long_daysago
short = short_cc ==1 and short_daysago


plotshape(long, style=shape.triangleup, location=location.belowbar, color=color.green)
plotshape(short, style=shape.triangledown, location=location.abovebar, color=color.red)



//Strategy code
if long and strategy.position_size <= 0
    strategy.entry("Long", strategy.long)
    strategy.exit("Long SL", "Long", stop = low)

if short and strategy.position_size >= 0
    strategy.entry("Short", strategy.short)
    strategy.exit("Short SL", "Short", stop = high)