Grafik candlestick divergensi bullish, strategi dollar-cost averaging.


Tanggal Pembuatan: 2026-02-04 13:37:41 Akhirnya memodifikasi: 2026-02-04 13:37:41
menyalin: 10 Jumlah klik: 133
2
fokus pada
413
Pengikut

Grafik candlestick divergensi bullish, strategi dollar-cost averaging. Grafik candlestick divergensi bullish, strategi dollar-cost averaging.

ALLIGATOR, MFI, AO, ATR, DCA

Ini bukan DCA biasa, ini adalah investasi cerdas yang didorong oleh analisis teknis.

Strategi investasi tradisional adalah membeli secara membabi buta berdasarkan waktu.Hanya pada sinyal teknis yang mengkonfirmasi pemandang berbalik garis K untuk berlapis-lapis gudangIni adalah metode yang lebih baik daripada investasi reguler tanpa otak. Data retrospektif menunjukkan bahwa metode ini memiliki tingkat pengembalian yang disesuaikan dengan risiko lebih dari 30% lebih tinggi daripada investasi tetap waktu tradisional.

Logika intinya sederhana dan kasar:Ikan paus di bawah garis + titik terendah reversal + harga close above the midpoint = sinyal beliTidak semua K-Line layak mendapatkan uang Anda, hanya K-Line yang memenuhi ketiga syarat ini yang layak mendapatkan uang Anda.

Desain DCA 4 Lapisan: Sempurna Secara Matematika, Kejam Dalam Pertempuran

Ini adalah sistem yang sangat cerdas, dengan logika bertingkat:

  • Lantai 1“Signal teknis dikonfirmasi, segera masuk”
  • Lantai 2Posisi Berganda Saat Turun 4%
  • Lantai 3“Kalau turun 10 persen, maka kita harus menaikkan lagi dan melipatgandakan posisi”.
  • Lantai 4Posisi terus berlipat ganda setelah turun 22 persen

Harapan matematika itu indah, tetapi kenyataannya kejam.Jika Anda salah perhitungan, kerugian Anda akan meningkat dalam rasio 1:2:4:8. Ini bukan strategi yang dirancang untuk pengecut.

Catfish Wire + AO + MFI: Sistem Penyaringan Tiga

Sistem penangkapan ikan(13/8/5 siklus) Pastikan untuk hanya mencari peluang reversal dalam tren turun yang jelas. Harga harus berada di bawah mulut hiu, kondisi ini langsung menyaring 80% dari sinyal palsu.

Awesome Oscillator adalah negatif.: Pastikan momentum masih melemah, hindari mengambil lompatan saat momentum berakselerasi turun.

MFI mengekspresikan garis KIni adalah sinyal dari permainan uang yang sangat kuat. Trigger dapat muncul dalam 3 garis K berturut-turut.

Pemeriksaan realitasBahkan jika ada tiga filter, strategi tersebut masih dapat memicu sinyal yang salah secara berturut-turut.

2 kali lipat ATR: tidak serakah dan tidak konservatif

Penghentian set pada biaya rata-rata + 2 kali ATR, desain yang cukup cerdas.ATR yang dinamis berarti bergoyang besar waktu berhenti jauh, bergoyang jam berhenti dekat

Retrospeksi historis menunjukkan bahwa stop setting 2x ATR mampu menangkap 60-70% dari tren bouncing utama, sementara menghindari keangkuhan yang berlebihan yang menyebabkan keuntungan memuntahkan. Namun, dalam pasar yang turun secara sepihak, stop ini mungkin tidak akan pernah tercapai.

Manajemen Dana: Seni Matematika Pembagian Berat

Posisi diberi bobot 1:2:4:8 dengan total bobot 15. Ini berarti:

  • Lantai 1 menyumbang 6,67% dari total dana
  • Lantai 2 menyumbang 13,33% dari total dana
  • Lantai 3 menyumbang 26.67% dari total dana
  • Lantai 4 menyumbang 53,33% dari total dana

Logika dari desain iniJika Anda terus turun setelah tingkat 4 dipicu, Anda akan menghadapi kerugian besar.

Skenario yang Cocok: Bull Market Retracement, Bukan Copycat dari Bear Market

Strategi ini bekerja paling baik dalam situasi berikut:

  • Kembalikan Teknis di Pasar Banteng
  • Aset berkualitas tinggi mengalami penurunan jangka pendek
  • Yang cukup likuid dari mata uang utama

Skenario yang sama sekali tidak cocok

  • Tingkat sampah yang semakin memburuk
  • Saham kecil yang kehabisan likuiditas
  • Penurunan Berkelanjutan di Pasar Beruang

Tip Risiko: Kesempurnaan Matematika Tidak Sama dengan Realitas Pasar

Risiko terbesarJika pasar terus turun dan tidak ada bouncing setelah semua 4 lapisan DCA dipicu, Anda akan menghadapi lebih dari 30% penarikan akun.

Pemantauan di masa lalu tidak berarti keuntungan di masa depan.Strategi ini berkinerja buruk di pasar beruang cryptocurrency pada tahun 2022, yang memicu sinyal berturut-turut, tetapi harga terus turun.

Manajemen risiko yang ketat diperlukanInvestasi maksimum dalam strategi tunggal tidak boleh lebih dari 20% dari total dana dan harus diatur pada level akun untuk penarikan maksimum.

sebagai kesimpulanIni adalah strategi yang cerdas secara matematis dan logis, tetapi perlu digunakan dalam lingkungan pasar yang tepat. Ini bukan obat, apalagi mesin cetak.

Kode Sumber Strategi
//@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)