
Эта стратегия основана на принципе среднезначного возврата, используя для принятия торговых решений ситуацию, когда цена отклоняется от движущейся средней. Когда цена отклоняется вверх от верхней полосы, делается пробел, когда она отклоняется вниз от нижней полосы, делается больше, когда цена возвращается к движущейся средней.
Стратегия средней регрессии - это количественная торговая стратегия, основанная на статистических принципах, для принятия торговых решений путем построения цены на среднюю стоимость. Логика этой стратегии проста, ее выполнение четко, но следует обратить внимание на оптимизацию выбора и параметров разновидности. В практическом применении также необходимо учитывать такие факторы, как тенденции, затраты на торговлю, контроль риска, чтобы повысить устойчивость и прибыльность стратегии.
/*backtest
start: 2024-05-01 00:00:00
end: 2024-05-31 23:59:59
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Mean Regression Strategy", overlay=true)
// Define the lookback period for the moving average
length = input.int(20, title="Moving Average Length")
mult = input.float(1.5, title="Standard Deviation Multiplier")
// Calculate the moving average and standard deviation
ma = ta.sma(close, length)
dev = mult * ta.stdev(close, length)
// Calculate upper and lower bands
upper_band = ma + dev
lower_band = ma - dev
// Plot the moving average and bands
plot(ma, color=color.blue, linewidth=2, title="Moving Average")
plot(upper_band, color=color.red, linewidth=2, title="Upper Band")
plot(lower_band, color=color.green, linewidth=2, title="Lower Band")
// Entry conditions
long_condition = ta.crossover(close, lower_band)
short_condition = ta.crossunder(close, upper_band)
// Exit conditions
exit_long_condition = ta.crossunder(close, ma)
exit_short_condition = ta.crossover(close, ma)
// Strategy orders
if (long_condition)
strategy.entry("Long", strategy.long)
if (short_condition)
strategy.entry("Short", strategy.short)
if (exit_long_condition)
strategy.close("Long")
if (exit_short_condition)
strategy.close("Short")
// Plot signals on the chart
plotshape(series=long_condition, location=location.belowbar, color=color.green, style=shape.labelup, title="Buy Signal")
plotshape(series=short_condition, location=location.abovebar, color=color.red, style=shape.labeldown, title="Sell Signal")