Jia Yibing Trend Kuantitatif Strategi Perdagangan Momentum


Tarikh penciptaan: 2024-03-08 15:40:05 Akhirnya diubah suai: 2024-03-08 15:40:05
Salin: 0 Bilangan klik: 392
1
fokus pada
1236
Pengikut

Jia Yibing Trend Kuantitatif Strategi Perdagangan Momentum

Gambaran keseluruhan

Strategi perdagangan kuantitatif tren yang bergerak dengan kuantitatif adalah strategi perdagangan kuantitatif kosong berbilang kepala yang menggabungkan trend tracking, indikator dinamik dan saluran Brin. Strategi ini menggunakan persilangan rata-rata bergerak yang perlahan untuk menentukan arah trend, sambil menggabungkan saluran Brin dan indikator dinamik untuk mengesahkan isyarat masuk. Strategi ini juga mempunyai langkah-langkah kawalan risiko seperti stop loss, tracking stop loss dan pengurusan kedudukan.

Prinsip Strategi

Prinsip teras strategi ini adalah menggunakan trend harga dan kesan momentum untuk menangkap peluang pasaran. Khususnya, strategi ini menggunakan purata bergerak dua kitaran yang berbeza (gambaran cepat dan lambat) untuk menentukan arah trend harga. Apabila garis cepat melintasi garis perlahan dari bawah ke atas, yang mewakili trend naik, strategi ini akan menghasilkan banyak isyarat; sebaliknya, apabila garis cepat melintasi garis perlahan dari atas ke bawah, yang mewakili trend menurun, strategi ini akan menghasilkan isyarat kosong.

Untuk lebih mengesahkan trend dan masa masuk, strategi ini juga menggabungkan jalur Brin dan indikator momentum. Brin terdiri daripada tiga garis: rel tengah adalah purata bergerak, rel atas dan bawah masing-masing menambah dan mengurangkan perbezaan piawai berdasarkan rel tengah. Apabila harga menembusi Brin, yang mewakili tenaga kenaikan yang kuat, strategi akan dilakukan lebih banyak; apabila harga menembusi Brin, yang mewakili tenaga penurunan yang kuat, strategi akan kosong.

Di samping itu, strategi ini juga memperkenalkan penunjuk momentum, yang mengukur kadar penurunan harga dengan membandingkan harga semasa dengan harga sebelum satu tempoh tertentu. Penunjuk momentum boleh digunakan untuk menentukan kekuatan atau kelemahan trend, dan dengan itu memberikan pengesahan tambahan untuk masuk.

Dari segi pengurusan kedudukan, strategi ini membolehkan untuk menetapkan saiz kedudukan berdasarkan dana dan keutamaan risiko akaun. Pada masa yang sama, strategi ini juga mempunyai mekanisme stop loss dan tracking stop loss untuk mengawal risiko perdagangan tunggal.

Secara keseluruhannya, strategi perdagangan kuantitatif yang dinamakan trend dengan pelbagai dimensi seperti trend tracking, pengesahan dinamika dan pengurusan risiko, berusaha untuk menangkap peluang trend pasaran, mengawal risiko dengan ketat, dan mencapai pulangan pelaburan yang mantap.

Analisis kelebihan

  1. Trend Tracking: Strategi menggunakan persimpangan garis rata-rata yang perlahan untuk menangkap peluang trend harga, boleh melakukan banyak trend naik atau turun, menyesuaikan diri dengan keadaan pasaran yang berbeza.

  2. Pengesahan momentum: memperkenalkan indikator momentum sebagai pengesahan kedua trend, membantu mengecualikan isyarat palsu dan meningkatkan kualiti masuk.

  3. Bolling band membantu membuat keputusan: Bolling band dapat mencerminkan kawasan turun naik harga, dan penembusan Bolling band dapat dianggap sebagai isyarat percepatan trend atau turun naik harga yang luar biasa, memberikan rujukan untuk masuk.

  4. Pengurusan Kedudukan: Strategi ini menggunakan kaedah pengurusan kedudukan berdasarkan peratusan dan had dana akaun, yang membolehkan anda mengawal penggunaan dana setiap perdagangan dengan fleksibel, memanfaatkan dana sepenuhnya dan tidak terlalu terdedah kepada risiko.

  5. Hentikan Hentikan: Tetapkan Hentikan Hentikan dan Lacak Hentikan Hentikan, yang dapat melindungi keuntungan apabila harga bergerak ke arah yang diharapkan, sambil memutuskan Hentikan Hentikan apabila harga berbalik, mengawal kerugian maksimum perdagangan tunggal secara berkesan.

  6. Optimasi berbilang parameter: Strategi mengandungi beberapa parameter yang boleh disesuaikan, seperti kitaran garis rata-rata, parameter Brinband, nisbah stop loss, dan lain-lain, yang dapat meningkatkan fleksibiliti dan ketangguhan strategi dengan mengoptimumkan parameter.

