Sumber dimuat naik... memuat...

Strategi Dagangan Kuantitatif Pengikut Trend dan Blok Perintah

Penulis:ChaoZhang, Tarikh: 2024-07-29 13:57:12
Tag:EMASMAOB

img

Ringkasan

Ini adalah strategi perdagangan kuantitatif yang kompleks yang menggabungkan beberapa penunjuk teknikal dan konsep perdagangan. Strategi ini terutamanya berdasarkan blok pesanan, pengesanan perubahan trend, persilangan purata bergerak, dan analisis pelbagai jangka masa untuk menjana isyarat perdagangan.

Prinsip Strategi

  1. Blok Perintah: Strategi menggunakan fungsi tersuai untuk mengira Blok Perintah, yang merupakan tahap harga yang signifikan biasanya mewakili kawasan pesanan institusi yang pekat.

  2. Pengesanan Perubahan Trend: Menggunakan persilangan Purata Bergerak Sederhana (SMA) untuk mengenal pasti perubahan trend yang berpotensi.

  3. Analisis Pelbagai Jangka Masa: Mengira purata bergerak eksponen 50 tempoh dan 200 tempoh (EMA) pada jangka masa 1 jam untuk menentukan trend pasaran yang lebih luas.

  4. Syarat kemasukan:

    • Lama: Apabila isyarat aliran naik muncul pada carta 5 minit, harga pecah di atas Blok Perintah, dan 50 EMA di atas 200 EMA pada carta 1 jam.
    • Pendek: Apabila isyarat trend menurun muncul pada carta 5 minit, harga pecah di bawah Blok Perintah, dan 50 EMA berada di bawah 200 EMA pada carta 1 jam.
  5. Strategi Keluar: Menggunakan peratusan tetap mengambil keuntungan dan tahap berhenti kerugian untuk menguruskan risiko dan mengunci keuntungan.

Kelebihan Strategi

  1. Analisis Berbilang Dimensi: Menggabungkan pelbagai jangka masa dan penunjuk teknikal, memberikan perspektif pasaran yang lebih komprehensif.

  2. Mengikuti trend: Dengan berdagang ke arah trend yang lebih besar, ia meningkatkan kebarangkalian perdagangan yang menguntungkan.

  3. Entri yang tepat: Menggunakan Blok Perintah dan perubahan trend jangka pendek untuk mengoptimumkan masa kemasukan.

  4. Pengurusan Risiko: Menggunakan peratusan keuntungan dan stop-loss yang telah ditetapkan, mengawal risiko untuk setiap perdagangan.

  5. Kebolehsesuaian: Parameter strategi boleh diselaraskan untuk menyesuaikan diri dengan persekitaran pasaran yang berbeza.

Risiko Strategi

  1. Overtrading: Boleh menghasilkan isyarat perdagangan yang kerap di pasaran yang sangat tidak menentu, meningkatkan kos transaksi.

  2. Risiko tergelincir: Di pasaran yang kurang cair, harga pelaksanaan sebenar mungkin menyimpang dengan ketara dari harga ideal.

  3. Risiko Pembalikan Trend: Strategi mungkin mengalami kerugian berturut-turut berhampiran titik perubahan trend.

  4. Sensitiviti Parameter: Prestasi strategi mungkin sangat sensitif terhadap tetapan parameter, yang memerlukan pengoptimuman berterusan.

  5. Kebergantungan persekitaran pasaran: Strategi mungkin tidak berfungsi dengan baik di pasaran yang berbeza atau berayun dengan cepat.

Arahan Pengoptimuman Strategi

  1. Penyesuaian Parameter Dinamik: Pertimbangkan untuk menyesuaikan peratusan mengambil keuntungan dan berhenti kerugian secara automatik berdasarkan turun naik pasaran.

  2. Penapis Tambahan: Memperkenalkan penunjuk teknikal atau sentimen pasaran tambahan untuk mengurangkan isyarat palsu.

  3. Penapisan Masa: Tambah sekatan jendela masa dagangan untuk mengelakkan tempoh kecairan yang rendah.

  4. Pengurusan Posisi: Melaksanakan strategi pengurusan kedudukan yang lebih canggih, seperti ukuran kedudukan berdasarkan turun naik.

  5. Ujian balik dan pengoptimuman: Lakukan ujian balik data sejarah yang lebih luas untuk mencari kombinasi parameter yang optimum.

  6. Pengiktirafan persekitaran pasaran: Membangunkan algoritma untuk mengenal pasti keadaan pasaran yang berbeza dan menyesuaikan strategi dengan sewajarnya.

