
Die Strategie erzeugt ein Kauf- und Verkaufssignal, indem sie die Gold- und Forkschnittbeziehung zwischen dem PB-Indikator und dem Brin-Band-Belag durch die Berechnung des Durchschnittswertes des PB-Indikators und der Brin-Belag-Belag-Belag berechnet. Wenn der PB-Indikator aufwärts durch die Brin-Belag-Belag-Mitte oder unter die Brin-Belag-Mitte geht, erzeugt es ein Kaufsignal. Wenn der PB-Indikator nach unten durch die Brin-Belag-Mitte oder unter die Brin-Belag-Mitte geht, erzeugt es ein Verkaufsignal.
Der Mittelwert-PB-Indikator kombiniert die Stabilität des Mittelliniensystems mit der Sensitivität des PB-Indikators. Er verwendet die Differenz zwischen zwei verschiedenen Periodendurchschnitten, um die Preisentwicklung zu bestimmen.
Die Strategie verwendet auch die Bollinger Bands, um Überkauf-Überverkauf zu bestimmen. Die Bollinger Bands bestehen aus drei Kurven: der mittleren, der oberen und der unteren Bahn. Die mittlere Bahn ist ein Moving Average von n Tagen. Die oberen und unteren Bahnen werden durch die mittlere Bahn und die historische Schwankung berechnet.
Insgesamt ist diese Strategie geschickt die Verwendung der mittleren PB-Indikator zu bestimmen, die Aktienpreise und Abwärtstrends, und unterstützt durch die Brin-Band-Indikator zu überkaufen überverkaufen zu bestimmen, in der Kombination von beiden Indikatoren Beziehung zu kaufen und zu verkaufen zu suchen, gehört zu den typischen numerischen Indikator Trading-Strategie.
Die wichtigsten Vorteile dieser Strategie sind:
Die wichtigsten Risiken dieser Strategie sind:
Risiken können durch optimierte Parameter, strenge Schadensbegrenzung, Berücksichtigung umweltbedingter Faktoren und künstliche Überwachung vermieden werden.
Die Optimierungsmöglichkeiten der Strategie umfassen:
Die Strategie funktioniert insgesamt gut, mit einem durchschnittlichen PB-Wert als Kern, unterstützt von Brin-Bändern, um Kauf- und Verkaufspunkte zu bestimmen. Die Bedienung ist einfach, die Sensitivität ist hoch und die Rückmessleistung ist gut. Durch die kontinuierliche Optimierung der Parameter-Einstellungen, das Hinzufügen anderer Indikatoren, die Maßnahmen zur Unterstützung und strengen Verlustbefreiung können die Ertragskraft und Stabilität der Strategie weiter verbessert werden.
/*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())