Chiến lược này dựa trên chỉ số trung bình động động để theo dõi xu hướng giá trong thời gian thực và tạo ra tín hiệu giao dịch khi trung bình động bị phá vỡ.
Chiến lược này sử dụng các chỉ số trung bình động động bao gồm ALMA, EMA, SMA và nhiều hơn nữa. Nguyên tắc là mua dài khi giá vượt qua mức trung bình động và mua ngắn khi nó vượt qua mức thấp hơn.
Cụ thể, chiến lược sử dụng các đường trung bình động được hình thành bởi giá cao và giá thấp. Giá thấp MA phục vụ như là đường tín hiệu cho các tín hiệu dài, trong khi giá cao MA phục vụ như là đường cho các đường ngắn. Khi giá đóng tăng trên giá thấp MA, đi dài. Khi giá đóng giảm dưới giá cao MA, đi ngắn.
Bằng cách đánh giá xu hướng giá với MA và kết hợp với nguyên tắc đột phá để tạo ra tín hiệu, một chiến lược theo xu hướng đơn giản và thực tế được hình thành.
Chiến lược này đánh giá hướng xu hướng với MA và tạo ra các tín hiệu dựa trên các nguyên tắc đột phá. Nó đơn giản để sử dụng và phù hợp với việc nắm giữ trung bình đến dài hạn. Các tham số cũng có thể được điều chỉnh để thích nghi với những thay đổi của thị trường. Những rủi ro từ biến động ngắn hạn và nắm giữ dài hạn cần phải được quản lý bằng cách dừng lỗ / thu lợi nhuận. Có chỗ để cải thiện bằng cách kết hợp nhiều chỉ số hơn và tìm các tham số tối ưu thông qua học máy.
/*backtest start: 2023-12-02 00:00:00 end: 2024-01-01 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy(title="Baseline Strategy - evo", shorttitle="Baseline", overlay=true) //INPUTS mat = input("ALMA", "MA Type", options=["SMA", "EMA", "WMA", "HMA", "VWMA", "RMA", "ALMA"]) baseline = input(55, title="MA Length") src = input(ohlc4, title="Closing Source") offset = input(0.85, step=0.05, title="Offset (alma only)") sigma = input(10, title="Sigma (alma only)") useCurrentRes = input(true, title="Use Current Resolution") resCustom = input("1440", title="Timeframe") showsignals = input(false, title="Show Signals ?") //BASELINE baselinehigh = mat=="SMA" ? sma(high,baseline) : mat=="EMA" ? ema(high,baseline) : mat=="WMA" ? wma(high,baseline) : mat=="HMA" ? wma(2*wma(high, baseline/2)-wma(high, baseline), round(sqrt(baseline))) : mat=="VWMA" ? vwma(high,baseline) : mat=="RMA" ? rma(high,baseline) : mat=="ALMA" ? alma(high, baseline, offset, sigma) : na baselinelow = mat=="SMA" ? sma(low,baseline) : mat=="EMA" ? ema(low,baseline) : mat=="WMA" ? wma(low,baseline) : mat=="HMA" ? wma(2*wma(low, baseline/2)-wma(low, baseline), round(sqrt(baseline))) : mat=="VWMA" ? vwma(low,baseline) : mat=="RMA" ? rma(low,baseline) : mat=="ALMA" ? alma(low, baseline, offset, sigma) : na //RESOLUTION res = useCurrentRes ? timeframe.period : resCustom mtfhigh = security(syminfo.tickerid, res, baselinehigh) mtflow = security(syminfo.tickerid, res, baselinelow) //PLOTS plot(mtfhigh, color=color.navy, linewidth=2, transp=0, title="Baseline High") plot(mtflow, color=color.navy, linewidth=2, transp=0, title="Baseline Low") long = src > mtfhigh short = src < mtflow barcolor(long ? #ffe0b2 : short ? #2a2e39 : not long and not short ? #b09e82 : na, title="BaseLine BarColor") signal = 0 signal := long ? 1 : short ? 2 : nz(signal[1]) plotshape(showsignals ? (signal != signal[1] and long ? mtflow : na) : na, title="Long", location=location.absolute, size=size.small, style=shape.labelup, text="Long", textcolor=color.black, transp=40, color=#00ff00) plotshape(showsignals ? (signal != signal[1] and short ? mtfhigh : na) : na, title="Short", location=location.absolute, size=size.small, style=shape.labeldown, text="Short", textcolor=color.white, transp=40, color=#ff0000) alertcondition(signal != signal[1], title="Trend Change !", message="Trend Change !") if (long) strategy.entry("Long", strategy.long) if (short) strategy.entry("Short", strategy.short)