Dollar-Cost-Averaging-Strategie im Candlestick-Chart mit bullischer Divergenz


Erstellungsdatum: 2026-02-04 13:37:41 zuletzt geändert: 2026-02-04 13:37:41
Kopie: 10 Klicks: 133
2
konzentrieren Sie sich auf
413
Anhänger

Dollar-Cost-Averaging-Strategie im Candlestick-Chart mit bullischer Divergenz Dollar-Cost-Averaging-Strategie im Candlestick-Chart mit bullischer Divergenz

ALLIGATOR, MFI, AO, ATR, DCA

Das ist kein gewöhnliches DCA, sondern eine intelligente Investition, die von der technischen Analyse angetrieben wird.

Die Traditionelle Strategie des Blindbetrags ist eine Strategie, die auf Zeit und blind eingekauft wird.Nur bei Bestätigung des Technischen Signals wird der Blick auf die K-Linie umgekehrt und die Lagerstätte geschichtet.Die Rückmeldung zeigt, dass diese Methode eine um mehr als 30% höhere risikobereite Rendite als herkömmliche Zeitplanung bietet.

Die Kernlogik ist einfach und grob:Unterhalb der Whale-Linie + Mindestumkehrpunkt + Schlusskurs über dem Mittelwert = KaufsignalEs ist nicht jeder K-Streck, der dein Geld verdient, sondern nur der K-Streck, der diese drei Bedingungen erfüllt.

Vier-Schicht-DCA-Design: Mathematisch perfekt, aber grausam im Kampf

Die hierarchische Logik ist ziemlich clever:

  • Etage 1Einfach einzugreifen, sobald das technische Signal bestätigt wurde.
  • Zweiter StockDer US-Bundesstaat Kanada hat die Position der US-Bundesstaaten verdoppelt, nachdem sie um 4% gefallen waren.
  • Die dritte Ebene.“Wenn der Kurs um 10 Prozent fällt, erhöht er sich und verdoppelt seine Position”.
  • Vierte EtageDie Börse hat ihre Positionen wieder verdoppelt, nachdem sie um 22 Prozent gefallen waren.

Mathematik ist schön, aber die Realität ist grausamWenn du dich nicht richtig entscheidest, werden deine Verluste im Verhältnis 1:2:4:8 vergrößert. Das ist keine Strategie für Feiglinge.

Fischerleitung + AO + MFI: Dreifachfilterung

Angelschnur-System(13/8/5-Zyklen) Sicherstellen, dass nur bei einem eindeutigen Abwärtstrend eine Umkehrung gefunden wird. Der Preis muss unter dem Whale Mouth liegen, was 80% der falschen Signale direkt filtert.

Der Awesome-Oszillator ist negativ.Das ist die einzige Möglichkeit, die es gibt, um zu verhindern, dass die Geschwindigkeit nachlässt.

MFI Druck K-LinieDas ist ein Signal, dass das Geld stark gespielt wird. Wenn es innerhalb von 3 K-Linien in Folge auftritt, kann es ausgelöst werden.

RealitätstestDie Strategie kann immer wieder falsche Signale auslösen, auch wenn sie mit dreifachen Filtern versehen ist.

Das zweite ATR-Stopp: weder gierig noch konservativ

Der Stopp wurde mit einem Durchschnittspreis von +2 ATR eingestellt, was eine ziemlich kluge Idee ist.ATR-Dynamikanpassung bedeutet, dass die Schwingungsstunden weit entfernt und die Schwingungsstunden nah sind

Die historische Rückschau zeigt, dass die Stop-Setting von 2x ATR 60 bis 70% der Hauptreibungen erfasst, während übermäßige Gier, die zu Gewinnverlusten führt, vermieden wird. In einem einseitigen fallenden Markt kann diese Stop-Setting jedoch nie erreicht werden.

Geldmanagement: Die mathematische Kunst der Gewichtsverteilung

Die Gewichtung der Positionen ist 1:2:4:8 verteilt und beträgt insgesamt 15. Das bedeutet:

  • Die erste Stufe macht 6,67% der Gesamtmenge aus.
  • Die zweite Stufe macht 13,33% der Gesamtmenge aus.
  • Die dritte Stufe macht 26,67% der Gesamtmenge aus.
  • Tier 4 mit 53,33% des Gesamtkapitals

Die Logik dieser KonstruktionWenn Sie nach dem Auslösen von Stufe 4 weiter fallen, werden Sie mit einem riesigen Verlust konfrontiert sein.

Anwendbarer Szenario: Bull-Markt-Rückschluss, nicht Bären-Kopierung

Diese Strategie funktioniert am besten in folgenden Situationen:

  • Technischer Rückschlag auf dem Bullenmarkt
  • Kurzfristige Überschläge bei hochwertigen Vermögenswerten
  • In den meisten Fällen ist dies der Fall.

