Chiến lược đảo ngược đường trung bình động


Ngày tạo: 2023-12-21 15:45:23 sửa đổi lần cuối: 2023-12-21 15:45:23
sao chép: 1 Số nhấp chuột: 455
1
tập trung vào
1182
Người theo dõi

Chiến lược đảo ngược đường trung bình động

Chiến lược này được đặt tên là Chiến lược đảo ngược đường trung bình trung bình dựa trên đường trung bình chuyển động, ý tưởng chính của nó là mua sau khi giảm đường trung bình quan trọng và dừng lại khi đạt được mục tiêu lợi nhuận được đặt trước.

Nguyên tắc chính của chiến lược này là sử dụng đường trung bình ngắn hạn để nắm bắt cơ hội phục hồi trong tình trạng toàn bộ thị trường. Cụ thể, khi giá giảm xuống đường trung bình dài hơn (như đường 20 ngày, đường 50 ngày, v.v.), sau khi có dấu hiệu giảm mạnh, giá thường tạo ra một mức độ phục hồi do tính chất đảo ngược trung bình của biến động thị trường.

Chiến lược mua cụ thể của chiến lược này là: mua 1 tay sau khi giá giảm xuống đường 20 ngày, đặt cược 1 tay sau khi giảm xuống đường 50 ngày, tiếp tục đặt cược 1 tay sau khi giảm xuống đường 100 ngày, giảm xuống đường 200 ngày tối đa đặt cược 1 tay, làm thêm 4 tay. Đơn giản hóa vị trí sau khi đạt được mục tiêu dừng đặt trước. Đồng thời đặt thời gian và điều kiện dừng lỗ.

Phân tích lợi thế

  1. Sử dụng tính năng quay trở lại của đường trung bình để xác định hiệu quả cơ hội phục hồi ngắn hạn
  2. Xây dựng lô hàng, giảm rủi ro một chỗ
  3. Thiết lập điều kiện dừng, có thể khóa lợi nhuận
  4. Sử dụng giá mở và mức thấp trước để lọc để tránh phá vỡ giả

Phân tích rủi ro

  1. Khi nắm giữ trong thời gian dài, có thể có nguy cơ đảo ngược. Nếu thị trường tiếp tục giảm, tổn thất sẽ mở rộng hơn nữa.
  2. Tín hiệu đường trung bình có thể bị báo cáo sai, dẫn đến tổn thất
  3. Có thể không đạt được mục tiêu ngưng ngưng, không thể ngưng ngưng hoàn toàn hoặc một phần

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

  1. Có thể kiểm tra lợi nhuận và tính ổn định dưới các tham số khác nhau
  2. Có thể xem xét kết hợp với các chỉ số khác như MACD, KD để quyết định mua
  3. Có thể chọn chu kỳ trung bình phù hợp với phong cách giao dịch của họ dựa trên các đặc điểm của các giống khác nhau
  4. Các tham số tối ưu hóa động có thể được đưa vào thuật toán học máy

Tóm tắt

Chiến lược này nói chung là một chiến lược giao dịch theo đường thẳng cổ điển và phổ biến hơn. Nó sử dụng các tính năng smooting của đường thẳng một cách chính xác, đồng thời kết hợp nhiều đường thẳng để xác định thời điểm mua trong thời gian ngắn.

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

//@version=5
strategy("EMA_zorba1", shorttitle="zorba_ema", overlay=true)

// Input parameters
qt1 = input.int(5, title="Quantity 1", minval=1)
qt2 = input.int(10, title="Quantity 2", minval=1)
qt3 = input.int(15, title="Quantity 3", minval=1)
qt4 = input.int(20, title="Quantity 4", minval=1)
ema10 = ta.ema(close, 10)
ema20 = ta.ema(close, 20)
ema50 = ta.ema(close, 50)
ema100 = ta.ema(close, 100)
ema200 = ta.ema(close, 200)

// Date range filter
start_date = timestamp(year=2021, month=1, day=1)
end_date = timestamp(year=2024, month=10, day=27)
in_date_range = true

// Profit condition
profit_percentage = input(1, title="Profit Percentage")  // Adjust this value as needed

// Pyramiding setting
pyramiding = input.int(2, title="Pyramiding", minval=1, maxval=10)

// Buy conditions
buy_condition_1 = in_date_range and close < ema20 and close > ema50 and close < open and close < low[1]
buy_condition_2 = in_date_range and close < ema50 and close > ema100 and close < open and close < low[1]
buy_condition_3 = in_date_range and close < ema100 and close > ema200 and close < open and close < low[1]
buy_condition_4 = in_date_range and close < ema200 and close < open and close < low[1]

// Exit conditions
profit_condition = strategy.position_avg_price * (1 + profit_percentage / 100) <= close
exit_condition_1 = in_date_range and (close > ema10 and ema10 > ema20 and ema10 > ema50 and ema10 > ema100 and ema10 > ema200 and close < open) and profit_condition and close < low[1] and close < low[2]
exit_condition_2 = in_date_range and (close < ema10 and close[1] > ema10 and close < close[1] and ema10 > ema20 and ema10 > ema50 and ema10 > ema100 and ema10 > ema200 and close < open) and profit_condition and close < low[1] and close < low[2]

// Exit condition for when today's close is less than the previous day's low
//exit_condition_3 = close < low[1]

// Strategy logic
strategy.entry("Buy1", strategy.long, qty=qt1 * pyramiding, when=buy_condition_1)
strategy.entry("Buy2", strategy.long, qty=qt2 * pyramiding, when=buy_condition_2)
strategy.entry("Buy3", strategy.long, qty=qt3 * pyramiding, when=buy_condition_3)
strategy.entry("Buy4", strategy.long, qty=qt4 * pyramiding, when=buy_condition_4)

strategy.close("Buy1", when=exit_condition_1 or exit_condition_2)
strategy.close("Buy2", when=exit_condition_1 or exit_condition_2)
strategy.close("Buy3", when=exit_condition_1 or exit_condition_2)
strategy.close("Buy4", when=exit_condition_1 or exit_condition_2)