Analisis risiko

  1. Perdagangan yang kerap: Strategi ini menghasilkan isyarat masuk berdasarkan persilangan garis rata-rata dan penembusan Brin. Isyarat perdagangan mungkin sering dihasilkan ketika pasaran bergolak, menyebabkan terlalu banyak perdagangan, meningkatkan kos bayaran dan kos slippage.

  2. Parameter sensitif: Strategi mengandungi beberapa parameter, seperti kitaran garis purata, kitaran momentum, parameter Brin, dan lain-lain, pilihan parameter yang berbeza mungkin mempunyai kesan yang besar terhadap kesan strategi. Jika parameter dipilih dengan tidak betul, ia boleh menyebabkan prestasi strategi yang buruk.

  3. Pengesanan pengesanan trend: purata bergerak adalah penunjuk yang ketinggalan, terutamanya apabila tempoh garis purata lebih lama, pengesanan perubahan trend akan menjadi lebih perlahan, dan mungkin kehilangan masa masuk yang terbaik.

  4. Risiko Hentikan Kerosakan: Walaupun strategi menetapkan langkah-langkah hentikan kerosakan, dalam keadaan yang melampau (seperti melompat cepat), harga mungkin langsung melebihi harga hentikan, menyebabkan kerugian sebenar melebihi jangkaan.

  5. Risiko penumpuan kedudukan: Jika strategi menghasilkan isyarat arah yang sama secara berturut-turut dalam tempoh tertentu, ia mungkin menyebabkan kedudukan yang terlalu tertumpu pada satu arah, menghadapi risiko memegang kedudukan yang lebih besar.

  6. Risiko kecairan: Pengiraan balik dan keberkesanan strategi boleh dipengaruhi oleh kecairan pasaran, terutamanya apabila operasi dana besar, mungkin menghadapi masalah titik tergelincir dan kurangnya jumlah transaksi.

Arah pengoptimuman

  1. Memperkenalkan lebih banyak penunjuk teknikal: Berdasarkan garis purata, momentum dan Brinband semasa, anda boleh mencuba memperkenalkan lebih banyak penunjuk teknikal, seperti RSI, MACD dan lain-lain, untuk meningkatkan kebolehpercayaan isyarat dengan cara pengesahan bersama pelbagai penunjuk.

  2. Optimumkan mekanisme masuk dan keluar: Anda boleh mempertimbangkan untuk memasukkan lebih banyak syarat dalam keputusan masuk dan keluar, seperti keperluan jumlah transaksi tertentu yang mesti dipenuhi sebelum harga terobosan, menggunakan kedudukan rata atau berhenti bergerak ketika keluar, untuk meningkatkan fleksibiliti dan keuntungan strategi.

  3. Parameter penyesuaian dinamik: Untuk kitaran rata-rata, kitaran momentum, parameter Brin, dan lain-lain, mekanisme penyesuaian sendiri parameter boleh direka, mengikut keadaan pasaran yang berbeza dan tahap kadar turun naik, nilai parameter penyesuaian dinamik, meningkatkan penyesuaian strategi.

  4. Peningkatan pengurusan kedudukan: Di atas asas pengurusan kedudukan semasa, kaedah pengurusan wang yang lebih maju seperti formula Kelly, kadar tetap, dan hak milik dinamik boleh diperkenalkan untuk menyeimbangkan keuntungan dan risiko dengan lebih baik.

  5. Gabungan dengan analisis asas: Strategi analisis teknikal semata-mata mungkin menghadapi risiko tidak berkesan atau tidak berkesan di pasaran. Kesan strategi mungkin dapat dipertingkatkan jika dapat menggabungkan beberapa faktor asas, seperti data ekonomi makro, trend industri, dan lain-lain, untuk menyaring dan mengesahkan isyarat teknikal.

  6. Meningkatkan keserasian tinjauan semula dan tinjauan sebenar: Strategi mungkin mempunyai perbezaan dalam prestasi tinjauan semula dan tinjauan sebenar, dan perhatian utama perlu diberikan kepada kualiti pelaksanaan tinjauan semula dan tinjauan sebenar, termasuk faktor-faktor seperti harga transaksi, slippage, dan kelewatan, untuk memastikan keserasian prestasi tinjauan sebenar dan keputusan tinjauan semula.

