0
fokus pada
78
Pengikut

Melaksanakan strategi perdagangan kuantitatif untuk analisis momentum harga menggunakan Python

Dicipta dalam: 2019-08-09 15:49:06, dikemas kini pada: 2024-12-19 21:03:15
comments   1
hits   3521

Melaksanakan strategi perdagangan kuantitatif untuk analisis momentum harga menggunakan Python

Pengenalan kepada Strategi Perdagangan Momentum Harga

Strategi perdagangan momentum menganalisis perbandingan daya panjang dan pendek melalui hubungan antara harga pembukaan, harga tertinggi, dan harga terendah dalam tempoh masa tertentu, dan secara tidak langsung memahami pengagihan kuasa panjang dan pendek dalam pasaran semasa. Menganalisis turun naik harga untuk menjejaki arah aliran harga masa hadapan.

Analisis momentum harga digunakan secara meluas dalam perdagangan manual tradisional, terutamanya dalam menentukan arah aliran unilateral intraday Ia adalah topik biasa, apakah yang berlaku dengan arah aliran Cara terbaik untuk mengukur arah aliran adalah dengan membandingkan kekuatan kedua-dua sisi panjang dan pendek. Dari segi perbandingan kuantitatif, analisis momentum harga adalah salah satu petunjuk terbaik.

Artikel ini akan menggunakan strategi ini untuk membangunkan program dagangan spot automatik untuk mata wang digital di Huobi.com.

Formula untuk mengira momentum harga

AR = [Jumlah semua (Tinggi-Terbuka) dalam N hari / jumlah semua (Terbuka-Rendah) dalam N hari] * 100

Antaranya:

  • N: Tetingkap statistik tempoh masa harian, yang biasanya 30 hari secara lalai, kerana terdapat kira-kira 30 hari dagangan yang sah dalam sebulan (mata wang digital didagangkan 247, jadi nombor ini mungkin agak konservatif)

  • Tinggi: Harga tertinggi pada hari itu

  • Buka: Harga pembukaan hari itu

  • Rendah: Harga terendah pada hari itu

Cara menggunakan momentum harga

Momentum harga mencerminkan kedudukan harga pembukaan antara harga tertinggi dan harga terendah dalam satu tempoh masa.

  • Kami menganggap bahawa nilai ini adalah sekitar 100. Jika ia melebihi 100, daya kenaikkan mula meningkat, dan jika kurang daripada 100, daya penurunan harga mula berkumpul.
  • Apabila nilai AR meningkat, ini bermakna pasaran aktif, populariti tinggi, dan kenaikan harga sedang meningkat dengan cepat Walau bagaimanapun, jika ia terlalu tinggi, ini bermakna harga telah memasuki kawasan terlebih beli, dan anda harus memilih masa yang sesuai untuk. tutup kedudukan. Tiada standard khusus untuk ketinggian nilai AR Secara umumnya, apabila nilai AR meningkat kepada sekitar 120, harga mungkin akan turun semula.
  • Apabila nilai AR menurun, ini bermakna pasaran berada dalam kemelesetan, penurunan dalam semangat yang tinggi, dan kenaikan harga perlu bekerja lebih keras Jika terlalu rendah, ini menunjukkan bahawa harga mungkin telah jatuh ke dalam kawasan terlebih jual, dan anda boleh mempertimbangkan menunggu peluang untuk pergi lama. Secara amnya, apabila nilai AR turun di bawah 50, harga akan berhenti jatuh dan sebaliknya meningkat.

Nota: Nombor di atas adalah semua nilai lalai dan sama sekali bukan kebenaran. Dalam proses perdagangan sebenar, kita perlu menyesuaikan julat ini untuk menyesuaikan diri dengan keadaan pasaran semasa apabila pasaran berubah.

Melaksanakan strategi perdagangan kuantitatif untuk momentum harga menggunakan Python

Seperti biasa, kami membuka FMZ.COM, log masuk ke akaun, klik pusat kawalan, dan gunakan hos dan robot.

Untuk mendapatkan maklumat lanjut tentang cara menggunakan hos dan robot, sila rujuk artikel saya sebelum ini: https://www.fmz.com/bbs-topic/4140

