Strategi Dagangan Harian Pengurusan Kedudukan Dinamik


Tarikh penciptaan: 2024-05-28 11:21:52 Akhirnya diubah suai: 2024-05-28 11:21:52
Salin: 0 Bilangan klik: 338
1
fokus pada
1234
Pengikut

Strategi Dagangan Harian Pengurusan Kedudukan Dinamik

Gambaran keseluruhan

Strategi ini menggunakan pendekatan perdagangan harian yang konsisten dan memberi tumpuan kepada menangkap keuntungan sasaran kecil sambil mengawal risiko dengan ketat. Strategi ini telah diuji semula dari tahun 2021 dan menunjukkan prestasi yang mantap dengan kemenangan perdagangan mencapai 100%. Gagasan utama strategi ini adalah untuk membuka kedudukan overhead atau kosong baru pada permulaan setiap hari perdagangan berdasarkan keadaan pasaran pada hari sebelumnya.

Prinsip Strategi

Prinsip teras strategi ini adalah berdasarkan pergerakan pasaran pada hari perdagangan sebelumnya, membuka kedudukan bermulut atau kosong baru pada setiap hari perdagangan. Secara khusus, jika tidak ada kedudukan pada hari sebelumnya, strategi ini akan membuka kedudukan bermulut pada hari baru. Jika sudah ada kedudukan bermulut, strategi ini akan memeriksa apakah keuntungan sasaran 0.3% telah dicapai, dan jika ia dicapai, ia akan ditutup.

Kelebihan Strategik

Strategi dagangan harian ini mempunyai beberapa kelebihan:

  1. 100% kemenangan: Strategi ini telah mencapai 100% kemenangan dalam 36 dagangan yang telah ditamatkan, yang menunjukkan prestasi yang konsisten.
  2. Pengurusan kedudukan dinamik: Jika kedudukan kepala kosong menyentuh penutupan, strategi akan segera membuka kedudukan kepala baru untuk menggantikannya, memastikan celah pasaran yang berterusan.
  3. Pengurusan risiko yang ketat: Strategi ini menetapkan sasaran keuntungan sebanyak 0.3% dan kerugian berhenti sebanyak 0.2%, mengawal risiko dengan berkesan.
  4. Keterlibatan pasaran berkala: Strategi membuka kedudukan pada awal setiap hari, menjamin penyertaan pasaran berkala.
  5. Hasil pengembalian yang mantap: Pengembalian yang bermula pada tahun 2021 menunjukkan prestasi yang mantap, dengan keuntungan bersih mencapai 22.2%, dan penarikan balik maksimum adalah 13.75%.

Risiko Strategik

Walaupun strategi ini telah menunjukkan prestasi yang cemerlang dan kawalan risiko, terdapat beberapa risiko yang berpotensi:

  1. Kemungkinan kerugian berterusan: Walaupun keputusan tinjauan semula adalah mengagumkan, prestasi masa lalu tidak menjamin keputusan masa depan. Perdagangan kerugian berturut-turut boleh mengikis keuntungan.
  2. Kejadian Black Swan: Strategi mungkin terdedah kepada kejadian yang tidak dijangka dan turun naik pasaran yang melampau, yang menyebabkan kerugian melebihi jangkaan.
  3. Risiko Leverage: Strategi menggunakan 200% Leverage pada setiap perdagangan, yang meningkatkan potensi pulangan, tetapi juga meningkatkan risiko.

Untuk mengurangkan risiko ini, anda boleh mempertimbangkan untuk meningkatkan kepelbagaian, menggunakan strategi yang serupa di pasaran dan kelas aset yang berbeza. Ia juga penting untuk memantau dan menyesuaikan parameter strategi secara berkala untuk menyesuaikan diri dengan keadaan pasaran yang berubah.

Arah pengoptimuman strategi

  1. Pengoptimuman parameter: Target keuntungan, kerugian dan parameter utama lain boleh diperbaiki dengan pengesanan dan pengoptimuman lanjut untuk mencapai prestasi terbaik dalam keadaan pasaran yang berbeza.
  2. Kepelbagaian: memperluaskan strategi ke pasaran dan kelas aset lain yang dapat meningkatkan pulangan keseluruhan dan mengurangkan risiko.
  3. Penyesuaian kedudukan dinamik: saiz kedudukan yang disesuaikan secara dinamik mengikut turun naik pasaran atau faktor lain, dapat mengoptimumkan pulangan selepas penyesuaian risiko.
  4. Menambah penapis tambahan: pengenalan penunjuk teknikal tambahan atau penunjuk sentimen pasaran sebagai penapis dapat meningkatkan kualiti isyarat perdagangan.