Ringkasan

Ini adalah strategi dagangan kuantitatif yang komprehensif dan logiknya kompleks yang menggabungkan analisis pelbagai jangka masa, teori Blok Perintah, dan teknik mengikuti trend. Dengan mencari titik masuk yang tepat ke arah trend yang lebih besar, strategi ini bertujuan untuk meningkatkan kadar kejayaan perdagangan. Walau bagaimanapun, kerana kerumitan, strategi ini juga menghadapi cabaran seperti overfit dan sensitiviti parameter. Pengoptimuman masa depan harus memberi tumpuan kepada peningkatan kemampuan dan ketahanan strategi, termasuk penyesuaian parameter dinamik, penapis tambahan, dan kaedah pengurusan kedudukan yang lebih canggih. Secara keseluruhan, strategi ini menyediakan rangka kerja yang sangat baik untuk perdagangan frekuensi tinggi tetapi memerlukan pelaksanaan dan pemantauan dan penyesuaian yang teliti dan berterusan.


/*backtest
start: 2024-06-28 00:00:00
end: 2024-07-28 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("S&P 500", overlay=true)
// Parámetros
length = input(14, "Longitud")
src = input(close, "Fuente")
profit_percent = input.float(0.08955, "Porcentaje de ganancia", step=0.00001, minval=0)
stop_loss_percent = input.float(0.04477, "Porcentaje de stop loss", step=0.00001, minval=0)
// Función para calcular el Order Block
order_block(src, len) =>
    highest = ta.highest(high, len)
    lowest = ta.lowest(low, len)
    mid = (highest + lowest) / 2
    ob = src > mid ? highest : lowest
    ob
// Cálculo del Order Block
ob = order_block(src, length)
// Función para detectar cambios de tendencia
trend_change(src, len) =>
    up = ta.crossover(src, ta.sma(src, len))
    down = ta.crossunder(src, ta.sma(src, len))
    [up, down]
// Detectar cambios de tendencia
[trend_up, trend_down] = trend_change(src, length)
// Calcular EMA 50 y EMA 200 en timeframe de 1 hora
ema50_1h = request.security(syminfo.tickerid, "60", ta.ema(close, 50))
ema200_1h = request.security(syminfo.tickerid, "60", ta.ema(close, 200))
// Condiciones de EMA
ema_buy_condition = ema50_1h > ema200_1h
ema_sell_condition = ema50_1h < ema200_1h
// Señales de compra y venta
buy_signal = trend_up and close > ob and ema_buy_condition
sell_signal = trend_down and close < ob and ema_sell_condition
// Ejecutar la estrategia
if (buy_signal)
    strategy.entry("Compra", strategy.long)
if (sell_signal)
    strategy.entry("Venta", strategy.short)
// Calcular precios de toma de ganancias y stop loss
if (strategy.position_size != 0)
    entry_price = strategy.position_avg_price
    is_long = strategy.position_size > 0
    take_profit = entry_price * (1 + (is_long ? 1 : -1) * profit_percent / 100)
    stop_loss = entry_price * (1 + (is_long ? -1 : 1) * stop_loss_percent / 100)
    strategy.exit(is_long ? "Long TP/SL" : "Short TP/SL", limit=take_profit, stop=stop_loss)
// Visualización
plot(ob, "Order Block", color.purple, 2)
plot(ta.sma(src, length), "SMA", color.blue)
plot(ema50_1h, "EMA 50 1h", color.yellow)
plot(ema200_1h, "EMA 200 1h", color.white)
bgcolor(buy_signal ? color.new(color.green, 90) : sell_signal ? color.new(color.red, 90) : na)

Berkaitan

Lebih lanjut