Pembaca yang ingin membeli hos penggunaan pelayan pengkomputeran awan mereka sendiri boleh merujuk artikel ini: https://www.fmz.com/bbs-topic/2848

Seterusnya, kami klik pada pustaka strategi di lajur kiri dan klik pada Strategi Baharu

Di penjuru kanan sebelah atas halaman penulisan strategi, ingat untuk memilih Python sebagai bahasa pengaturcaraan, seperti yang ditunjukkan dalam rajah:

Melaksanakan strategi perdagangan kuantitatif untuk analisis momentum harga menggunakan Python

Seterusnya, kami menulis kod Python ke dalam halaman penyuntingan kod Kod berikut mempunyai ulasan baris demi baris yang sangat terperinci, dan pembaca perlahan-lahan dapat memahami dan menghargainya, walaupun strategi ini ditulis berdasarkan perdagangan spot, Walau bagaimanapun, skalabiliti kod berikut juga mengambil kira perdagangan niaga hadapan Pembaca yang berminat boleh cuba menulis semula kod berikut ke dalam perdagangan niaga hadapan Logik strategi itu sendiri adalah universal. Dalam Platform Kuantitatif Inventor, kami telah menyediakan antara muka API pertukaran spot dan niaga hadapan utama untuk anda, jadi kerja penulisan semula akan menjadi sangat mudah dan mudah.

Kami akan menggunakan tempat Bitcoin Huobi sebagai sasaran dagangan dan mula melaksanakan strategi ini:

import types # 导入Types模块库,这是为了应对代码中将要用到的各种数据类型
def main(): # 主函数,策略逻辑从这里开始
    IDLE = 0 # 用来标记持仓状态,可以理解为0即为空闲状态,也就是空仓状态
    LONG = 1 # 多头持仓
    SHORT = 2 # 空头持仓,注意,此策略应用于现货市场,所以不存在空头开仓或者持仓情况,这里这样写,是为了方便理解策略和以后的扩展(如扩展到期货市场)
    state = IDLE # 标记持仓状态的变量
    while True: # 进入循环
        r = exchange.GetRecords() #GetRecords是发明者量化平台的官方API,详细用法请参见:https://www.fmz.com/api
        if len(r) <= 1: # 判断K线是否大于一根,也就是当前是否为开盘状态,否则可能会进入死循环,这里也方便读者进行扩展,大一些的K线周期趋势状态更稳定。
           Log("bar的数量不足, 等待下一根bar...") # 输出日志
           continue # Python循环控制语句,继续下边的循环内容

        # 开始进行价格动量的量化分析
        ar = sum(r.High - r.Open) / sum(r.Open - r.Low) * 100 # 计算公式

        account = _C(exchange.GetAccount) # 获取账户信息,_C同样为发明者量化平台的官方API,用法请参见:https://www.fmz.com/api

        if ar < 95 and (state == IDLE or state == SHORT) :  # AR值小于超卖线且账户拥有资金,则全仓买入
           
           if account["Balance"] > 50:
                exchange.Buy(-1, account["Balance"] * 0.9) # 市价单全仓买入
                state = LONG # 改变持仓状态为LONG
                  
        elif ar > 80 and (state == IDLE or state == LONG):  # AR值大于超买线且账户有持仓,则全仓卖出
            
           if account["Stocks"] > 0.01:
                exchange.Sell(-1, account["Stocks"] * 0.9) # 市价单全仓卖出
                state = SHORT # 改变持仓状态为SHORT
                      
        LogStatus(_D(), exchange.GetAccount() , state) # 更新日志信息

Ujian Balik Strategi

Selepas menulis strategi, perkara pertama yang perlu kita lakukan ialah mengujinya untuk melihat prestasinya dalam data sejarah Walau bagaimanapun, sila ambil perhatian bahawa keputusan ujian belakang tidak sama dengan ramalan masa depan hanya boleh digunakan sebagai a Rujuk maklumat untuk mempertimbangkan keberkesanan strategi kami. Sebaik sahaja pasaran berubah dan strategi mula mengalami kerugian besar, kita harus segera mengenal pasti masalah dan kemudian menukar strategi untuk menyesuaikan diri dengan persekitaran pasaran baharu Contohnya, jika strategi mengalami kerugian lebih daripada 10%, Kita harus segera hentikan strategi dan cari masalah, bermula dengan melaraskan ambang.

