Chiến lược giao dịch đảo ngược động lực

Tác giả:ChaoZhang, Ngày: 2023-12-20 16:09:50
Tags:

img

Tổng quan

Đây là một chiến lược giao dịch đảo ngược dựa trên chỉ số Momentum. Nó sử dụng chỉ số Ease of Movement (EOM) để xác định xu hướng thị trường và đi dài hoặc ngắn khi chỉ số vượt quá ngưỡng đã đặt trước. Nó cũng cung cấp chức năng giao dịch đảo ngược cho phép lựa chọn giữa giao dịch thường xuyên hoặc đảo ngược.

Chiến lược logic

Chỉ số Ease of Movement (EOM) đo lường mức độ thay đổi giá và khối lượng. Nó trả về cả giá trị dương và âm. Giá trị dương có nghĩa là giá đã tăng và giá trị âm có nghĩa là giá đã giảm. Giá trị tuyệt đối càng lớn, thay đổi giá càng lớn và / hoặc khối lượng giao dịch càng nhỏ.

Lý thuyết đằng sau chiến lược này là:

  1. Tính toán giá trị EOM của thanh hiện tại
  2. Kiểm tra xem giá trị EOM vượt quá ngưỡng dài hoặc ngắn
    • Nếu vượt quá ngưỡng dài (bên mặc định 4000), đi dài
    • Nếu dưới ngưỡng ngắn (bên mặc định -4000), đi ngắn
  3. Cung cấp chức năng giao dịch ngược
    • Theo mặc định, dài = tăng, ngắn = giảm
    • Khi đảo ngược được kích hoạt, dài = giảm, ngắn = tăng

Phân tích lợi thế

Những lợi thế chính của chiến lược này:

  1. Sử dụng chỉ số EOM để xác định xu hướng thị trường thực tế dựa trên thay đổi giá và khối lượng
  2. Mức giới hạn có thể tùy chỉnh cho dài/ ngắn
  3. Cung cấp chế độ giao dịch ngược
  4. Tín hiệu dài/ngắn trực quan từ màu thanh

Phân tích rủi ro

Những rủi ro chính của chiến lược này:

  1. EOM có thể có sự thoát hiểm giả.
  2. Mức ngưỡng không phù hợp có thể dẫn đến giao dịch quá/dưới
  3. Cần đủ khả năng chấp nhận rủi ro cho giao dịch ngược

Giải pháp:

  1. Sử dụng các chỉ báo khác để tránh tín hiệu sai
  2. Tối ưu hóa các thông số và điều chỉnh ngưỡng
  3. Đánh giá mức độ chấp nhận rủi ro của riêng bạn

Tối ưu hóa

Chiến lược này có thể được tối ưu hóa trong các khía cạnh sau:

  1. Thêm trung bình động để tránh đột phá sai
  2. Thêm stop loss
  3. Tối ưu hóa các thông số ngưỡng dài / ngắn
  4. Thêm nhiều điều kiện nhập để kiểm soát tần suất giao dịch
  5. Thêm các quy tắc quản lý rủi ro cho giao dịch ngược

Bằng cách thực hiện các tối ưu hóa trên, chiến lược có thể trở nên mạnh mẽ hơn, giảm rủi ro và cải thiện hiệu suất giao dịch thực tế.

Kết luận

Tóm lại, chiến lược này sử dụng chỉ số Ease of Movement để xác định xu hướng thị trường thực tế và lợi nhuận từ giao dịch dài / ngắn. Nó dễ sử dụng và xem xét cả biến đổi giá và các yếu tố thay đổi khối lượng. Khi áp dụng nó trong giao dịch thực tế, nên kết hợp các chỉ số kỹ thuật khác và tối ưu hóa các tham số đúng cách để có hiệu suất tốt hơn.


/*backtest
start: 2023-11-19 00:00:00
end: 2023-12-19 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 19/06/2018
// This indicator gauges the magnitude of price and volume movement. 
// The indicator returns both positive and negative values where a 
// positive value means the market has moved up from yesterday's value 
// and a negative value means the market has moved down. A large positive 
// or large negative value indicates a large move in price and/or lighter 
// volume. A small positive or small negative value indicates a small move 
// in price and/or heavier volume.
// A positive or negative numeric value. A positive value means the market 
// has moved up from yesterday's value, whereas, a negative value means the 
// market has moved down. 
//
// You can change long to short in the Input Settings
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
strategy(title="Ease of Movement (EOM) Backtest", shorttitle="EOM")
BuyZone = input(4000, minval=1)
SellZone = input(-4000, minval=1)
reverse = input(false, title="Trade reverse")
hline(0, color=blue, linestyle=line)
hline(BuyZone, color=green, linestyle=line)
hline(SellZone, color=red, linestyle=line)
xHigh = high
xLow = low
xVolume = volume
xHalfRange = (xHigh - xLow) * 0.5
xMidpointMove = mom(xHalfRange, 1)
xBoxRatio = iff((xHigh - xLow) != 0, xVolume / (xHigh - xLow), 0)
nRes = iff(xBoxRatio != 0, 1000000 * ((xMidpointMove - xMidpointMove[1]) / xBoxRatio), 0)
pos = iff(nRes > BuyZone, 1,
       iff(nRes < SellZone, -1, nz(pos[1], 0))) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1, 1, pos))	   
if (possig == 1) 
    strategy.entry("Long", strategy.long)
if (possig == -1)
    strategy.entry("Short", strategy.short)	   	    
barcolor(possig == -1 ? red: possig == 1 ? green : blue ) 
plot(nRes, color=red, title="EOM", style=histogram, linewidth=2)

Thêm nữa