Strategi penjejakan dinamik untuk dagangan awal kejayaan mata tinggi dan rendah

SMA EMA ATR TS TP SL RSI MACD BREAKOUT Trailing Stop
Tarikh penciptaan: 2025-03-31 11:21:39 Akhirnya diubah suai: 2025-03-31 11:21:39
Salin: 0 Bilangan klik: 290
2
fokus pada
319
Pengikut

Strategi penjejakan dinamik untuk dagangan awal kejayaan mata tinggi dan rendah Strategi penjejakan dinamik untuk dagangan awal kejayaan mata tinggi dan rendah

Gambaran keseluruhan

Strategi ini menggunakan zon harga yang terbentuk pada waktu pagi sebagai rujukan penting, menggabungkan mekanisme penangguhan kerugian yang dinamika, yang dapat menangkap pergerakan dalam hari dan dapat mengawal risiko dengan berkesan. Dengan mengenal pasti ketinggian dan ketinggian pada waktu 8:30 AM, strategi ini memantau penembusan harga pada masa perdagangan berikutnya (dari 8:40 AM hingga 3:00 PM) dan hanya melakukan perdagangan yang berjaya menembus hari pertama, sambil menggunakan pengesanan kerugian dan penangguhan tetap untuk menguruskan kedudukan.

Prinsip Strategi

Prinsip teras strategi ini adalah menggunakan julat harga yang terbentuk pada jam 8:30 AM sebelum pembukaan pasaran sebagai titik rujukan utama. Proses kerja strategi terperinci adalah seperti berikut:

  1. Kenali dan rekodkan harga tertinggi dan terendah pada carta 8:30 AM
  2. Mengekalkan tahap harga ini sebagai garis sokongan dan rintangan utama dalam perdagangan sepanjang hari
  3. Sinyal perdagangan akan dicetuskan apabila harga mula-mula menembusi titik tinggi atau rendah pada jam 8:30 pagi dan penutupan ditutup.
  4. Hanya menjalankan urus niaga pada waktu perdagangan yang ditetapkan (8:40 AM hingga 3:00 PM)
  5. Hanya satu dagangan yang dijalankan setiap hari perdagangan (berbilang atau kosong)
  6. Perlindungan keuntungan menggunakan mekanisme hentian kecederaan yang dijejaki secara dinamik
  7. Pada masa yang sama, menetapkan pegangan dan tahap berhenti untuk perlindungan tambahan

