Sistem kuantitatif strategi perdagangan terobosan julat harga dinamik berdasarkan tahap sokongan dan rintangan


Tarikh penciptaan: 2024-12-11 15:03:50 Akhirnya diubah suai: 2024-12-11 15:03:50
Salin: 3 Bilangan klik: 378
1
fokus pada
1617
Pengikut

Sistem kuantitatif strategi perdagangan terobosan julat harga dinamik berdasarkan tahap sokongan dan rintangan

Gambaran keseluruhan

Strategi ini adalah sistem perdagangan kuantitatif berdasarkan penembusan harga. Ia secara dinamik menetapkan batas atas dan bawah bagi harga dan berdagang apabila harga menembusi tahap-tahap penting ini. Gagasan utama strategi ini adalah untuk menangkap peluang trend ketika pasaran menembusi harga yang ditetapkan, sambil secara dinamik menyesuaikan harga untuk menyesuaikan diri dengan perubahan pasaran.

Prinsip Strategi

Strategi ini beroperasi berdasarkan mekanisme teras berikut: Pertama, mengikut ciri-ciri varieti perdagangan yang berbeza menetapkan langkah yang sesuai ((step_size), yang berdasarkan kira-kira 1.5% dari harga varieti. Sistem ini akan menetapkan satu kawasan harga di atas dan di bawah harga semasa, apabila harga melanggar had atas, mencetuskan beberapa isyarat; apabila ia melanggar had bawah, mencetuskan isyarat kosong.

Kelebihan Strategik

  1. Kebolehsuaian dinamik: Julat harga akan disesuaikan secara automatik dengan perubahan pasaran, membolehkan strategi menyesuaikan diri dengan keadaan pasaran yang berbeza.
  2. Keupayaan untuk menjejaki trend: Strategi ini dapat mengesan trend yang kuat dengan membenarkan penambahan simetri.
  3. Pengendalian risiko yang sempurna: menetapkan syarat-syarat berhenti yang jelas, secara automatik menutup kedudukan apabila harga jatuh ke bawah.
  4. Kebolehgunaan yang meluas: Strategi boleh digunakan di pelbagai pasaran dengan menetapkan parameter langkah yang sesuai untuk pelbagai jenis perdagangan.
  5. Kecekapan pengiraan yang tinggi: Menggunakan pengiraan yang berkekalan dan cekap untuk memastikan strategi berjalan lancar.

Risiko Strategik

  1. Risiko pasaran goyah: Dalam pasaran goyah dalam zon mungkin sering mencetuskan pecah palsu yang menyebabkan kerugian berturut-turut.
  2. Risiko pengurusan wang: Simultaneous pembiayaan boleh menyebabkan kedudukan yang terlalu tertumpu, yang memerlukan kawalan yang wajar terhadap risiko risiko dalam satu arah.
  3. Risiko slippage: Apabila berlaku turun naik yang kuat, mungkin terdapat slippage yang lebih besar yang mempengaruhi prestasi strategi.
  4. Sensitiviti parameter: Kesesuaian penyetempatan langkah panjang memberi kesan langsung kepada kesan strategi dan perlu diuji dengan baik.

Arah pengoptimuman strategi

  1. Pengenalan penunjuk kadar turun naik: boleh disesuaikan mengikut kadar turun naik pasaran, meningkatkan fleksibiliti strategi.
  2. Menambah mekanisme penapisan: Tambah indikator pengesahan trend, mengurangkan kerugian akibat penembusan palsu.
  3. Pengurusan kedudukan yang lebih baik: reka bentuk mekanisme kawalan kedudukan yang lebih halus, mengimbangi keuntungan dan risiko.
  4. Optimumkan pelaksanaan pesanan: Anda boleh menambah laluan pesanan pintar untuk mengurangkan kesan slippage.
  5. Menambah dimensi masa: mengambil kira ciri-ciri masa pasaran, menyesuaikan parameter strategi pada masa yang berbeza.

ringkaskan

Ini adalah strategi untuk mengesan trend yang dirancang dengan logik dan logik yang jelas. Dengan menetapkan dan menyesuaikan julat harga dinamik, digabungkan dengan pengurusan kedudukan yang fleksibel, strategi ini dapat menangkap peluang tren pasaran dengan berkesan. Walaupun terdapat beberapa ruang untuk pengoptimuman, secara keseluruhan, strategi ini memberikan kerangka perdagangan kuantitatif yang mantap. Dengan pengoptimuman dan penambahbaikan yang berterusan, prestasi strategi dapat ditingkatkan.

Kod sumber strategi
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-09 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// @version=5
// 每个图表上画对应间隔的横线,自己手画吧
// 同方向追加20单,订单成交后重新计算,每个tick重新计算,变量保存1000个周期,k线结束后再处理一次订单,按照代码顺序来绘制plot
strategy("Price Level Breakout Strategy", overlay=true, pyramiding=200, calc_on_order_fills=true, calc_on_every_tick=true, max_bars_back=1000, process_orders_on_close=true, explicit_plot_zorder=true)
// var创建持久性变量,:=是更新变量,不重新声明
// 这个是全局变量
// a = array.new<string>(200)
// array.push(a, "a")
// plot(close, color = array.get(a, close > open ? 1 : 0))
string ticker = syminfo.ticker
var float step_size = 1000
// label.new(x=bar_index, y=close, text="当前品种代码: " + ticker)
// 根据定值画1.5的平行线
if ticker == "000300"
    step_size := 4000 * 0.015
if ticker == "XAUUSD"
    step_size := 3000 * 0.016
if ticker == "BTCUSD"
    step_size := 60000 * 0.015
if ticker == "SILVER"
    step_size := 50 * 0.015
if ticker == "UKOIL"
    step_size := 150 * 0.015
if ticker == "GBPUSD"
    step_size := 1.6 * 0.015
if ticker == "EURUSD"
    step_size := 1.1 * 0.015
    // 从0开始画200条间隔线
if ticker == "USDJPY"
    step_size := 100 * 0.015
var float start_value = close
var float up_number = close + step_size
var float low_number = close - step_size
// hline(3.14, title='Pi', color=color.blue, linestyle=hline.style_dotted, linewidth=2)
// plot(1)
// 当价格突破上限,产生买入信号
if close > up_number
    // 生成买入信号
    strategy.entry(id = "Buy", direction = strategy.long)
    // 更新新的价格区间
    start_value := start_value + step_size
    up_number := start_value + step_size
    low_number := start_value - step_size
    strategy.close(id = "Sell")
// 当价格跌破下限,产生卖出信号
if close < low_number
    // 生成卖出信号
    strategy.entry("Sell", strategy.short)
    // 更新新的价格区间
    start_value := start_value - step_size
    up_number := start_value + step_size
    low_number := start_value - step_size
    strategy.close(id = "Buy")