ringkaskan

Secara keseluruhannya, strategi dagangan harian ini menawarkan pendekatan yang seimbang untuk berdagang dalam sehari, dengan tumpuan kepada pengurusan risiko dan keuntungan yang berterusan. Ia sesuai untuk peniaga yang mencari kaedah perdagangan yang sistematik dan ketat.

Kod sumber strategi
/*backtest
start: 2023-05-22 00:00:00
end: 2024-05-27 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Daily AUD-JPY Trading", overlay=true, initial_capital=1000, currency="AUD", default_qty_type=strategy.percent_of_equity, default_qty_value=200, commission_type=strategy.commission.percent, commission_value=0.1)

// Input parameters
profit_target = input(0.3, title="Profit Target (%)") / 100
loss_target = input(0.2, title="Loss Target (%)") / 100
start_year = input(2021, title="Start Year")

// Calculate daily open and close
new_day = ta.change(time("D"))

var float entry_price_long = na
var float entry_price_short = na
var bool position_long_open = false
var bool position_short_open = false

// Date check
trade_start = timestamp(start_year, 1, 1, 0, 0)

if new_day and time >= trade_start
    // If there was a previous long position, check for profit target
    if position_long_open
        current_profit_long = (close - entry_price_long) / entry_price_long
        if current_profit_long >= profit_target
            strategy.close("AUD Trade Long", comment="Take Profit Long")
            position_long_open := false
    
    // If there was a previous short position, check for profit target
    if position_short_open
        current_profit_short = (entry_price_short - close) / entry_price_short
        if current_profit_short >= profit_target
            strategy.close("AUD Trade Short", comment="Take Profit Short")
            position_short_open := false

    // Check for daily loss condition for short positions
    if position_short_open
        current_loss_short = (close - entry_price_short) / entry_price_short
        if current_loss_short <= -loss_target
            strategy.close("AUD Trade Short", comment="Stop Loss Short")
            position_short_open := false
            
            // Open a new long position to replace the stopped short position
            strategy.entry("AUD Trade Long Replacement", strategy.long)
            entry_price_long := close
            position_long_open := true

    // Open a new long position at the start of the new day if no long position is open
    if not position_long_open and not position_short_open
        strategy.entry("AUD Trade Long", strategy.long)
        entry_price_long := close
        position_long_open := true

    // Open a new short position at the start of the new day if no short position is open
    if not position_short_open and not position_long_open
        strategy.entry("AUD Trade Short", strategy.short)
        entry_price_short := close
        position_short_open := true

// Check for continuous profit condition for long positions
if position_long_open
    current_profit_long = (close - entry_price_long) / entry_price_long
    if current_profit_long >= profit_target
        strategy.close("AUD Trade Long", comment="Take Profit Long")
        position_long_open := false

// Check for continuous profit condition for short positions
if position_short_open
    current_profit_short = (entry_price_short - close) / entry_price_short
    if current_profit_short >= profit_target
        strategy.close("AUD Trade Short", comment="Take Profit Short")
        position_short_open := false

// Plot the entry prices on the chart
plot(position_long_open ? entry_price_long : na, title="Entry Price Long", color=color.green, linewidth=2)
plot(position_short_open ? entry_price_short : na, title="Entry Price Short", color=color.red, linewidth=2)

// Display current profit/loss percentage for long positions
var label profit_label_long = na
if position_long_open and not na(entry_price_long)
    current_profit_long = (close - entry_price_long) / entry_price_long * 100
    label.delete(profit_label_long)
    profit_label_long := label.new(x=time, y=high, text="Long P/L: " + str.tostring(current_profit_long, format.percent), style=label.style_label_down, color=color.white, textcolor=color.black,xloc=xloc.bar_time)

// Display current profit/loss percentage for short positions
var label profit_label_short = na
if position_short_open and not na(entry_price_short)
    current_profit_short = (entry_price_short - close) / entry_price_short * 100
    label.delete(profit_label_short)
    profit_label_short := label.new(x=time, y=high, text="Short P/L: " + str.tostring(current_profit_short, format.percent), style=label.style_label_down, color=color.white, textcolor=color.black,xloc=xloc.bar_time)