Strategi Pengesahan Trend Tanpa Mengecat Semula Heikin-Ashi

HA NRTS TCS EQTY MGMT
Tarikh penciptaan: 2025-03-28 17:35:26 Akhirnya diubah suai: 2025-03-28 17:35:26
Salin: 2 Bilangan klik: 416
2
fokus pada
319
Pengikut

Strategi Pengesahan Trend Tanpa Mengecat Semula Heikin-Ashi Strategi Pengesahan Trend Tanpa Mengecat Semula Heikin-Ashi

Gambaran keseluruhan

Ini adalah strategi pengesahan trend Heikin-Ashi yang inovatif yang bertujuan untuk menyelesaikan masalah pengesahan semula strategi Heikin-Ashi dalam pandangan perdagangan tradisional. Dengan mengira Heikin-Ashi dan mekanisme pengesahan trend berganda secara manual, strategi ini menyediakan kaedah perdagangan yang lebih dipercayai dan telus.

Prinsip Strategi

Strategi ini merangkumi tiga langkah utama:

  1. Mengambil kiraan dengan tangan tanpa melukis semula Haikanasi:

    • Menggunakan formula unik untuk mengira harga penutupan, harga pembukaan, harga tertinggi dan terendah
    • Memastikan data harga sejarah kekal stabil semasa kemas kini K-Line seterusnya
    • Mengelakkan masalah penggambaran semula yang sering berlaku dalam strategi tradisional Haikanasi
  2. Perkembangan yang lebih ketara:

    • Permintaan untuk pengesahan arah trend oleh pelbagai sumber berturut-turut
    • Isyarat masuk panjang: perlu melihat ekor X secara berturut-turut
    • Sinyal masuk kosong: Perlu turun naik X-Root berturut-turut
    • Meningkatkan kebolehpercayaan strategi dengan penapisan tanda palsu melalui pengesahan berganda
  3. Mod perdagangan fleksibel:

    • Menyokong trend tradisional
    • Menyediakan pilihan untuk menukarkan trend
    • Mod dagangan yang boleh disesuaikan (semua, hanya lebih, hanya kosong)

Kelebihan Strategik

  1. Menghapuskan masalah pemetaan semula: data sejarah kekal stabil, hasil pengukuran semula sangat selaras dengan pelaksanaan cakera
  2. Pengesahan pelbagai trend: mengurangkan transaksi yang tidak perlu dengan menyaring isyarat palsu secara berterusan
  3. Ketinggian boleh disesuaikan:
    • Tetapan had masuk dan keluar yang fleksibel
    • Sokongan untuk mengikuti trend dan menukarkan perdagangan
    • Garis K standard yang boleh disembunyikan, memberikan penglihatan yang jelas
  4. Sesuai untuk perdagangan jangka menengah dan jangka panjang: sangat sesuai untuk perdagangan swing dan trend

Risiko Strategik

  1. Kekurangan prestasi:

    • Tidak sesuai untuk dagangan scalping frekuensi tinggi
    • Pasaran goyah yang tidak menunjukkan trend mungkin lebih buruk
    • Parameter yang perlu disesuaikan untuk jangka masa yang berbeza
  2. Pengendalian risiko:

    • Mencadangkan mekanisme pencegahan yang sesuai
    • Parameter pengoptimuman berterusan dalam keadaan pasaran yang berbeza
    • Penyelidikan silang dengan penunjuk teknikal lain

Arah pengoptimuman strategi

  1. Parameter penyesuaian dinamik:

    • Membangunkan algoritma penarikan masuk dan keluar yang bersesuaian
    • Penyesuaian masa nyata bagi jumlah tempahan berturut-turut mengikut turun naik pasaran
    • Memperkenalkan algoritma pembelajaran mesin untuk mengoptimumkan pemilihan parameter
  2. Pengurusan risiko dipertingkatkan:

    • Pengurusan kedudukan dinamik bersepadu
    • Tambahkan penapis relevansi
    • Membangunkan mekanisme penangguhan kerugian yang lebih bijak
  3. Kumpulan Indeks:

    • Gabungan dengan petunjuk teknikal lain (seperti RSI, MACD)
    • Membangunkan sistem pengesahan berbilang indikator
    • Meningkatkan ketepatan dan kebolehpercayaan isyarat

ringkaskan

Strategi pengesahan trend penggambaran semula Haikan Assifi menyediakan pedagang dengan alat perdagangan yang lebih dipercayai dan telus melalui pengiraan tiub inovatif dan kaedah pengesahan trend berganda. Strategi ini menunjukkan potensi inovasi teknologi dalam perdagangan kuantitatif dengan menghilangkan masalah penggambaran semula, menyaring isyarat palsu dan menyediakan model perdagangan yang fleksibel.

