
Эта стратегия производит сигнал покупки и продажи, рассчитывая соотношение между средним значением PB и низким значением Брин-Бенда. Когда PB пробивается вверх, он производит сигнал покупки; когда PB падает вниз, он производит сигнал продажи.
Основным показателем стратегии является средний показатель ПБ. Средний показатель ПБ объединяет стабильность системы средних линий и чувствительность показателя ПБ, который использует разницу между двумя различными периодическими средними линиями для выражения тенденций изменения цены, чтобы определить, можно ли смотреть на пустоту.
Эта стратегия также использует индикатор пояса Бурин, чтобы определить перекуп и перепродажу цен на акции. Индикатор пояса Бурин состоит из трёх кривых: средней, верхней и нижней полос. Средняя полоса представляет собой движущуюся среднюю за n дней; верхняя и нижняя полосы рассчитываются с помощью средней полосы и исторических колебаний.
В целом, эта стратегия умело использует средний показатель PB для определения тенденции роста и падения цен на акции, а также использует показатель Брин-бейнд для определения перекупа и перепродажи, чтобы найти точки покупки и продажи в сочетании показателей, которые относятся к типичной стратегии торговли цифровыми показателями.
Основные преимущества этой стратегии:
Основные риски этой стратегии:
В связи с вышеуказанными рисками, можно избежать риска путем оптимизации параметров, строгого прекращения убытков, учета факторов окружающей среды и искусственного мониторинга.
Оптимизируемые направления стратегии включают:
Эта стратегия работает хорошо, основанная на средних показателях ПБ, в которой используется буринская лента для определения точки купли-продажи, простая в использовании, высокая чувствительность, хорошая обратная оценка. С помощью постоянной оптимизации параметров, добавления других показателей и строгих мер по остановке убытков, можно дополнительно повысить доходность и стабильность стратегии, что заслуживает экспериментальной проверки и применения.
/*backtest
start: 2024-01-09 00:00:00
end: 2024-01-16 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("BandPass EOS", overlay=false, initial_capital = 1000)
src = input(close, "Source", input.source)
Period1 = input(41, "Fast Period", input.integer)
Period2 = input(54, "Slow Period", input.integer)
showBG = input(false, "Show crosses on background?", input.bool)
UseReversalStop = input(true, "Use additional triggers?", input.bool)
//Super Passband Filter
a1 = 0.0
a2 = 0.0
PB = 0.0
RMS = 0.0
if bar_index > Period1
a1 := 5 / Period1
a2 := 5 / Period2
PB := (a1 - a2) * src + (a2 * (1 - a1) - a1 * (1 - a2)) * src[1] +
(1 - a1 + 1 - a2) * nz(PB[1]) - (1 - a1) * (1 - a2) * nz(PB[2])
for i = 0 to 49 by 1
RMS := RMS + PB[i] * PB[i]
RMS
RMS := sqrt(RMS / 40)
RMS
z = 0
buy = PB > PB [5] and crossover(PB, -RMS) or PB > PB [5] and crossover (PB, RMS) or PB > PB [5] and crossover (PB, z)
sell = PB < PB [5] and crossunder(PB, RMS) or PB < PB [5] and crossunder (PB, -RMS) or PB < PB [5] and crossunder (PB, z)
signal = buy ? 1 : sell ? -1 : 0
bg = buy ? color.green : sell ? color.red : color.white
bg := showBG ? bg : na
upperFill = PB>RMS ? color.lime : na
lowerFill = PB<-RMS ? color.red : na
p1 = plot(PB,"PB",color.red)
p2 = plot(RMS,"+RMS",color.blue)
p3 = plot(-RMS,"-RMS",color.blue)
bgcolor(bg)
fill(p1,p2,upperFill)
fill(p1,p3,lowerFill)
hline(0)
//PERIOD
testStartYear = input(2018, "Backtest Start Year")
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay, 0, 0)
testStopYear = input(2019, "Backtest Stop Year")
testStopMonth = input(12, "Backtest Stop Month")
testStopDay = input(31, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay, 0, 0)
testPeriod() => true
lcolor = PB > PB [5] and crossover(PB, -RMS) or PB > PB [5] and crossover (PB, RMS) or PB > PB [5] and crossover (PB, z)
scolor = PB < PB [5] and crossunder(PB, RMS) or PB < PB [5] and crossunder (PB, -RMS) or PB < PB [5] and crossunder (PB, z)
c1 = (PB < PB [5] and crossunder(PB, RMS) or PB < PB [5] and crossunder (PB, -RMS) or PB < PB [5] and crossunder (PB, z))
c2 = (PB > PB [5] and crossover(PB, -RMS) or PB > PB [5] and crossover (PB, RMS) or PB > PB [5] and crossover (PB, z))
plot (c1 ? PB : na, style = plot.style_circles, color = color.red, linewidth = 3)
plot (c2 ? PB : na, style = plot.style_circles, color = color.green, linewidth = 3)
if (PB > PB [5] and crossover(PB, -RMS) or PB > PB [5] and crossover (PB, RMS) or PB > PB [5] and crossover (PB, z))
strategy.entry("long", strategy.long, when = testPeriod())
if (PB < PB [5] and crossunder(PB, RMS) or PB < PB [5] and crossunder (PB, -RMS) or PB < PB [5] and crossunder (PB, z))
strategy.entry("short", strategy.short, when = testPeriod())