Rumah  >  Artikel  >  Java  >  Bagaimanakah Java melaksanakan strategi dagangan berdasarkan aliran dana yang aktif?

Bagaimanakah Java melaksanakan strategi dagangan berdasarkan aliran dana yang aktif?

王林
王林ke hadapan
2023-04-18 18:34:271011semak imbas
1. Ringkasan

Harga adalah sama ada naik atau turun Dalam jangka masa panjang, kebarangkalian kenaikan atau penurunan harga setiap satu untuk meramalkan dengan betul, anda perlu mendapatkan semua faktor yang mempengaruhi harga dalam masa nyata , kemudian berikan setiap faktor wajaran yang betul, dan akhirnya membuat analisis objektif dan rasional. Menyenaraikan semua faktor yang mempengaruhi harga akan memenuhi keseluruhan skrin.

Ringkasan: persekitaran ekonomi global, dasar makro negara, dasar industri berkaitan, hubungan penawaran dan permintaan, acara antarabangsa, kadar faedah dan kadar pertukaran, inflasi dan deflasi, psikologi pasaran, faktor yang tidak diketahui, dsb. Ramalan telah menjadi tugas yang besar dan mustahil. Jadi awal-awal lagi, saya faham bahawa pasaran tidak dapat diramalkan. Kemudian semua ramalan dalam pasaran telah menjadi andaian, dan perdagangan telah menjadi permainan kebarangkalian, yang menarik.

2. Mengapa menggunakan aliran modal

Memandangkan pasaran tidak dapat diramalkan, adakah ia benar-benar tidak peduli? Tidak, semua faktor makro dan mikro telah dicerminkan dalam harga, yang bermaksud bahawa harga adalah hasil daripada interaksi semua faktor. Kita hanya perlu menganalisis harga untuk membuat strategi perdagangan yang lengkap. Bagaimanakah Java melaksanakan strategi dagangan berdasarkan aliran dana yang aktif?

Fikir baik-baik dulu, kenapa harga naik?

Anda mungkin mengatakan ini kerana: sokongan dasar negara untuk industri berkaitan, hujan lebat di negara asal, perang perdagangan antarabangsa, salib emas MACD, yang lain membeli, dll. Sudah tentu, ini sahaja betul. Dengan manfaat melihat ke belakang, anda sentiasa boleh melihat sebab yang mendorong harga lebih tinggi.

Sebenarnya, kenaikan dan penurunan harga adalah serupa dengan air pasang yang menaikkan semua bot. Kenaikan harga tidak dapat dipisahkan daripada promosi dana Jika terdapat lebih ramai pembeli daripada penjual di pasaran, harga akan meningkat. Sebaliknya, jika penjual lebih ramai daripada pembeli, harga akan jatuh. Dengan konsep ini, kami boleh memberikan jangkaan yang munasabah untuk arah aliran harga masa hadapan berdasarkan hubungan penawaran dan permintaan yang dicerminkan oleh aliran bersih dana.

3. Prinsip Aliran Dana

Berbeza daripada analisis tradisional, analisis aliran dana menganalisis urus niaga mana yang merupakan aliran masuk dana yang aktif dan transaksi mana yang merupakan aliran masuk dana yang aktif berdasarkan data transaksi satu urutan sepanjang tempoh masa. Kemudian, dengan menolak volum aliran keluar aktif daripada volum aliran masuk aktif dalam tempoh masa itu, anda boleh mengetahui aliran masuk modal bersih dalam tempoh masa tersebut. Jika aliran masuk bersih dana adalah positif, bermakna bekalan produk ini melebihi permintaan; jika terdapat aliran keluar bersih dana, bermakna bekalan produk ini melebihi permintaan.

Bagaimanakah Java melaksanakan strategi dagangan berdasarkan aliran dana yang aktif?

Selepas membaca ini, sesetengah orang mungkin tertanya-tanya bahawa dalam urus niaga sebenar, transaksi selesai hanya apabila seseorang membeli dan seseorang menjual. Pesanan urus niaga mesti mempunyai jualan sebanyak jumlah pembelian, dan aliran masuk dan keluar dana mestilah sama. Dari mana datangnya keluar masuk modal? Malah, secara tegasnya, setiap pesanan belian mesti sepadan dengan pesanan jualan yang sepadan, dan aliran masuk modal dan aliran keluar modal mestilah sama. Jika kami ingin mengira pesanan yang dibeli secara aktif dan pesanan yang dijual secara aktif, kami hanya boleh menggunakan kaedah kompromi, menggunakan data bar dan berdasarkan volum dan harga dagangan.

4. Kaedah pengiraan aliran modal