Kod sumber strategi
/*backtest
start: 2025-03-15 00:00:00
end: 2025-03-27 00:00:00
period: 3h
basePeriod: 3h
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/

//@version=5
//© PineIndicators

strategy("Heikin-Ashi Non-Repainting Strategy [PineIndicators]", overlay=true, initial_capital=100000, default_qty_type=strategy.percent_of_equity, default_qty_value=100, max_boxes_count=500, max_labels_count=500, max_lines_count=500, commission_value=0.01, process_orders_on_close=true, slippage= 2, behind_chart=false)

//====================================
// INPUTS
//====================================
// Number of consecutive candles required for entry and exit
openThreshold = input.int(title="Number of Candles for Entry", defval=2, minval=1)
exitThreshold = input.int(title="Number of Candles for Exit", defval=2, minval=1)
// Trade mode selection: "Long & Short", "Only Long", or "Only Short"
tradeMode = input.string(title="Trade Mode", defval="Only Long", options=["Long & Short", "Only Long", "Only Short"])
// Option to invert the trading logic (bullish signals become short signals, and vice versa)
invertTrades = input.bool(title="Invert Trading Logic (Long ↔ Short)", defval=false)
// Option to hide the standard candles (bodies only)
hideStandard = input.bool(title="Hide Standard Candles", defval=true)
// Heikin-Ashi transparency is fixed (0 = fully opaque)
heikinTransparency = 0

//====================================
// HIDE STANDARD CANDLES
//====================================
// Hide the body of the standard candles by setting them to 100% transparent.
// Note: The wicks of the standard candles cannot be hidden via code.
barcolor(hideStandard ? color.new(color.black, 100) : na)

//====================================
// HEIKIN-ASHI CALCULATION
//====================================
// Calculate Heikin-Ashi values manually
haClose = (open + high + low + close) / 4
var float haOpen = na
haOpen := na(haOpen[1]) ? (open + close) / 2 : (haOpen[1] + haClose[1]) / 2
haHigh = math.max(high, math.max(haOpen, haClose))
haLow  = math.min(low, math.min(haOpen, haClose))

// Define colors for Heikin-Ashi candles (using fixed transparency)
bullColor = color.new(#0097a7, heikinTransparency)
bearColor = color.new(#ff195f, heikinTransparency)

//====================================
// PLOT HEIKIN-ASHI CANDLES
//====================================
// Plot the manually calculated Heikin-Ashi candles over the chart.
// The candle body, wicks, and borders will be colored based on whether the candle is bullish or bearish.
plotcandle(haOpen, haHigh, haLow, haClose, title="Heikin-Ashi", 
     color       = haClose >= haOpen ? bullColor : bearColor,
     wickcolor   = haClose >= haOpen ? bullColor : bearColor,
     bordercolor = haClose >= haOpen ? bullColor : bearColor,
     force_overlay = true)

//====================================
// COUNT CONSECUTIVE TREND CANDLES
//====================================
// Count the number of consecutive bullish or bearish Heikin-Ashi candles.
var int bullishCount = 0
var int bearishCount = 0

if haClose > haOpen
    bullishCount := bullishCount + 1
    bearishCount := 0
else if haClose < haOpen
    bearishCount := bearishCount + 1
    bullishCount := 0
else
    bullishCount := 0
    bearishCount := 0

//====================================
// DEFINE ENTRY & EXIT SIGNALS
//====================================
// The signals are based on the number of consecutive trend candles.
// In normal logic: bullish candles trigger a long entry and bearish candles trigger a short entry.
// If invertTrades is enabled, the signals are swapped.
var bool longEntrySignal  = false
var bool shortEntrySignal = false
var bool exitLongSignal   = false
var bool exitShortSignal  = false

if not invertTrades
    longEntrySignal  := bullishCount >= openThreshold
    shortEntrySignal := bearishCount >= openThreshold
    exitLongSignal   := bearishCount >= exitThreshold
    exitShortSignal  := bullishCount >= exitThreshold
else
    // Inverted logic: bullish candles trigger short entries and bearish candles trigger long entries.
    longEntrySignal  := bearishCount >= openThreshold
    shortEntrySignal := bullishCount >= openThreshold
    exitLongSignal   := bullishCount >= exitThreshold
    exitShortSignal  := bearishCount >= exitThreshold

//====================================
// APPLY TRADE MODE RESTRICTIONS
//====================================
// If the user selects "Only Long", disable short signals (and vice versa).
if tradeMode == "Only Long"
    shortEntrySignal := false
    exitShortSignal  := false
else if tradeMode == "Only Short"
    longEntrySignal  := false
    exitLongSignal   := false

//====================================
// TRADING STRATEGY LOGIC
//====================================
// Execute trades based on the calculated signals.

// If a long position is open:
if strategy.position_size > 0
    if shortEntrySignal
        strategy.close("Long", comment="Reverse Long")
        strategy.entry("Short", strategy.short, comment="Enter Short")
    else if exitLongSignal
        strategy.close("Long", comment="Exit Long")

// If a short position is open:
if strategy.position_size < 0
    if longEntrySignal
        strategy.close("Short", comment="Reverse Short")
        strategy.entry("Long", strategy.long, comment="Enter Long")
    else if exitShortSignal
        strategy.close("Short", comment="Exit Short")

// If no position is open:
if strategy.position_size == 0
    if longEntrySignal
        strategy.entry("Long", strategy.long, comment="Enter Long")
    else if shortEntrySignal
        strategy.entry("Short", strategy.short, comment="Enter Short")