Klik pada ujian belakang simulasi dalam halaman penyuntingan strategi Pada halaman ujian belakang, parameter boleh dilaraskan mengikut keperluan yang berbeza untuk penyahpepijatan yang mudah dan cepat Terutama untuk strategi dengan logik yang kompleks dan banyak parameter, tidak perlu kembali ke kod sumber dan ubah suainya satu persatu.

Untuk masa ujian belakang, kami memilih bulan terbaharu, klik untuk menambah pertukaran spot Huobi dan sasaran dagangan BTC.

Melaksanakan strategi perdagangan kuantitatif untuk analisis momentum harga menggunakan Python

Lihat keputusan ujian belakang

Melaksanakan strategi perdagangan kuantitatif untuk analisis momentum harga menggunakan Python

Dapat dilihat bahawa strategi ini menunjukkan prestasi yang baik dalam backtest bulan ini.

Kelebihan dan Kelemahan Strategi Momentum Harga

  • Kelebihan

Kelebihan momentum harga berbanding beberapa penunjuk teknikal tradisional lain ialah daripada menggunakan harga pembukaan atau penutupan tunggal, ia menggabungkan harga tertinggi dan terendah. Mereka dibandingkan secara dinamik, dan melalui turun naik harga intraday, maklumat pasaran adalah lebih komprehensif, tindak balas lebih cepat, dan ia lebih makro.

  • Keburukan

Menggunakan nilai momentum harga secara bebas untuk menilai sama ada harga terlalu tinggi atau rendah, untuk menilai sama ada untuk membeli atau menjual, berkemungkinan keluar terlalu awal dalam arah aliran besar, atau membeli bahagian bawah terlalu awal dalam kejatuhan pasaran yang besar . Secara umumnya, strategi ini masih tergolong dalam strategi keberkesanan kejutan.

Penetapan ambang strategi juga perlu ditentukan berdasarkan ciri sasaran transaksi. Turun naik harga dalam pasaran mata wang digital agak besar, dan volum dagangan adalah besar, terutamanya untuk mata wang arus perdana seperti Bitcoin, yang tidak mempunyai had harga, jadi ambang lebih tinggi daripada pasaran saham tradisional, dan 80 terlebih jual garis biasanya sukar disentuh Oleh itu, terdapat lebih sedikit isyarat beli manakala garisan terlebih beli 170 selalunya di bawah ambang, jadi isyarat jual sering dicetuskan. Ini akan menyebabkan strategi berada dalam kedudukan kosong pada kebanyakan masa semasa ia berjalan, dan kadar penggunaan modal akan menjadi sangat rendah. Sejak Januari tahun ini, Bitcoin telah mengalami peningkatan, dengan harga meningkat daripada paras tertinggi \(3,500 kepada hampir \)13,000. Ambang melepasi garisan 170 sangat awal dan kekal tinggi sejak itu. Jika kami menjual mengikut garisan terlebih beli tradisional 170, kami akan keluar dari pasaran pada kira-kira 5,000, dan tidak akan ada isyarat untuk membuka kedudukan selepas itu, jadi kami hanya membuat keuntungan kecil dalam pasaran kenaikan harga yang besar.

Oleh itu, tidak pernah ada sebarang strategi perdagangan holy grail dalam pasaran ini, strategi yang boleh menjana wang selama-lamanya tanpa ujian belakang atau penyahpepijatan. Kami peniaga kuantitatif, seperti pedagang subjektif, akhirnya mencapai destinasi yang sama.

Rakan yang mempunyai soalan boleh meninggalkan mesej di https://www.fmz.com/bbs Sama ada mengenai strategi atau teknologi platform, Inventor Quantitative Platform mempunyai kakitangan profesional untuk menjawab anda pada bila-bila masa.