Perubahan dalam aliran modal sepadan dengan gelagat pasaran masa nyata Dengan menyepadukan data bar, aliran modal bersih dikira dalam masa nyata. Terdapat dua algoritma untuk mengira aliran aktif dana:

  • Yang pertama, jika harga transaksi pesanan semasa dilaksanakan pada harga rakan niaga atau lebihan harga, harga transaksi beli> = Harga jualan pertama bermakna pembeli lebih bersedia untuk menyelesaikan transaksi pada harga yang lebih tinggi, yang mengambil kira aliran masuk dana yang aktif.

  • Kedua, jika harga transaksi semasa > harga transaksi terakhir, maka dapat difahami bahawa volum transaksi semasa secara aktif mendorong kenaikan harga, iaitu ia termasuk dalam aliran masuk inisiatif modal.

Bagaimanakah Java melaksanakan strategi dagangan berdasarkan aliran dana yang aktif?

Ambil algoritma kedua di atas sebagai contoh:

Harga penutup varieti tertentu pada jam 10:00 ialah 3450. Harga penutupan pada 11:00 ialah 3455, kemudian kami memasukkan volum dagangan dari 10:00 ~ 11:00 sebagai aliran masuk modal aktif. Jika tidak, ia akan dimasukkan dalam aliran keluar dana yang aktif. Artikel ini adalah berdasarkan kaedah kedua dan menambah faktor turun naik harga Dengan membandingkan harga penutupan bar sebelumnya dan sebelumnya, volum dagangan * julat turun naik bar naik atau turun dimasukkan dalam urutan, dan kemudian berdasarkan lebih lanjut. pada urutan ini Kira nisbah aliran masuk aktif dana.

5. Logik dagangan

Artikel ini menerangkan aliran modal dalam pasaran hadapan dari perspektif "kuantiti", dan mewujudkan model dagangan untuk menilai arah aliran harga jangka pendek dengan menganalisis data bar dalam masa nyata. Dalam keadaan biasa, aliran modal dan arah aliran harga boleh dibahagikan kepada empat situasi asas:

  • Harga meningkat, dan pada masa yang sama, terdapat aliran masuk bersih modal seunit masa: Dalam kes ini, ia dianggap kukuh. Kebarangkalian harga akan terus meningkat pada masa hadapan adalah lebih besar; aliran keluar inisiatif modal seunit masa: Dalam kes ini, ia dianggap sederhana kuat, dan kelajuan kenaikan harga masa hadapan akan menjadi lemah dengan ketara; dan pada masa yang sama, terdapat aliran masuk bersih dana setiap unit masa: keadaan ini dianggap sebagai titik lemah, dan kebarangkalian harga terus jatuh adalah lebih besar pada masa hadapan;

  • Harga saham jatuh, dan pada masa yang sama, terdapat aliran keluar bersih dana secara aktif setiap unit masa: Dalam kes ini, ia adalah keadaan sederhana-lemah, dan kelajuan penurunan harga pada masa hadapan akan menjadi lemah dengan ketara; titik rendah (ll)Bagaimanakah Java melaksanakan strategi dagangan berdasarkan aliran dana yang aktif?

Titik tinggi sebelumnya (hh )

Pembelian aktif (barIn)
  • Jualan aktif (barOut)
  • Nisbah aliran masuk aktif kepada aliran keluar aktif (Nisbah bar)
  • Ambang pembukaan (OpenValve)
  • Kedudukan semasa (myAmount)
  • Harga penutupan K-line terakhir (tutup)
  • Syarat kemasukan dan kemasukan
  • Strategi perdagangan kuantitatif yang baik memerlukan bukan sahaja pendapatan yang stabil dan keupayaan untuk mengawal risiko untuk mengelakkan kerugian besar apabila kebarangkalian kecil berlaku. Di sini kami menggunakan strategi menjejak aliran modal aktif dan menganalisis arah pasaran niaga hadapan komoditi dengan bantuan ramalan harga jangka pendek untuk mencapai pulangan tinggi dan risiko rendah. Langkah-langkah strategi adalah seperti berikut:

  • Buka kedudukan panjang: Jika pada masa ini tiada kedudukan dan barNisbah > openValve, buka kedudukan panjang; >

  • Pembukaan kedudukan pendek: Jika pada masa ini tiada kedudukan, dan barNisbah
    • 6 Tulis kod sumber strategi

    • Dapatkan dan kira data
    • Dapatkan data bar terus melalui. kaedah GetRecords dalam API kuantifikasi pencipta. Mengandungi harga tertinggi, harga terendah, harga pembukaan, harga tutup, volum dagangan dan cap masa standard. Jika harga transaksi terkini adalah lebih besar daripada harga transaksi terakhir, maka volum urus niaga terkini * (harga tertinggi - harga terendah) akan dimasukkan dalam pembelian aktif jika harga transaksi terkini lebih rendah daripada harga transaksi terakhir, maka harga terkini volum transaksi * (harga tertinggi - harga terendah) akan disertakan dalam pembelian aktif; volum dagangan* (harga tertinggi - harga terendah) termasuk dalam jualan aktif
    • Dapatkan data kedudukan
    • Melalui GetPosition dalam Inventor Quantification API Kaedah mendapatkan data kedudukan asas dan seterusnya memproses data asas ini Jika kedudukan semasa adalah panjang, kuantiti kedudukan positif dikembalikan jika kedudukan pendek pada masa ini dipegang, kuantiti kedudukan negatif dikembalikan. Tujuannya adalah untuk memudahkan pengiraan logik kedudukan pembukaan dan penutupan.
    Buat pesanan

    7 Ciri strategi