ringkaskan

Strategi perdagangan kuantitatif yang menggabungkan pelbagai kaedah analisis teknikal. Strategi ini menggunakan trend tangkap silang, pergerakan yang disahkan oleh Brin Belt, kelajuan refleksi indikator dinamik, risiko kawalan henti-henti dan kawalan kerugian, pengurusan kedudukan untuk mengoptimumkan penggunaan dana, membentuk satu set keputusan perdagangan dan sistem pengurusan yang lengkap.

Kelebihan strategi ini adalah gabungan trend dan momentum, penilaian berasingan, pengurusan kedudukan dan penangguhan berhenti untuk menangkap peluang pasaran melalui analisis dan keputusan pelbagai dimensi. Tetapi pada masa yang sama, strategi ini juga menghadapi risiko yang berpotensi seperti perdagangan yang kerap, parameter sensitif, pengesahan tren yang terlewat, dan penangguhan yang tidak dapat melindungi keadaan yang melampau. Ini memerlukan peningkatan dan penyempurnaan strategi dengan memperkenalkan lebih banyak petunjuk teknikal, mengoptimumkan logik keputusan isyarat, menyesuaikan parameter, dan meningkatkan pengurusan dana.

Di samping itu, strategi perdagangan kuantitatif mungkin terdapat perbezaan antara hasil pengukuran semula dan prestasi di lapangan, yang memerlukan perhatian khusus kepada isu-isu yang berkaitan dengan tahap pelaksanaan seperti harga transaksi, titik slippage, dan kelewatan untuk meningkatkan kebolehan dan kestabilan strategi. Di samping itu, strategi kuantitatif tidak boleh terhad kepada analisis teknikal, dengan kombinasi yang sesuai dengan faktor asas, akan membantu meningkatkan keseluruhan dan keberkesanan keputusan.

Secara keseluruhannya, strategi perdagangan dinamika trend kuantitatif dengan mudah menyediakan pemikiran yang lebih lengkap dan boleh dilaksanakan untuk amalan perdagangan kuantitatif, tetapi kesan akhir strategi juga bergantung pada keseimbangan pelbagai peluang dan risiko dan pengoptimuman butiran. Dalam aplikasi praktikal, strategi perlu disesuaikan dan diperbaiki dengan keadaan tertentu seperti pilihan risiko, saiz modal, dan pasaran perdagangan anda sendiri, dan terus memantau dan mengoptimumkan dalam operasi cakera hidup untuk mencapai prestasi strategi yang lebih mantap dan ideal.

