Chiến lược giao dịch chỉ số AO trung bình động

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

Chiến lược này kết hợp các đường trung bình động và dao động AO để xác định xu hướng và giảm giao dịch.

Chiến lược logic:

  1. Tính toán EMA nhanh và SMA chậm để xây dựng một hệ thống trung bình động.

  2. Tính toán các đường AO nhanh và chậm và sự khác biệt giữa chúng.

  3. Đi dài khi MA nhanh vượt qua MA chậm, gần là trên MA chậm và AO tăng.

  4. Đi ngắn khi MA nhanh vượt qua dưới MA chậm, đóng là dưới MA chậm và AO giảm.

  5. AO so sánh sự khác biệt để tránh tín hiệu sai.

Ưu điểm:

  1. MAs xác định xu hướng chính, AO lần đảo ngược.

  2. AO khác biệt lọc tín hiệu sai.

  3. Kết hợp các chỉ số cải thiện độ chính xác.

Rủi ro:

  1. Điều chỉnh cần thiết để phù hợp với điều kiện thị trường.

  2. Cả MAs và AO đều bị chậm trễ, có khả năng thiếu các mục tốt nhất.

  3. Khó dừng lại ở các thị trường khác nhau, làm tăng rủi ro mất mát.

Tóm lại, chiến lược này kết hợp các điểm mạnh của MAs và AO để giao dịch. Điều này có thể cải thiện chất lượng tín hiệu ở một mức độ nào đó nhưng vẫn cần phải dừng đúng cách để quản lý rủi ro cho lợi nhuận ổn định.


/*backtest
start: 2023-09-04 00:00:00
end: 2023-09-11 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("MA&AO", overlay = true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=0.075, currency='USD')
startP = timestamp(input(2017, "Start Year"), input(12, "Month"), input(17, "Day"), 0, 0)
end   = timestamp(input(9999, "End Year"),   input(1, "Month"),   input(1, "Day"),   0, 0)
_testPeriod() =>
    true

//Inputs
fast_ma = input(8, title="Fast EMA", minval=2)
slow_ma = input(20, minval=1, title="Slow SMA")
AO_fast = input(5, minval=1, title="Awesome Length Fast")
AO_slow = input(8, minval=1, title="Awesome Length Slow")

//MA
fast  = ema(close, fast_ma)
slow =  sma(close, slow_ma)

//AO
AO_1 = sma(hl2, AO_fast)
AO_2 = sma(hl2, AO_slow)
dif = AO_1 - AO_2
AO = dif>=0? dif > dif[1] ? 1 : 2 : dif > dif[1] ? -1 : -2

long   =  crossover(fast, slow) and close > slow and abs(AO)==1
short =   fast < slow and close < slow and abs(AO)==2

long_condition =  long and _testPeriod() 
strategy.entry('BUY', strategy.long, when=long_condition)  
 
short_condition = short 
strategy.close('BUY', when=short_condition)


plot(fast, color=color.green)
plot(slow, color=color.red)

Thêm nữa