Strategi menggunakan beberapa pembolehubah utama untuk mengesan keadaan perdagangan: tinggi (((high830) dan rendah (((low830) mencatat harga tertinggi dan terendah pada carta 8:30 AM; pembolehubah tradeTakenToday memastikan hanya satu perdagangan yang dilaksanakan setiap hari; pertamaBreakoutHappened mengesahkan sama ada terdapat penembusan pertama. Syarat perdagangan perlu dipenuhi pada masa yang sama: harga mencapai puncak atau titik rendah pada pukul 8:30 AM, adalah penembusan pertama pada hari itu, perdagangan hari itu belum dilaksanakan, berada dalam tempoh yang dibenarkan untuk perdagangan.

Syarat keluar strategi termasuk: harga menyentuh garis berhenti pergerakan dinamik, mencapai tahap berhenti yang ditetapkan atau menyentuh garis berhenti tetap. Garis berhenti pergerakan dinamik akan disesuaikan dengan harga bergerak ke arah yang menguntungkan, sehingga mengunci sebahagian keuntungan.

Kelebihan Strategik

Dengan analisis kod yang mendalam, strategi ini mempunyai beberapa kelebihan yang ketara:

  1. Peraturan perdagangan yang jelasStrategi: menetapkan isyarat masuk berdasarkan tahap harga yang jelas ((8:30 AM tinggi rendah) dan syarat perdagangan jelas dan mudah difahami dan dilaksanakan.

  2. Pengurusan risiko yang lebih baikStrategi ini menggabungkan pelbagai mekanisme kawalan risiko, termasuk tracking stop loss secara dinamik, stop loss tetap dan seting stop loss, untuk mengawal risiko setiap dagangan dengan berkesan.

  3. Mengelakkan perdagangan berlebihan: Mengelakkan peningkatan kos transaksi dan ketidakseimbangan emosi yang disebabkan oleh perdagangan yang kerap dengan hanya melakukan satu dagangan sehari.

  4. Penapis masa: Dengan menetapkan tetingkap waktu dagangan tertentu ((8:40 AM hingga 3:00 PM), mengelakkan masa pembukaan dan penutupan pasaran yang bergelombang.

  5. Perlindungan keuntungan dinamikMekanisme Tracking Stop mampu menyesuaikan kedudukan stop loss apabila harga bergerak ke arah yang menguntungkan, melindungi mata wang yang menguntungkan dan tidak akan mengakhiri trend besar yang berpotensi terlalu awal.

  6. Pelaksanaan automatik: Strategi sepenuhnya automatik, mengelakkan gangguan emosi manusia, dan dapat menjalankan perdagangan dengan ketat mengikut peraturan yang telah ditetapkan.

  7. Sangat boleh menyesuaikan diriStrategi boleh disesuaikan dengan keadaan pasaran yang berbeza dan keutamaan risiko peribadi melalui parameter yang ditetapkan (contohnya, Tracking Stop Loss Points, Tracking Stop Loss Points).

Risiko Strategik

Walaupun strategi ini direka dengan baik, terdapat risiko yang berpotensi:

  1. Risiko penembusan palsu: Harga mungkin akan berpatah balik dengan cepat selepas menembusi paras tinggi dan rendah 8:30 AM, menyebabkan isyarat yang salah dan kerugian yang tidak perlu. Penyelesaian adalah dengan menambah mekanisme pengesahan, seperti meminta harga untuk bertahan untuk jangka masa tertentu atau ketara selepas penembusan.

  2. Ketidakseimbangan: Jika pasaran tidak bergolak, harga mungkin tidak dapat menembusi jarak yang ditetapkan pada pukul 8:30 pagi dengan berkesan, menyebabkan peluang perdagangan berkurangan. Anda boleh mempertimbangkan untuk menyesuaikan parameter strategi atau menangguhkan penggunaan strategi dalam keadaan turun naik rendah.

  3. Terlalu bergantung pada satu titik masaStrategi ini sangat bergantung pada prestasi harga pada jam 8:30 pagi, dan jika terdapat pergerakan yang tidak normal pada waktu itu, ia mungkin menetapkan kawasan perdagangan yang tidak munasabah. Anda boleh mempertimbangkan untuk menggunakan purata pada beberapa titik waktu atau menggabungkannya dengan petunjuk teknikal lain.

  4. Kepekaan ParameterPengaturan berhenti dan hentian yang dijejaki mempunyai kesan besar terhadap prestasi strategi, dan parameter yang berbeza mungkin diperlukan dalam keadaan pasaran yang berbeza. Ia disyorkan untuk melakukan pengembalian sepenuhnya untuk mencari kombinasi parameter yang optimum.

  5. Kekurangan pengurusan danaStrategi semasa tidak mengandungi peraturan pengurusan kedudukan khusus, yang boleh menyebabkan kawalan risiko yang tidak mencukupi. Disyorkan untuk menambah mekanisme penyesuaian kedudukan berdasarkan turun naik.

  6. Risiko jurang pasaran: Jika terdapat kekurangan besar di pasaran, penutupan tetap mungkin tidak dapat dilaksanakan dengan berkesan, menyebabkan kerugian melebihi jangkaan. Anda boleh mempertimbangkan untuk menggunakan penutupan peratusan sebagai ganti penutupan titik tetap.

Arah pengoptimuman strategi

Berdasarkan analisis kod, strategi ini boleh dioptimumkan dengan cara berikut:

  1. Tambah pengesahan jumlahStrategi semasa hanya berdasarkan penilaian harga, tanpa mempertimbangkan faktor kuantiti. Menambah pengesahan kuantiti dapat meningkatkan kebolehpercayaan isyarat penembusan, menapis penembusan palsu dengan kuantiti yang rendah. Kaedah pengoptimuman adalah meningkatkan kuantiti penembusan dalam keadaan kemasukan melebihi peratusan tertentu purata penembusan beberapa baris K sebelumnya.

  2. Memperkenalkan penapis persekitaran pasaranPelaksanaan strategi mungkin berbeza dalam keadaan pasaran yang berbeza. Anda boleh melakukan perdagangan dalam keadaan pasaran yang sesuai dengan menambahkan indikator trend (seperti ADX, purata bergerak, dll.) atau indikator kadar turun naik (seperti ATR).

  3. Optimumkan parameter Stop Loss dan Stop Stop: Seting stop loss dan stop loss yang digunakan pada masa ini adalah seting titik tetap, tetapi ia boleh diubah menjadi penyesuaian dinamik berdasarkan turun naik pasaran (seperti ATR) untuk membuat strategi lebih sesuai dengan keadaan pasaran yang berbeza.

  4. Menambah analisis jangka masa berbilangPerdagangan dalam jangka masa yang lebih tinggi: Perdagangan dalam jangka masa yang lebih tinggi: Perdagangan dalam jangka masa yang lebih tinggi: Perdagangan dalam jangka masa yang lebih tinggi: Perdagangan dalam jangka masa yang lebih tinggi: Perdagangan dalam jangka masa yang lebih tinggi: Perdagangan dalam jangka masa yang lebih tinggi: Perdagangan dalam jangka masa yang lebih tinggi: Perdagangan dalam jangka masa yang lebih tinggi: Perdagangan dalam jangka masa yang lebih tinggi:

  5. Menambah penapis isyarat balikPertimbangkan isyarat-isyarat kebalikan daripada penunjuk-penunjuk pasaran yang lain (seperti RSI, MACD, dan lain-lain) dan elakkan berdagang dalam keadaan yang melampau.

  6. Memperkenalkan mekanisme penangguhan dinamikSelain daripada mengesan hentian, penyesuaian sasaran hentian secara dinamik boleh dipertimbangkan, seperti menetapkan beberapa sasaran hentian berdasarkan tahap rintangan sokongan atau kelipatan kadar turun naik.

  7. Optimumkan tetingkap masa perdagangan: Menggunakan analisis data sejarah untuk mengenal pasti waktu perdagangan yang paling sesuai, yang mungkin berbeza untuk pasaran atau produk yang berbeza.

ringkaskan

Strategi pelacakan dinamik penembusan titik rendah dan tinggi pada waktu pagi adalah kaedah perdagangan dalam hari berdasarkan penembusan jarak harga, menangkap peluang penembusan harga dalam hari dengan mengenal pasti titik tinggi dan rendah yang terbentuk pada jam 8:30 pagi, digabungkan dengan mekanisme berhenti kehilangan yang dinamik. Peraturan strategi ini jelas, pengurusan risiko yang baik, dan risiko perdagangan berlebihan dikendalikan dengan berkesan dengan mengehadkan jumlah perdagangan harian dan menetapkan tetingkap waktu perdagangan.

Kod sumber strategi
/*backtest
start: 2025-02-28 00:00:00
end: 2025-03-30 00:00:00
period: 5m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/

//@version=5
strategy("Breakout of 8:30 AM High/Low", overlay=true)

// Identify 8:30 AM candle
is830 = (hour == 8 and minute == 30)

// Persistent variables for tracking
var float high830 = na
var float low830 = na
var int lastTradeDay = na
var bool tradeTakenToday = false

// Store 8:30 AM high and low
if is830
    high830 := high
    low830 := low

// Ensure high/low persist throughout the day
high830 := nz(high830, high830)
low830 := nz(low830, low830)

// Plot the high and low of the 8:30 AM candle
plot(high830, color=color.green, title="8:30 High", linewidth=2)
plot(low830, color=color.red, title="8:30 Low", linewidth=2)

// Reset tradeTakenToday at the start of each new trading day
if dayofweek != lastTradeDay or (hour == 0 and minute == 0)
    tradeTakenToday := false
    lastTradeDay := dayofweek  // Update last trade day to the current day

// Track first breakout candle that closes outside the range
firstBreakoutHappened = ta.barssince(close > high830 or close < low830) == 0

// Time restriction: Only trade between 8:40 AM and 3:00 PM
isTradingTime = (hour == 8 and minute >= 40) or (hour > 8 and hour < 15)

// Entry conditions: first 15-min candle close outside the range & within trading time
longEntry = close > high830 and firstBreakoutHappened and not tradeTakenToday and isTradingTime
shortEntry = close < low830 and firstBreakoutHappened and not tradeTakenToday and isTradingTime

// Trailing stop and take profit logic inputs
ticks = input.int(15, title="Trailing Stop Loss Ticks", minval=1) // Trailing stop in ticks
takeProfit = input.int(30, title="Take Profit (in Ticks)", minval=1) // Take profit in ticks

// Variables to track trailing stop levels
var float longTrailingStop = na
var float shortTrailingStop = na

// Update trailing stop levels for long trades
if (longEntry)
    longTrailingStop := close - ticks * syminfo.mintick // Initialize trailing stop for long

// Update trailing stop levels for short trades
if (shortEntry)
    shortTrailingStop := close + ticks * syminfo.mintick // Initialize trailing stop for short

// Update trailing stop levels during the trade
if (not na(longTrailingStop))
    longTrailingStop := math.max(longTrailingStop, close - ticks * syminfo.mintick) // Move trailing stop up for long
if (not na(shortTrailingStop))
    shortTrailingStop := math.min(shortTrailingStop, close + ticks * syminfo.mintick) // Move trailing stop down for short

// Exit Conditions (Trailing Stop)
endLongTrade = not na(longTrailingStop) and close <= longTrailingStop
endShortTrade = not na(shortTrailingStop) and close >= shortTrailingStop

// Reset trailing stop levels after exit
if (endLongTrade)
    longTrailingStop := na
if (endShortTrade)
    shortTrailingStop := na

// Stop loss and take profit settings
stopLoss = 100

// Execute trades (only one per day)
if longEntry
    strategy.entry("Long", strategy.long, comment="Breakout Long")
    strategy.exit("Long TP/SL", from_entry="Long", stop=close - stopLoss, limit=close + takeProfit * syminfo.mintick)
    tradeTakenToday := true

if shortEntry
    strategy.entry("Short", strategy.short, comment="Breakout Short")
    strategy.exit("Short TP/SL", from_entry="Short", stop=close + stopLoss, limit=close - takeProfit * syminfo.mintick)
    tradeTakenToday := true

// Exit trades using trailing stops
if endLongTrade
    strategy.close("Long", comment="Trailing Stop Hit for Long")
if endShortTrade
    strategy.close("Short", comment="Trailing Stop Hit for Short")