Chiến lược đột phá trung bình di chuyển điểm duy nhất

Tác giả:ChaoZhang, Ngày: 2024-02-02 11:19:19
Tags:

img

Tổng quan

Chiến lược đột phá trung bình động điểm duy nhất là một chiến lược giao dịch định lượng dựa trên Chande Momentum Oscillator. Nó phát hiện khi nào thị trường đang trong giai đoạn hợp nhất bằng cách tính toán sự thay đổi động lực của giá. Khi đường Chande Momentum vượt qua đường mua hoặc giảm xuống dưới đường bán, các giao dịch dài hoặc ngắn sẽ được thực hiện phù hợp.

Chiến lược logic

Chiến lược đầu tiên tính toán sự thay đổi động lực giámomm, sau đó tách nó thành động lực tích cựcm1và động lực âmm2Sau đó, nó tổng hợp động lực tích cực và tiêu cực trong một thời gian nhìn lại vàosm1sm2Cuối cùng, Chande Momentum OscillatorchandeMOChỉ số dao động xung quanh đường không. Các phép đọc trên không cho thấy động lực tăng mạnh hơn, trong khi các phép đọc dưới không cho thấy động lực giảm mạnh hơn.

Khi đường Chande Momentum vượt qua trên đường mua từ mức thấp hơn, nó báo hiệu rằng giá đang thoát khỏi xu hướng giảm và sẵn sàng bắt đầu xu hướng tăng. Chiến lược sẽ đi dài. Khi đường giảm xuống dưới đường bán từ mức cao hơn, các vị trí ngắn sẽ được bắt đầu.

Phân tích lợi thế

  • Chiến lược có thể xác định các thời điểm chuyển đổi từ xu hướng giảm sang củng cố sang xu hướng tăng, cho phép nhập vào giá thấp và ra khỏi giá cao.
  • Bộ dao động Chande Momentum xem xét cả cường độ và tốc độ thay đổi giá, làm cho nó rất hiệu quả để phát hiện xu hướng.
  • Lý thuyết chiến lược đơn giản và dễ thực hiện.

Phân tích rủi ro

  • Chân Định Momentum Oscillator rất nhạy cảm với các thông số đầu vào.
  • Cài đặt đường mua và bán tĩnh cũng có thể đưa ra các tín hiệu sai quá mức.
  • Việc thiếu dừng lỗ có nghĩa là việc thua lỗ có thể tích lũy lỗ lớn.

Một số cách để cải thiện bao gồm sử dụng các đường mua / bán năng động, lọc tín hiệu với các chỉ số khác và thực hiện dừng lỗ để kiểm soát rủi ro.

Hướng dẫn tối ưu hóa

  • Kiểm tra các thiết lập tham số khác nhau để tìm các giá trị tối ưu
  • Sử dụng các dòng mua và bán năng động
  • Thêm các bộ lọc bổ sung với các chỉ số khác
  • Kết hợp logic dừng lỗ để cắt giảm lỗ

Kết luận

Chiến lược đột phá trung bình động điểm duy nhất xác định các điểm chuyển đổi xu hướng từ xu hướng giảm đến củng cố sang xu hướng tăng bằng cách sử dụng Chande Momentum Oscillator, cho phép giao dịch mua thấp bán cao. Mặc dù đơn giản và trực quan, cải tiến trong điều chỉnh tham số, lọc tín hiệu và kiểm soát rủi ro có thể cải thiện hơn nữa hiệu suất.


/*backtest
start: 2024-01-02 00:00:00
end: 2024-02-01 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4

//* Backtesting Period Selector | Component *//
//* https://www.tradingview.com/script/eCC1cvxQ-Backtesting-Period-Selector-Component *//
//* https://www.tradingview.com/u/pbergden/ *//
//* Modifications made *//
testStartYear = input(2021, "Backtest Start Year") 
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(10, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)

testStopYear = input(999999, "Backtest Stop Year")
testStopMonth = input(9, "Backtest Stop Month")
testStopDay = input(26, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0)

testPeriod() => true
/////////////// END - Backtesting Period Selector | Component ///////////////
strategy(title="Chande Momentum Strat", shorttitle="ChandeMO Strat", format=format.price, precision=2)
length = input(9, minval=1)
src = input(close, "Price", type = input.source)
momm = change(src)
f1(m) => m >= 0.0 ? m : 0.0
f2(m) => m >= 0.0 ? 0.0 : -m
m1 = f1(momm)
m2 = f2(momm)
sm1 = sum(m1, length)
sm2 = sum(m2, length)
percent(nom, div) => 100 * nom / div
chandeMO = percent(sm1-sm2, sm1+sm2)
plot(chandeMO, "Chande MO", color=color.blue)
hline(0, color=#C0C0C0, linestyle=hline.style_dashed, title="Zero Line")
buyline= input(-80)
sellline= input(80)
hline(buyline, color=color.gray)
hline(sellline, color=color.gray)

if testPeriod()
    if crossover(chandeMO, buyline)
        strategy.entry("Long", strategy.long, alert_message="a=ABCD b=buy e=binanceus q=1.2 s=uniusd")
    //    strategy.exit(id="Long Stop Loss", stop=strategy.position_avg_price*0.8) //20% stop loss 
        
    if crossunder(chandeMO, sellline)
        strategy.entry("Short", strategy.short, alert_message="a=ABCD b=sell e=binanceus q=1.2 s=uniusd")
    //    strategy.exit(id="Short Stop Loss", stop=strategy.position_avg_price*1.2) //20% stop loss

//      remember to alert as    {{strategy.order.alert_message}}

Thêm nữa