function data() {
    var self = {};
    var barVol = [];
    var bars = _C(exchange.GetRecords); //获取bar数据
    if (bars.length < len * 2) { //控制bar数据数组的长度
        return;
    }
    for (var i = len; i > 0; i--) {
        var barSub_1 = bars[bars.length - (i + 1)].Close - bars[bars.length - (i + 2)].Close; //计算当前收盘价与上个bar收盘价的价差
        if (barSub_1 > 0) { //如果价格涨了,就在数组里面添加正数
            barVol.push(bars[bars.length - (i + 1)].Volume * (bars[bars.length - (i + 1)].High - bars[bars.length - (i + 1)].Low));
        } else if (barSub_1 < 0) { //如果价格跌了,就在数组里面添加负数
            barVol.push(-bars[bars.length - (i + 1)].Volume * (bars[bars.length - (i + 1)].High - bars[bars.length - (i + 1)].Low));
        }
    }
    if (barVol.length > len) {
        barVol.shift(); //释放多余的数据
    }
    self.barIn = 0;
    self.barOut = 0;
    for (var v = 0; v < barVol.length; v++) {
        if (barVol[v] > 0) {
            self.barIn += barVol[v]; //合并全部主动流入的资金
        } else {
            self.barOut -= barVol[v]; //合并全部主动流出的资金
        }
    }
    self.barRatio = self.barIn / Math.abs(self.barOut); //计算主动流入资金与主动流出资金的比值
    bars.pop(); //删除未结束的bar数据
    self.close = bars[bars.length - 1].Close; //获取上根K线的收盘价
    self.hh = TA.Highest(bars, hgLen, 'High'); //获取前高
    self.ll = TA.Lowest(bars, hgLen, 'Low'); //获取前低
    return self;
}

Ciri:

Parameter teras. Sedikit: Idea reka bentuk model adalah jelas dan hanya terdapat 3 parameter teras. Ruang untuk pengoptimuman adalah kecil dan overfitting boleh dielakkan dengan berkesan. Kesejagatan yang kukuh: Logik strategi adalah mudah dan mempunyai kesejagatan yang tinggi Ia sesuai untuk kebanyakan jenis kecuali produk pertanian dan boleh digabungkan dengan pelbagai jenis.

function positions(name) {
    var self = {};
    var mp = _C(exchange.GetPosition); //获取持仓
    if (mp.length == 0) {
        self.amount = 0;
    }
    for (var i = 0; i < mp.length; i++) { //持仓数据处理
        if (mp[i].ContractType == name) {
            if (mp[i].Type == PD_LONG || mp[i].Type == PD_LONG_YD) {
                self.amount = mp[i].Amount;
            } else if (mp[i].Type == PD_SHORT || mp[i].Type == PD_SHORT_YD) {
                self.amount = -mp[i].Amount;
            }
            self.profit = mp[i].Profit;
        } else {
            self.amount = 0;
        }
    }
    return self;
}
Peningkatan:

Tambah syarat kedudukan: aliran modal pasaran sehala (saham) boleh menentukan aliran masuk atau aliran keluar modal berdasarkan kenaikan dan penurunan harga, volum dagangan dan faktor lain. Walau bagaimanapun, oleh kerana strategi ini tidak termasuk keadaan kedudukan, statistik aliran dana aktif mungkin diherotkan. Tambah syarat sisihan piawai: Bergantung semata-mata pada arah aliran modal untuk keadaan pembukaan kedudukan boleh menyebabkan isyarat palsu yang kerap, mengakibatkan pembukaan dan penutupan kedudukan yang kerap. Isyarat palsu ditapis keluar dengan mengira purata aliran keluar dana bersih dalam tempoh masa tertentu, ditambah sisihan piawai.

function trade() {
    var myData = data(); //执行data函数
    if (!myData) {
        return;
    }
    var mp = positions(contractType); //获取持仓信息
    var myAmount = mp.amount; //获取持仓数量
    var myProfit = mp.profit; //获取持仓浮动盈亏
    if (myAmount > 0 && myData.close < myData.ll) {
        p.Cover(contractType, unit); //多头平仓
    }
    if (myAmount < 0 && myData.close > myData.hh) {
        p.Cover(contractType, unit); //空头平仓
    }
    if (myAmount == 0) {
        if (myData.barRatio > openValve) {
            p.OpenLong(contractType, unit); //多头开仓
        } else if (myData.barRatio < 1 / openValve) {
            p.OpenShort(contractType, unit); //空头开仓
        }
    }
}
Kod sumber strategi lengkap:

8 Ujian belakang strategi

Konfigurasi strategi:

Prestasi ujian belakang:

Atas ialah kandungan terperinci Bagaimanakah Java melaksanakan strategi dagangan berdasarkan aliran dana yang aktif?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam