Chiến lược đột phá đường trung bình động đơn đi ngang


Ngày tạo: 2024-02-02 11:19:19 sửa đổi lần cuối: 2024-02-02 11:19:19
sao chép: 0 Số nhấp chuột: 537
1
tập trung vào
1617
Người theo dõi

Chiến lược đột phá đường trung bình động đơn đi ngang

Tổng quan

Chiến lược phá vỡ ngang điểm trung bình đơn là một chiến lược giao dịch định lượng dựa trên chỉ số động lực Chande. Chiến lược này đánh giá thị trường có đang trong giai đoạn thanh toán ngang bằng cách tính toán sự thay đổi động lực của giá hay không.

Nguyên tắc chiến lược

Chiến lược này đầu tiên tính toán động lực thay đổi giámommSau đó chia nó thành động lượng dương.m1và động lượng âmm2Sau đó tính tổng động lượng dương- âm trong một chu kỳ nhất định.sm1sm2Và cuối cùng là chỉ số động lượng của Chande.chandeMO。 Chỉ số này có 0 là trục trung tâm, khi chỉ số lớn hơn 0 cho thấy sức mạnh tăng lớn hơn sức mạnh giảm, khi nhỏ hơn 0 thì ngược lại。

Khi chỉ số động lực Chande phá vỡ đường mua từ mức thấp, cho thấy giá thoát khỏi giai đoạn giảm xuống và vào giai đoạn chuẩn bị thăng giá, khi đó chiến lược thực hiện giao dịch mua. Khi chỉ số phá vỡ đường bán từ mức cao, giao dịch bán sẽ được thực hiện.

Phân tích lợi thế

  • Chiến lược này có thể nắm bắt các điểm chuyển đổi từ giá giảm xuống giá và sau đó tăng lên, để thực hiện mua thấp và bán cao.
  • Chỉ số động lực của Chande xem xét tốc độ và cường độ thay đổi giá, và là một công cụ tốt để xác định xu hướng.
  • Chiến lược hoạt động đơn giản và dễ thực hiện.

Phân tích rủi ro

  • Chỉ số động lượng Chande nhạy cảm với các tham số, các thiết lập tham số chu kỳ khác nhau sẽ dẫn đến các tín hiệu giao dịch và kết quả khác nhau rất nhiều.
  • Các thiết lập tĩnh của đường mua và đường bán cũng có thể gây ra quá nhiều tín hiệu sai.
  • Chiến lược này không tính đến dừng lỗ, có thể dẫn đến sự gia tăng lỗ.

Có thể thiết lập đường mua và bán động hoặc kết hợp với các tín hiệu lọc chỉ số khác. Ngoài ra, bạn cũng nên thiết lập dừng lỗ để kiểm soát rủi ro.

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

  • Thử các tham số khác nhau để có hiệu quả tốt nhất
  • Thiết lập đường dây mua bán động
  • Bộ lọc tín hiệu kết hợp với các chỉ số khác
  • Thêm rủi ro kiểm soát logic dừng

Tóm tắt

Chiến lược phá vỡ ngang ngang điểm trung bình thông qua chỉ số động lực Chande để xác định điểm chuyển đổi của giá từ giảm xuống, sau đó cân bằng và sau đó tăng lên, để thực hiện mua thấp và bán cao. Chiến lược này đơn giản và thực tế, có thể nắm bắt hiệu quả xu hướng chuyển đổi. Tuy nhiên, các khía cạnh khác như thiết lập tham số và kiểm soát dừng lỗ cần được tối ưu hóa hơn nữa để giảm tín hiệu sai và kiểm soát rủi ro.

Mã nguồn chiến lược
/*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}}