SonicR Mean Reversion Channel Breakout chiến lược

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

Chiến lược này xác định xu hướng bằng cách sử dụng các kênh đảo ngược trung bình dựa trên hệ thống SonicR và giao dịch để theo dõi xu hướng.

Chiến lược logic:

  1. Tính toán kênh đảo ngược trung bình với EMA gần như đường trung và EMA cao / thấp như dải trên / dưới.

  2. Tính toán đường trung bình động dài hơn như đường tín hiệu giao dịch.

  3. Đi dài khi gần phá vỡ trên đường tín hiệu.

  4. Đi ngắn khi gần phá vỡ dưới đường tín hiệu.

  5. Sử dụng đầy kênh để hình dung.

Ưu điểm:

  1. Các kênh xác định rõ xu hướng và sự đột phá.

  2. Mức trung bình động lọc ra tiếng ồn ngắn hạn.

  3. Các quy tắc đơn giản tránh sự can thiệp cảm xúc.

Rủi ro:

  1. Các kênh chậm và trung bình động có thể bỏ lỡ các mục nhập tốt nhất.

  2. Cần điều chỉnh tham số để tránh tín hiệu sai quá mức.

  3. Các hệ thống cơ khí có thể phải đối mặt với việc sử dụng lớn hơn, đòi hỏi quản lý rủi ro.

Tóm lại, chiến lược dựa trên SonicR này xác định hướng kênh cho giao dịch đột phá có hệ thống.


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

//@version=2
//Sonic R
// strategy("SonicR",shorttitle="Sonic R",overlay=true,default_qty_value=10000,initial_capital=1000,currency=currency.USD)
EMA = input(defval=89, title="EMA Signal")
HiLoLen     = input(34, minval=2,title="High Low channel Length")
pacC        = ema(close,HiLoLen)
pacL        = ema(low,HiLoLen)
pacH        = ema(high,HiLoLen)
DODGERBLUE = #1E90FFFF
// Plot the Price Action Channel (PAC) base on EMA high,low and close
L=plot(pacL, color=DODGERBLUE, linewidth=1, title="High PAC EMA",transp=50)
H=plot(pacH, color=DODGERBLUE, linewidth=1, title="Low PAC EMA",transp=50)
C=plot(pacC, color=DODGERBLUE, linewidth=2, title="Close PAC EMA",transp=0)
fill(L,H, color=aqua,transp=90,title="Fill HiLo PAC")
//Moving Average
signalMA =ema(close,EMA)
plot(signalMA,title="EMA Signal",color=white,linewidth=4,style=line)
//Strategy
goLong() => crossover(pacC,signalMA)
strategy.entry(id = "Go to Buy", long = true, when = goLong())
goShort() => crossunder(pacC,signalMA)
strategy.entry(id = "Go to Sell", long = false, when = goShort())


Thêm nữa