Chiến lược giao dịch trung bình động hai ngày

Tác giả:ChaoZhang, Ngày: 2024-02-27 16:36:31
Tags:

img

Tổng quan

Đây là một chiến lược giao dịch trong ngày đơn giản dựa trên trung bình di chuyển kép. Nó sử dụng hai trung bình di chuyển đơn giản với các khoảng thời gian khác nhau và có vị trí dài hoặc ngắn khi các đường trung bình di chuyển vượt qua.

Chiến lược logic

Chiến lược này sử dụng đường trung bình di chuyển đơn giản 10 ngày và 40 ngày. Nó đi dài khi đường trung bình di chuyển ngắn vượt qua đường trung bình di chuyển dài và đi ngắn khi chuyển đổi ngược xảy ra. Khi tín hiệu thay đổi, vị trí được đóng bằng cách sử dụng số lượng gấp đôi và một vị trí ngược được bắt đầu. Giao dịch chỉ xảy ra sau các tín hiệu đường trung bình di chuyển trong một phiên trong ngày được xác định. Bất kỳ vị trí mở nào còn lại đều được bình phương khi phiên kết thúc.

Chiến lược này chủ yếu sử dụng khả năng nắm bắt thay đổi giá nhanh hơn của trung bình động ngắn hơn. Khi SMA ngắn vượt qua trên SMA dài, nó chỉ ra xu hướng tăng giá trong ngắn hạn do đó đi dài có thể nắm bắt điều này.

Ưu điểm

  1. Đơn giản và rõ ràng chiến lược logic, dễ hiểu và thực hiện.
  2. Hiệu quả bắt được xu hướng giá ngắn hạn bằng cách sử dụng chéo MA kép.
  3. Tránh rủi ro qua đêm bằng cách hạn chế một phiên trong ngày.
  4. Mở rộng tiềm năng lợi nhuận bằng cách sử dụng giao dịch ngược số lượng gấp đôi.

Phân tích rủi ro

  1. Có xu hướng sai lầm giao dịch tiếng ồn như một chiến lược ngắn hạn.
  2. Số lượng gấp đôi có thể làm tăng tổn thất.
  3. Rủi ro bị buộc phải bỏ lỡ xu hướng có lợi hơn.

Giảm rủi ro:

  1. Tối ưu hóa các thông số MA để giảm tín hiệu sai.
  2. Thêm các bộ lọc sử dụng các chỉ số khác.
  3. Tối ưu hóa các thông số số lượng.
  4. Thư giãn thời gian phiên trong ngày.

Cơ hội gia tăng

  1. Tối ưu hóa các thông số MA bằng cách thử nghiệm nhiều kết hợp hơn để phù hợp nhất.

  2. Thêm các bộ lọc như xác nhận MACD để giảm tín hiệu sai.

  3. Tối ưu hóa nhân số lượng nhập ngược thông qua điều chỉnh tham số.

  4. Kiểm tra kéo dài thời gian phiên trong ngày để có lợi nhuận tốt hơn.

Kết luận

Chiến lược này nắm bắt các xu hướng ngắn hạn được hình thành từ các tín hiệu chéo MA, mở rộng lợi nhuận bằng cách sử dụng giao dịch ngược số lượng gấp đôi và hạn chế rủi ro qua đêm bằng cách giao dịch chỉ trong một phiên giao dịch trong ngày.


/*backtest
start: 2024-02-19 00:00:00
end: 2024-02-26 00:00:00
period: 1m
basePeriod: 1m
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/
// © Pritesh-StocksDeveloper

//@version=4
strategy("Moving Average - Intraday", shorttitle = "MA - Intraday", 
     overlay=true, calc_on_every_tick = true)

// Used for intraday handling
// Session value should be from market start to the time you want to square-off 
// your intraday strategy
var i_marketSession = input(title="Market session", type=input.session, 
     defval="0915-1455", confirm=true)

// Short & Long moving avg. period
var int i_shortPeriod = input(title = "Short MA Period", type = input.integer, 
     defval = 10, minval = 2, maxval = 20, confirm=true)
var int i_longPeriod = input(title = "Long MA Period", type = input.integer, 
     defval = 40, minval = 3, maxval = 120, confirm=true)

// A function to check whether the bar is in intraday session
barInSession(sess) => time(timeframe.period, sess) != 0

// Calculate moving averages
shortAvg = sma(close, i_shortPeriod)
longAvg = sma(close, i_longPeriod)

// Plot moving averages
plot(series = shortAvg, color = color.red, title = "Short MA", 
     linewidth = 2)
plot(series = longAvg, color = color.blue, title = "Long MA", 
     linewidth = 2)

// Long/short condition
longCondition = crossover(shortAvg, longAvg)
shortCondition = crossunder(shortAvg, longAvg)

// See if intraday session is active
bool intradaySession = barInSession(i_marketSession)

// Trade only if intraday session is active

// Long position
strategy.entry(id = "Long", long = strategy.long, 
     when = longCondition and intradaySession)

// Short position
strategy.entry(id = "Short", long = strategy.short, 
     when = shortCondition and intradaySession)

// Square-off position (when session is over and position is open)
squareOff = (not intradaySession) and (strategy.position_size != 0)
strategy.close_all(when = squareOff, comment = "Square-off")

Thêm nữa