Dựa trên lý thuyết sóng giá và chiến lược trung bình động


Ngày tạo: 2023-11-13 16:39:41 sửa đổi lần cuối: 2023-11-13 16:39:41
sao chép: 1 Số nhấp chuột: 643
1
tập trung vào
1621
Người theo dõi

Dựa trên lý thuyết sóng giá và chiến lược trung bình động

Tổng quan

Chiến lược này sử dụng lý thuyết sóng giá kết hợp với đường trung bình phẳng để tìm kiếm cơ hội hình thành xu hướng, đặt lệnh dừng hợp lý và theo dõi lệnh dừng để kiểm soát rủi ro để tối đa hóa lợi nhuận. Chiến lược chỉ mở vị trí trong khoảng thời gian giao dịch được chỉ định, tránh biến động thị trường trong một thời gian cụ thể.

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

  • Sử dụng đường trung bình di chuyển SMMA để tính giá trung bình, lọc tiếng ồn thị trường, nhận diện hướng xu hướng
  • Phân tích các đợt sóng giá dựa trên giá cao nhất và giá thấp nhất trong một chu kỳ, xác định các điểm thay đổi xu hướng
  • Các nhà đầu tư khác cũng có xu hướng tăng giá khi giá vượt qua mức trung bình di chuyển và tăng khi vượt qua mức trung bình di chuyển.
  • Thiết lập điểm dừng để kiểm soát rủi ro với điểm dừng theo dõi dựa trên ATR
  • Chỉ mở vị trí trong thời gian giao dịch được chỉ định để tránh biến động thị trường vào cuối tuần và trong một khoảng thời gian nhất định trong ngày
  • Đứng yên khi có tín hiệu đảo ngược.

Phân tích lợi thế

  • Sử dụng lý thuyết sóng giá để xác định điểm biến giá, hỗ trợ hướng xu hướng bằng đường trung bình di chuyển, có thể xác định xu hướng hiệu quả
  • Cài đặt điểm dừng lỗ với ATR theo dõi động dừng lỗ có thể kiểm soát hiệu quả một lần dừng lỗ
  • Chỉ mở vị trí trong thời gian giao dịch có tính thanh khoản để tránh trượt không cần thiết và biến động mạnh trong một khoảng thời gian nhất định
  • Thực hiện theo nguyên tắc dừng parallax một cách nghiêm ngặt, dừng lại khi có tín hiệu đảo ngược, để tối đa hóa lợi nhuận

Phân tích rủi ro

  • Định giá sóng không chính xác, có thể giao dịch lặp lại ở khu vực không có xu hướng
  • Sự chậm trễ của đường trung bình di chuyển có thể đã bỏ lỡ một bước ngoặt
  • Điểm dừng quá nhỏ có thể dễ bị dừng, quá lớn có thể gây ra thiệt hại lớn hơn
  • Khối dừng cố định không thể điều chỉnh linh hoạt theo các tình huống khác nhau

Giải quyết rủi ro:

  • Tối ưu hóa tham số chu kỳ sóng, điều chỉnh tham số trung bình di chuyển
  • Kết hợp với chỉ số Stochastics để xác định tín hiệu đảo ngược
  • Động thái tối ưu hóa điểm dừng và điều kiện dừng

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

  • Tối ưu hóa tham số chu kỳ sóng để tìm chu kỳ trung bình phẳng tốt nhất
  • Tham gia Stoch chỉ số phán quyết đảo ngược, set tín hiệu lọc giả phá vỡ
  • Cố gắng động điều chỉnh điểm dừng và vị trí dừng
  • Mở rộng băng thông điểm dừng để tránh bị mắc kẹt
  • Các tham số tối ưu hóa theo các loại khác nhau, thời gian giao dịch

Tóm tắt

Chiến lược này tích hợp lý thuyết sóng giá với chỉ số đường trung bình phẳng, sau khi tránh các múi giờ giao dịch được chỉ định, xác nhận vào thị trường bằng cách xác định hướng và xu hướng của sóng giá, thiết lập dừng lỗ và theo dõi dừng lỗ để kiểm soát rủi ro, dừng lại khi có tín hiệu đảo ngược. Chiến lược có thể cải thiện sự ổn định và lợi nhuận hơn nữa bằng cách tối ưu hóa tham số và thêm các chỉ số hỗ trợ.

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

//@version=4
strategy("FX Strategy Based on Fractals and SMMA", overlay=true)

// パラメータ
SMMAPeriod1 = input(30, title="SMMA Period")
StopLoss1 = input(7, title="Stop Loss %")
TrailingStopCoef1 = input(2.7, title="Trailing Stop Coefficient")
fractalPeriod = input(5, title="Fractal Period")

// SMMAの計算関数
smma(src, length) =>
    var float smma = na
    if na(smma[1])
        smma := sma(src, length)
    else
        smma := (smma[1] * (length - 1) + src) / length
    smma

// フラクタルの近似
highFractal = high[2] > high[1] and high[2] > high[3] and high[2] > high[4] and high[2] > high
lowFractal = low[2] < low[1] and low[2] < low[3] and low[2] < low[4] and low[2] < low

// エントリー条件
longEntrySignal = lowFractal and close[1] < smma(close, SMMAPeriod1)
shortEntrySignal = highFractal and close[1] > smma(close, SMMAPeriod1)

// エントリー実行
if (longEntrySignal)
    strategy.entry("Long", strategy.long)

if (shortEntrySignal)
    strategy.entry("Short", strategy.short)

// トレーリングストップの計算
atrValue = atr(10)
longStopPrice = close - atrValue * TrailingStopCoef1
shortStopPrice = close + atrValue * TrailingStopCoef1

// トレーリングストップの設定
strategy.exit("Exit Long", "Long", stop=longStopPrice)
strategy.exit("Exit Short", "Short", stop=shortStopPrice)

// バックテスト期間の設定(MetaTraderのバックテストと同じ期間)
startYear = 2007
startMonth = 05
startDay = 01
endYear = 2022
endMonth = 04
endDay = 01

startDate = timestamp(startYear, startMonth, startDay, 00, 00)
endDate = timestamp(endYear, endMonth, endDay, 23, 59)

// バックテスト期間内でのみトレードを実行
if (time >= startDate and time <= endDate)
    if (longEntrySignal)
        strategy.entry("Long", strategy.long)
    if (shortEntrySignal)
        strategy.entry("Short", strategy.short)