
Прорывная торговая стратегия является торговой стратегией, когда рынок находится в состоянии колебаний. Эта стратегия использует индикаторы по полюсам Бурин, чтобы оценить состояние колебаний на рынке, и посылает торговый сигнал, когда цена касается полюса Бурин и движется вниз. В отличие от традиционной стратегии следования тенденции, эта стратегия лучше подходит для рыночной среды с горизонтальной сортировкой.
Эта стратегия основана на показателях пояса бурин. Пояса бурин состоят из средней, верхней и нижней полос. Когда цена близка к верхней или нижней полосе, это означает, что рынок слишком оптимистичен или оптимистичен, и тогда более вероятно, что произойдет обратное.
В частности, эта стратегия сначала использует показатель DMI, чтобы определить, находится ли рынок в состоянии колебания. Когда разница между + DMI и - DMI меньше 20, рынок считается в состоянии поперечного колебания. В этих условиях, когда цена выходит из траектории, она делает больше, а когда цена выходит из траектории, она делает больше.
По сравнению со стратегией следования тенденции, эта стратегия лучше подходит для рыночных условий с поперечными колебаниями, и не будет потерять прибыль от преследования тенденции. По сравнению с традиционной стратегией торговли колебаниями, эта стратегия использует индикатор Брин-Бенда, который более точно определяет перекуп и перепродажу рынка, что повышает вероятность входа в рынок.
Эта стратегия основывается на оценке рыночных колебаний и перепродажи в буринской зоне, что приводит к ошибочным сигналам, когда буринская полоса рассеивается или сжимается неправильно. Кроме того, точка остановки близка, а одиночная остановка может быть больше. Рекомендуется использование стратегии оптимизации управления капиталом.
Можно рассмотреть возможность фильтрации входных сигналов в сочетании с другими индикаторами, такими как шоковый индикатор RSI, для повышения точности входа. Кроме того, важно оптимизировать стратегию стоп-лосса, чтобы избежать больших одиночных стоп-лосса. Также можно выбрать торговые сорта, которые лучше подходят для этой стратегии, например, монеты с низкой рыночной стоимостью.
Эта стратегия в целом подходит для шокирующих рынков и может быть использована при неэффективности трендовой стратегии. Однако ее эффективность, основанная на показателях для определения состояния рынка, все еще может быть оптимизирована. Мы можем дополнительно усовершенствовать стратегию с помощью методов, таких как многопоказательная комбинация и управление капиталом, чтобы ее эффективность была более стабильной.
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy(shorttitle='Sideways Strategy DMI + Bollinger Bands',title='Sideways Strategy DMI + Bollinger Bands (by Coinrule)', overlay=true, initial_capital = 100, process_orders_on_close=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, commission_type=strategy.commission.percent, commission_value=0.1)
// Works on ETHUSD 3h, 1h, 2h, 4h
//Backtest dates
fromMonth = input(defval = 1, title = "From Month", type = input.integer, minval = 1, maxval = 12)
fromDay = input(defval = 1, title = "From Day", type = input.integer, minval = 1, maxval = 31)
fromYear = input(defval = 2021, title = "From Year", type = input.integer, minval = 1970)
thruMonth = input(defval = 12, title = "Thru Month", type = input.integer, minval = 1, maxval = 12)
thruDay = input(defval = 31, title = "Thru Day", type = input.integer, minval = 1, maxval = 31)
thruYear = input(defval = 2022, title = "Thru Year", type = input.integer, minval = 1970)
showDate = input(defval = true, title = "Show Date Range", type = input.bool)
start = timestamp(fromYear, fromMonth, fromDay, 00, 00) // backtest start window
finish = timestamp(thruYear, thruMonth, thruDay, 23, 59) // backtest finish window
window() => true
[pos_dm, neg_dm, adx] = dmi(14, 14)
lengthBB = input(20, minval=1)
src = input(close, title="Source")
mult = input(2.0, minval=0.001, maxval=50, title="StdDev")
basis = sma(src, lengthBB)
dev = mult * stdev(src, lengthBB)
upper = basis + dev
lower = basis - dev
offset = input(0, "Offset", type = input.integer, minval = -500, maxval = 500)
sideways = (abs(pos_dm - neg_dm) < 20)
//Stop_loss= ((input (3))/100)
//Take_profit= ((input (2))/100)
//longStopPrice = strategy.position_avg_price * (1 - Stop_loss)
//longTakeProfit = strategy.position_avg_price * (1 + Take_profit)
//closeLong = close < longStopPrice or close > longTakeProfit or StopRSI
//Entry
strategy.entry(id="long", long = true, when = sideways and (crossover(close, lower)) and window())
//Exit
strategy.close("long", when = (crossunder(close, upper)))