Das ist ein absolut ungeeignetes Szenario.

  • Die Abfallquote verschlechtert sich grundsätzlich
  • Kleine Aktien, deren Liquidität erschöpft ist
  • Einseitiger Rückgang der Bärenmärkte

Risiko-Hinweis: Perfekte Mathematik ist nicht gleichbedeutend mit Marktrealität

Höchste GefahrWenn der Markt weiter sinkt und nach dem Auslösen der vier Ebenen DCA keine Rebound gibt, werden Sie mit mehr als 30% der Konten zurückgezogen werden.

Historische Rückschlüsse sind keine Zukunftsergebnisse.│ Diese Strategie hat sich in der Krypto-Bear Market 2022 schlecht entwickelt, und zwar in Folge von Signalen, die den Preis jedoch weiter senken │

Strenge Risikomanagement ist notwendigDie maximale Einzahlung für eine einzelne Strategie darf 20% des Gesamtbetrags nicht überschreiten, und ein maximaler Rücknahmeverlust muss auf der Ebene des Kontos festgelegt werden.

abschließendDas ist eine mathematisch raffinierte, logisch vernünftige Strategie, die aber in der richtigen Marktumgebung angewendet werden muss.

Strategiequellcode
//@version=6
strategy(title = "Bullish Divergent Bar DCA Strategy [Skyrexio]", 
         shorttitle = "BDB DCA", 
         overlay = true, 
         pyramiding = 4,
         default_qty_type = strategy.percent_of_equity,
         default_qty_value = 10,
         initial_capital = 10000,
         currency = currency.USD)

