Chiến lược xu hướng giảm dựa trên EMA và Fibonacci thoái lui


Ngày tạo: 2023-09-21 21:36:16 sửa đổi lần cuối: 2023-09-21 21:36:16
sao chép: 1 Số nhấp chuột: 827
1
tập trung vào
1617
Người theo dõi

Tổng quan

Chiến lược này sử dụng chỉ số EMA để xác định hướng xu hướng và kết hợp với việc tự điều chỉnh Fibonacci Reversal để xác định điểm đảo ngược, để thực hiện mua thấp và bán cao, để nắm bắt xu hướng giảm. Chiến lược hoạt động thường xuyên, phù hợp với giao dịch ngắn.

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

  1. Sử dụng EMA ngày 9 và EMA ngày 21 để hình thành các ngã ba vàng để xác định hướng của xu hướng. 21 EMA xuống 55 EMA được coi là tín hiệu khởi động xu hướng giảm.

  2. Thiết lập chỉ số rút lui Fibonacci tự điều chỉnh với độ dài 100 chu kỳ, tự động xác định tỷ lệ rút lui quan trọng dựa trên phạm vi biến động giá gần đây.

  3. Khi giá vượt qua 0.236 Fibonacci rút lui, được coi là một tín hiệu đảo ngược, và vị trí đã được giữ ở vị trí bình thường.

  4. Khi EMA ngày 9 vượt qua EMA ngày 21 và giá thấp hơn mức cao nhất của Fibonacci tự điều chỉnh, hãy tham gia.

  5. Điều kiện rút lui của lợi nhuận nhiều đầu là vượt qua EMA 200 ngày. Điều kiện rút lui của lỗ hổng không khí là vượt qua 0.236 Fibonacci.

Lợi thế chiến lược

  • Sử dụng EMA để đánh giá xu hướng, tín hiệu hoạt động đơn giản và rõ ràng

  • Không cần xác định các tham số bằng tay để thích ứng với Fibonacci

  • Chiến lược hoạt động thường xuyên, có thể nắm bắt các thay đổi đường ngắn, thực hiện chiến lược tần số cao

  • Sử dụng các điểm rút lui quan trọng để xác định sự đảo ngược, dừng lỗ kịp thời

  • Các tham số có thể cấu hình, chiến lược tối ưu hóa để phù hợp với các chu kỳ khác nhau

Rủi ro chiến lược

  • Chỉ số EMA bị tụt hậu, cần kết hợp các chỉ số khác để xác nhận

  • Phương pháp thích ứng với Fibonacci có thể được tối ưu hóa quá mức, điểm rút lui không ổn định

  • Giao dịch tần số cao làm tăng chi phí giao dịch và chi phí trượt

  • Không có khả năng lọc hiệu quả các xu hướng xung đột, có quá nhiều tín hiệu sai

  • Quản lý thu hồi và kiểm soát tỷ lệ thua lỗ cần được cải thiện

Hướng tối ưu hóa chiến lược

  • Tăng chỉ số năng lượng, tránh các tín hiệu sai dẫn do giá cả sai lệch

  • Tối ưu hóa các tham số chu kỳ EMA để phù hợp hơn với môi trường thị trường hiện tại

  • Thiết lập dừng động để kiểm soát rủi ro tốt hơn

  • Kết hợp các chỉ số xu hướng mạnh mẽ để tránh giao dịch lặp đi lặp lại trong thời gian chấn động

  • Cân nhắc đến tác động của chi phí giao dịch thực tế, đặt mức dừng tối thiểu

Tóm tắt

Chiến lược này sử dụng EMA để xác định hướng xu hướng và sử dụng động lực rút lui Fibonacci thích ứng để xác định điểm đảo ngược, có thể tự động thích ứng với các thay đổi thị trường khác nhau. Tuy nhiên, chiến lược này phụ thuộc nhiều hơn vào các chỉ báo, thiếu phân đoạn xu hướng và logic phán đoán sóng, có nhiều không gian tối ưu hóa. Nói chung, là một chiến lược giao dịch đường ngắn tần số cao, có thể nắm bắt sự thay đổi giá nhanh hơn, nhưng yêu cầu các nhà giao dịch chịu rủi ro liên tục gây ra thiệt hại, và phòng ngừa các vấn đề giao dịch quá mức.

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

//@version=5
strategy("CC-Trend strategy 2", overlay=true, initial_capital = 10000, commission_type = strategy.commission.percent, commission_value = 0.01, default_qty_type =  strategy.percent_of_equity, default_qty_value = 100 )
ema9 = ta.ema(close, 9)
ema21 = ta.ema(close, 21)
ema55 = ta.ema(close, 55)
ema200 = ta.ema(close, 200)


plot(ema200, '22', color.blue, 2)

FibL = input.int(100, 'Fibonacci Length', 1, 500, group = 'Automatic Fibonacci Retracement')
len1 = input.int(1, 'Show Last', 0, 1000, group = 'Automatic Fibonacci Retracement')
len2 = input.int(5, 'Offset Length', 0, 1000, group = 'Automatic Fibonacci Retracement')

highF = ta.highest(ema55 >= ema9 ? ema55:ema9, FibL)
lowF = ta.lowest(ema55 >= ema9 ? ema9:ema55, FibL)
AvgFib = highF - lowF

//Fibonacci Executions
LL2 = highF + .618 * AvgFib
LL1 = highF + .272 * AvgFib
L1 = highF
L236 = highF - 0.236 * AvgFib
L382 = highF - 0.382 * AvgFib
Mid =  highF - 0.50 * AvgFib
S382 = lowF + 0.382 * AvgFib
S236 = lowF + 0.236 * AvgFib
S1 = lowF
SS1 = lowF - .272 * AvgFib
SS2 = lowF - .618 * AvgFib
//Fibonacci Plot's


high2FP = plot(LL2, 'Highe2', color.red,offset = len2, show_last = len1, trackprice = true)
high1FP = plot(LL1, 'Highe1', color.red,offset = len2, show_last = len1, trackprice = true)
highFP = plot(highF, 'High', color.red,offset = len2, show_last = len1, trackprice = true)
L236P = plot(L236, "0.764", #ED381C, offset = len2, show_last = len1, trackprice = true )
L382P = plot(L382, "0.618", color.white,offset = len2, show_last = len1, trackprice = true )
MidP = plot(Mid, "0.5", color.orange,offset = len2, show_last = len1, trackprice = true )
S382P = plot(S382, "0.382", color.yellow ,offset = len2, show_last = len1, trackprice = true)
S236P = plot(S236, "0.236", color.lime ,offset = len2, show_last = len1, trackprice = true)
lowFP = plot(lowF, 'Low', color.green,offset = len2, show_last = len1, trackprice = true)
low1FP = plot(SS1, 'Lowe1', color.green,offset = len2, show_last = len1, trackprice = true)
low2FP = plot(SS2, 'Lowe2', color.green,offset = len2, show_last = len1, trackprice = true)

plot(ema9, '22', color.yellow, 2)

plot(ema55, '55', color.aqua, 2)

plot(ema200, '200', color.maroon, 2)



shortCondition = close[1] < highF and ema21 < ema55
if (shortCondition)
    strategy.entry("Short", strategy.short)

shorttp = ta.crossover(close, ema200) and strategy.openprofit >= 0
if (shorttp)
    strategy.close('Short', 'Short TP', qty_percent = 100)

shortclose2 = close[1] > L236 and not (shortCondition) 
if(shortclose2)
    strategy.close('Short', 'Short RM', qty_percent = 100)