EintSimple Pullback chiến lược

Tác giả:ChaoZhang, Ngày: 2024-01-15 14:04:54
Tags:

img

Đường trung bình di chuyển EintSimple Pullback Strategy

Tổng quan

Chiến lược EintSimple Pullback là một chiến lược đảo ngược trung bình dựa trên chéo trung bình động kép. Nó sử dụng đầu tiên một đường trung bình động dài hạn và ngắn hạn. Khi đường trung bình động ngắn hạn phá vỡ đường trung bình động dài hạn từ dưới, một tín hiệu mua được tạo ra. Để lọc các đột phá sai, chiến lược này cũng yêu cầu giá đóng cao hơn đường trung bình động dài hạn.

Sau khi bước vào thị trường, nếu giá giảm xuống dưới đường trung bình động ngắn hạn một lần nữa, nó sẽ kích hoạt tín hiệu thoát. Ngoài ra, chiến lược này cũng thiết lập ra lệnh dừng lỗ. Nếu việc rút lui từ điểm cao nhất đạt đến tỷ lệ giảm lỗ dừng được thiết lập, nó cũng sẽ thoát khỏi các vị trí.

Chiến lược logic

Chiến lược này chủ yếu dựa trên đường chéo vàng của các đường trung bình di chuyển kép để xác định thời gian nhập cảnh. Cụ thể, các điều kiện sau đây phải được đáp ứng cùng một lúc trước khi mở một vị trí để đi dài:

  1. Giá đóng cửa lớn hơn trung bình động dài hạn ma1
  2. Giá đóng cửa thấp hơn trung bình động ngắn hạn ma2
  3. Hiện tại không có vị trí nào

Sau khi đáp ứng các điều kiện trên, chiến lược này sẽ có một vị trí dài đầy đủ.

Phán quyết tín hiệu thoát dựa trên hai điều kiện. Một là giá lại giảm xuống dưới đường trung bình di chuyển ngắn hạn một lần nữa. Thứ hai là sự hồi phục từ điểm cao nhất đạt đến tỷ lệ stoploss được thiết lập. Các điều kiện thoát cụ thể là như sau:

  1. Giá đóng cửa lớn hơn so với trung bình động ngắn hạn ma2
  2. Việc khôi phục từ điểm cao nhất đạt đến tỷ lệ phần trăm dừng lỗ được thiết lập

Khi một trong hai điều kiện thoát được đáp ứng, chiến lược này sẽ đóng tất cả các vị trí dài.

Ưu điểm

  1. Sử dụng chéo trung bình di chuyển kép kết hợp với giá đóng cửa vững chắc để đánh giá có thể lọc hiệu quả các đột phá sai.

  2. Nhập vào pullback có thể vào sau khi giá hình thành các điểm biến đổi ngắn hạn.

  3. Với thiết lập stop loss, nó có thể giới hạn mức rút tiền tối đa.

Rủi ro

  1. Chiến lược chéo trung bình động kép có xu hướng tạo ra các tín hiệu giao dịch thường xuyên và có thể theo đuổi đỉnh và giết đáy.

  2. Cài đặt tham số không chính xác của các đường trung bình động có thể dẫn đến đường cong quá mịn hoặc quá nhạy cảm.

  3. Cài đặt stop loss quá lỏng sẽ dẫn đến tổn thất lớn hơn.

Tối ưu hóa

  1. Kiểm tra các kết hợp chiều dài khác nhau của các đường trung bình động dài hạn và ngắn hạn để tìm các thông số tối ưu.

  2. So sánh các hiệu ứng của việc sử dụng giá đóng và giá điển hình để xác định đường chéo trung bình động.

  3. Kiểm tra thêm các bộ lọc như chỉ số khối lượng hoặc biến động.

  4. Backtest tối ưu hóa tỷ lệ dừng lỗ để tìm cài đặt tốt nhất.

Kết luận

Chiến lược EintSimple Pullback là một chiến lược pullback trung bình di chuyển kép đơn giản và thực tế. Nó sử dụng hiệu quả chức năng hướng của trung bình di chuyển trong khi kết hợp giá đóng vững chắc để lọc ra các tín hiệu sai. Mặc dù chiến lược này có xu hướng giao dịch thường xuyên và theo đuổi đỉnh và giết đáy, nó có thể được cải thiện hơn nữa thông qua tối ưu hóa tham số và thêm các bộ lọc. Nhìn chung, đây là một chiến lược tuyệt vời cho người mới bắt đầu giao dịch định lượng để thực hành và tối ưu hóa.


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
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/
// © ZenAndTheArtOfTrading / www.PineScriptMastery.com
// @version=5
strategy("Simple Pullback Strategy", 
     overlay=true, 
     initial_capital=50000,
     default_qty_type=strategy.percent_of_equity, 
     default_qty_value=100)// 100% of balance invested on each trade

// Get user input
i_ma1           = input.int(title="MA 1 Length", defval=75, step=1, group="Strategy Parameters", tooltip="Long-term EMA")
i_ma2           = input.int(title="MA 2 Length", defval=9, step=1, group="Strategy Parameters", tooltip="Short-term EMA")
i_stopPercent   = input.float(title="Stop Loss Percent", defval=0.10, step=0.1, group="Strategy Parameters", tooltip="Failsafe Stop Loss Percent Decline")
i_lowerClose    = input.bool(title="Exit On Lower Close", defval=true, group="Strategy Parameters", tooltip="Wait for a lower-close before exiting above MA2")
i_startTime     = input(title="Start Filter", defval=timestamp("01 Jan 1995 13:30 +0000"), group="Time Filter", tooltip="Start date & time to begin searching for setups")
i_endTime       = input(title="End Filter", defval=timestamp("1 Jan 2099 19:30 +0000"), group="Time Filter", tooltip="End date & time to stop searching for setups")

// Get indicator values
ma1 = ta.ema(close, i_ma1)
ma2 = ta.ema(close, i_ma2)

// Check filter(s)
f_dateFilter = true

// Check buy/sell conditions
var float buyPrice = 0
buyCondition    = close > ma1 and close < ma2 and strategy.position_size == 0 and f_dateFilter
sellCondition   = close > ma2 and strategy.position_size > 0 and (not i_lowerClose or close < low[1])
stopDistance    = strategy.position_size > 0 ? ((buyPrice - close) / close) : na
stopPrice       = strategy.position_size > 0 ? buyPrice - (buyPrice * i_stopPercent) : na
stopCondition   = strategy.position_size > 0 and stopDistance > i_stopPercent

// Enter positions
if buyCondition
    strategy.entry(id="Long", direction=strategy.long)

if buyCondition[1]
    buyPrice := open

// Exit positions
if sellCondition or stopCondition
    strategy.close(id="Long", comment="Exit" + (stopCondition ? "SL=true" : ""))
    buyPrice := na

// Draw pretty colors
plot(buyPrice, color=color.lime, style=plot.style_linebr)
plot(stopPrice, color=color.red, style=plot.style_linebr, offset=-1)
plot(ma1, color=color.blue)
plot(ma2, color=color.fuchsia)

Thêm nữa