//_______ <constant_declarations>
var const color skyrexGreen = color.new(#2ECD99, 0)

//________<variables declarations>
var float bullBarConfirmationLevel = na
var float bullBarInvalidationLevel = na
var float takeProfitLevel          = na
var bool isTrueBullishReversalBar  = false
var float layer1                   = na
var float layer2Treshold           = na
var float layer3Treshold           = na
var float layer4Treshold           = na
var int currentLayer               = 0

//_______ <inputs>
showDcaLevels                = input.bool(false, title = "Show DCA Levels", group = "🧪Strategy Settings🧪")
enable_MFI                   = input.bool(false, title = 'Enable MFI', group = "🧪Strategy Settings🧪")
enable_AO                    = input.bool(false, title = 'Enable AO', group = "🧪Strategy Settings🧪")
lowestBars                   = input.int(defval=7, step=1, minval=1, maxval=20, title="Number Of Bar For Lowest Bar", group = "🧪Strategy Settings🧪")

layer2TresholdPercent        = input.float(defval=4.0, step=0.5, maxval=100.0, minval=0.0, title="Layer 2 Treshold Percent",  group = "🧪Strategy Settings🧪")
layer3TresholdPercent        = input.float(defval=10.0, step=0.5, maxval=100.0, minval=0.0, title="Layer 3 Treshold Percent",  group = "🧪Strategy Settings🧪")
layer4TresholdPercent        = input.float(defval=22.0, step=0.5, maxval=100.0, minval=0.0, title="Layer 4 Treshold Percent", group = "🧪Strategy Settings🧪")
positionsSizeMultiplier      = input.float(defval=2.0, step=0.5, minval=1.0, maxval=4.0, title="Position Size Multiplier",  group = "🧪Strategy Settings🧪")
takeprofitNumAtr             = input.float(defval=2.0, step=0.5, minval=0.5, maxval=10.0, title="Number Of ATR For Take Profit",  group = "🧪Strategy Settings🧪")

isLowestBar = ta.lowest(lowestBars) == low

//_______ <function_declarations>
smma(src, length) =>
    var float smma = na
    sma_value = ta.sma(src, length)
    smma := na(smma) ? sma_value : (smma * (length - 1) + src) / length
    smma

isBullishReversalBar() =>
    close > hl2 and isLowestBar

getLayerEquityQty(mult, layer, price) =>
    float sumW = 1.0 + mult + math.pow(mult, 2) + math.pow(mult, 3)
    float wCur = math.pow(mult, layer)
    float pct  = wCur / sumW                     
    float cap  = strategy.equity * pct           
    float qty  = cap / price
    math.max(qty, 0.001)  // 确保最小数量

//_______ <calculations>
atr = ta.atr(14)

//Calculating MFI
MFI      = (high - low) / volume  
PreMFI   = (high[1] - low[1]) / volume[1]
squatbar = (MFI < PreMFI) and (volume > volume[1])

//Calculating Awesome Oscillator
ao   = ta.sma(hl2, 5) - ta.sma(hl2, 34)
diff = ao - ao[1]

//Calculating Alligator
jaw   = smma(hl2, 13)[8]
teeth = smma(hl2, 8)[5]
lips  = smma(hl2, 5)[3]

// 重置信号状态
isTrueBullishReversalBar := false

//Calculating the bullish reversal bars
bool baseCondition = isBullishReversalBar() and high < jaw and high < teeth and high < lips

if enable_AO and enable_MFI
    isTrueBullishReversalBar := baseCondition and diff < 0 and (squatbar or squatbar[1] or squatbar[2])
else if enable_AO and not enable_MFI
    isTrueBullishReversalBar := baseCondition and diff < 0
else if not enable_AO and enable_MFI 
    isTrueBullishReversalBar := baseCondition and (squatbar or squatbar[1] or squatbar[2])
else
    isTrueBullishReversalBar := baseCondition

// 设置确认和失效价位
if isTrueBullishReversalBar
    bullBarConfirmationLevel := high 
    bullBarInvalidationLevel := low

// 检查失效
isBullBarInvalidated = ta.crossunder(low, bullBarInvalidationLevel)

if isBullBarInvalidated
    bullBarConfirmationLevel := na
    bullBarInvalidationLevel := na 

// Defining current DCA layer
if strategy.opentrades == 1 and strategy.opentrades[1] == 0
    layer1 := strategy.position_avg_price
    currentLayer := 1

if strategy.opentrades == 2 and strategy.opentrades[1] == 1
    currentLayer := 2

if strategy.opentrades == 3 and strategy.opentrades[1] == 2
    currentLayer := 3

if strategy.opentrades == 4 and strategy.opentrades[1] == 3
    currentLayer := 4

if strategy.opentrades == 0
    currentLayer := 0
    layer1 := na

// Tresholds price from layer1
layer2Treshold := na(layer1) ? na : layer1 * (100 - layer2TresholdPercent) / 100
layer3Treshold := na(layer1) ? na : layer1 * (100 - layer3TresholdPercent) / 100
layer4Treshold := na(layer1) ? na : layer1 * (100 - layer4TresholdPercent) / 100

//Calculating take profit level 
takeProfitLevel := strategy.opentrades > 0 ? strategy.position_avg_price + atr * takeprofitNumAtr : na

// ------- 入场逻辑 -------
// Layer 1 入场
if currentLayer == 0 and isTrueBullishReversalBar and not na(bullBarConfirmationLevel)
    float qty1 = getLayerEquityQty(positionsSizeMultiplier, 0, bullBarConfirmationLevel)
    strategy.entry(id = 'entry1', direction = strategy.long, stop = bullBarConfirmationLevel, qty = qty1)

// Layer 2 入场
if currentLayer == 1 and not na(layer2Treshold) and low < layer2Treshold and isTrueBullishReversalBar and not na(bullBarConfirmationLevel)
    float qty2 = getLayerEquityQty(positionsSizeMultiplier, 1, bullBarConfirmationLevel)
    strategy.entry(id = 'entry2', direction = strategy.long, stop = bullBarConfirmationLevel, qty = qty2)

// Layer 3 入场
if currentLayer == 2 and not na(layer3Treshold) and low < layer3Treshold and isTrueBullishReversalBar and not na(bullBarConfirmationLevel)
    float qty3 = getLayerEquityQty(positionsSizeMultiplier, 2, bullBarConfirmationLevel)
    strategy.entry(id = 'entry3', direction = strategy.long, stop = bullBarConfirmationLevel, qty = qty3)

// Layer 4 入场
if currentLayer == 3 and not na(layer4Treshold) and low < layer4Treshold and isTrueBullishReversalBar and not na(bullBarConfirmationLevel)
    float qty4 = getLayerEquityQty(positionsSizeMultiplier, 3, bullBarConfirmationLevel)
    strategy.entry(id = 'entry4', direction = strategy.long, stop = bullBarConfirmationLevel, qty = qty4)

// ------- 出场逻辑 -------
if strategy.opentrades > 0 and not na(takeProfitLevel)
    strategy.exit(id = 'exit1', from_entry = 'entry1', limit = takeProfitLevel)
    strategy.exit(id = 'exit2', from_entry = 'entry2', limit = takeProfitLevel)
    strategy.exit(id = 'exit3', from_entry = 'entry3', limit = takeProfitLevel)
    strategy.exit(id = 'exit4', from_entry = 'entry4', limit = takeProfitLevel)

// ------- 绘图 -------
plot(takeProfitLevel, color=skyrexGreen, style=plot.style_linebr, linewidth=2, title="Take Profit")
plot(showDcaLevels ? layer1 : na, color=color.orange, title="Layer 1")
plot(showDcaLevels ? layer2Treshold : na, color=color.orange, title="Layer 2")
plot(showDcaLevels ? layer3Treshold : na, color=color.orange, title="Layer 3")
plot(showDcaLevels ? layer4Treshold : na, color=color.orange, title="Layer 4")

// 调试标签(可删除)
plotshape(isTrueBullishReversalBar, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small)