Kod sumber strategi
/*backtest
start: 2024-02-01 00:00:00
end: 2024-02-29 23:59:59
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy('甲易炳', overlay=true)

// Parameters
trendPeriod = input(50, 'Trend Period')
momentumPeriod = input(14, 'Momentum Period')
bbPeriod = input(20, 'Bollinger Bands Period')
bbDeviation = input(2, 'Bollinger Bands Deviation')
fastMALen = input(23, 'Fast SMA Length')
slowMALen = input(50, 'Slow SMA Length')
longTakeProfitPerc = input.float(0.5, 'Long Take Profit %', minval=0.05, step=0.05) * 0.01
shortTakeProfitPerc = input.float(0.5, 'Short Take Profit %', minval=0.05, step=0.05) * 0.01
stopLossPerc = input.float(0.5, 'Stop Loss %', minval=0.05, step=0.05) * 0.01
enableTrailing = input.bool(true, 'Enable Trailing')
trailingTakeProfitPerc = input.float(0.01, 'Trailing Take Profit %', minval=0.01, maxval=100, step=0.01) * 0.01
trailingStopLossPerc = input.float(0.5, 'Trailing Stop Loss %', minval=0.05, step=0.05) * 0.01
qty_percent = input.int(20, 'Position Size %', step=1)
qty_cap = input.int(10000, 'Max Position Size', step=1000)
beast_mode = input.bool(false, 'Beast Mode')
set_cap = input.bool(true, 'Cap Position Size')
strategy.initial_capital = 50000
// Calculate position size
qty1 = (strategy.initial_capital + strategy.netprofit) * qty_percent / 10 / close
qty = (set_cap and qty1 > qty_cap) ? qty_cap : qty1

// Calculate moving averages
fastMA = ta.sma(close, fastMALen)
slowMA = ta.sma(close, slowMALen)

// Bollinger Bands
[upperBB, middleBB, lowerBB] = ta.bb(close, bbPeriod, bbDeviation)

// Entry conditions
buySignal = ta.crossover(close, fastMA) and close > upperBB
sellSignal = ta.crossunder(close, fastMA) and close < lowerBB

// Rampage mode entry conditions
if beast_mode
    buySignal := buySignal and fastMA > fastMA[2]
    sellSignal := sellSignal and fastMA < fastMA[2]

// Active positions
longIsActive = buySignal or strategy.position_size > 0
shortIsActive = sellSignal or strategy.position_size < 0

// Declare take profit and stop loss variables
var float longTakeProfitPrice = na
var float shortTakeProfitPrice = na

// Take profit and stop loss calculation
if longIsActive
    if buySignal and not (strategy.position_size > 0)
        longTakeProfitPrice := close * (1 + longTakeProfitPerc)
    else
        longTakeProfitPrice := nz(longTakeProfitPrice[1], close * (1 + longTakeProfitPerc))
if shortIsActive
    if sellSignal and not (strategy.position_size < 0)
        shortTakeProfitPrice := close * (1 - shortTakeProfitPerc)
    else
        shortTakeProfitPrice := nz(shortTakeProfitPrice[1], close * (1 - shortTakeProfitPerc))

longTrailingTakeProfitStepTicks = longTakeProfitPrice * trailingTakeProfitPerc / syminfo.mintick
shortTrailingTakeProfitStepTicks = shortTakeProfitPrice * trailingTakeProfitPerc / syminfo.mintick
longTrailingStopLossPrice = close * (1 - trailingStopLossPerc)
shortTrailingStopLossPrice = close * (1 + trailingStopLossPerc)

// Entries and exits
if strategy.position_size == 0
    strategy.entry('Long Entry', qty=qty, direction=strategy.long, when=buySignal, alert_message='Long Entry')
    strategy.entry('Short Entry', qty=qty, direction=strategy.short, when=sellSignal, alert_message='Short Entry')
    strategy.exit('Long Take Profit', 'Long Entry', loss=close * stopLossPerc / syminfo.mintick, limit=enableTrailing ? na : longTakeProfitPrice, trail_price=enableTrailing ? longTakeProfitPrice : na, trail_offset=enableTrailing ? longTrailingTakeProfitStepTicks : na, when=longIsActive, alert_message='Long Take Profit')
    strategy.exit('Short Take Profit', 'Short Entry', loss=close * stopLossPerc / syminfo.mintick, limit=enableTrailing ? na : shortTakeProfitPrice, trail_price=enableTrailing ? shortTakeProfitPrice : na, trail_offset=enableTrailing ? shortTrailingTakeProfitStepTicks : na, when=shortIsActive, alert_message='Short Take Profit')
else
    if longIsActive
        strategy.exit('Long Stop Loss', 'Long Entry', stop=longTrailingStopLossPrice, when=longIsActive)
    if shortIsActive
        strategy.exit('Short Stop Loss', 'Short Entry', stop=shortTrailingStopLossPrice, when=shortIsActive)

// Plotting
plot(fastMA, 'Fast SMA', color=color.blue, linewidth=1, style=plot.style_line)
plot(slowMA, 'Slow SMA', color=color.orange, linewidth=1, style=plot.style_line)
plot(upperBB, 'Upper BB', color=color.green, linewidth=1, style=plot.style_line)
plot(lowerBB, 'Lower BB', color=color.red, linewidth=1, style=plot.style_line)