Strategi volatilitas yang sederhana

Penulis:Kacang polong, Tanggal: 2020-04-18 22:54:45
Tag:ATR

Di bawah ini adalah daftar nama-nama yang tersedia di situs resmi T-Shirt. Di bawah ini adalah konten yang ditranskripsikan. Silahkan ikuti lebih banyak tentang "Millennium Quantum World" untuk mendapatkan lebih banyak kode sumber strategi! Saya juga punya iklan untuk diri saya sendiri. "Log kuantitatif dari kacang kedelai" "Menghancurkan semua orang secara terbuka setiap hari adalah sebuah tindakan yang sangat besar. Lebih banyak tunjangan, lebih banyak yang Anda dapatkan.

Itu hanya Demo! Demo! Tante Demo! Ayah-ayah, berhati-hatilah!


Jika Anda menggunakan volatilitas yang baik, Anda bisa memenangkan Bitcoin dengan mudah! Asal-Uasal, Dunia Kuantitatif Ribuan Ribuan 3 hari lalu Penelitian dan pengembangan strategi kuantitatif sebenarnya adalah dua sisi, sangat sulit bagi orang yang baru memulai, sulit tidak hanya kode tingkat teknik, tetapi juga sulit untuk berpikir logis tingkat strategis. Keduanya penting dan tidak dapat dipisahkan.

Selamat datang, teman-teman yang berjumlah ribuan!

Artikel ini adalah edisi kedua dari artikel khusus ini, dan kami sangat terhormat untuk mengundang Anda untuk datang ke Oyang-Oyang (LE_CHIFFRE1) untuk memperkenalkan kepada Anda: bagaimana menggunakan faktor fluktuasi untuk memenangkan Bitcoin dengan mudah, dan mencapai penurunan tingkat volatilitas!

Liu Shen berasal dari lembaga investasi kuantitas tradisional, pernah juga terlibat dalam bisnis bursa lingkaran koin, memiliki pengalaman yang kaya dan wawasan yang unik dalam bidang kuantitas. Isi edisi ini mencakup wawasan pikiran, implementasi kode dan kesadaran pribadi, dll, tidak bisa dikatakan tidak penuh, ribuan membaca sendiri juga merasa bermanfaat, benar-benar sangat mengagumi dan berterima kasih kepada Liu Shen, sangat merekomendasikan semua orang untuk membaca artikel ini!

Di bawah ini adalah beberapa komentar yang menarik dari para blogger dan blogger di Indonesia yang ingin berbagi strategi volatilitas mereka.

01

Pengantar

Halo, hari ini saya memiliki hak istimewa untuk memajukan artikel di situs publik kuantitatif, dan juga berterima kasih atas undangan bos T (salah satu dari ribuan nomor luar). Pertama kali menulis artikel untuk bos T, bebas bermain, meminjam waktu luang setelah bekerja, kualitas dan kesalahan juga diarahkan pada artikel yang benar dan berisi, terima kasih.

T bos mengatakan untuk menulis kuantitatif, dan tidak memberikan ruang lingkup apa pun, benar-benar tidak tahu dari mana untuk menulis. Jadi mulailah dari topik favorit Anda untuk membahas dengan orang lain. Indikator dan strategi kuantitatif (yang dapat dibantu juga dapat diotomatisasi), tentu saja, akhirnya kita juga harus menambahkan kata-kata lama yang sering diucapkan: investasi besar berisiko, masuk pasar harus berhati-hati, strategi hanya untuk memberi Anda ide dan pelajaran, untung dan rugi.

Setelah pernyataan ini selesai, berikut adalah topik yang sebenarnya.

02

Strategi volatilitas yang sederhana

Orang-orang yang mengenal saya tahu bahwa secara pribadi, saya tidak terlalu menyukai permainan Alpha, saya lebih percaya pada Beta, lebih banyak untuk mempelajari Beta. Untuk alasan ini, e.........mmmmm, saya tidak tahu apa yang Anda jawab~~, coba pikir sendiri. Jika Anda tertarik, Anda dapat mengirim pesan pribadi, pesan kepada penulis edisi publik ini, logika yang jelas, penulis sendiri akan mengirim paket merah kecil kepada Anda.

Penelitian dan pengembangan strategi kuantitatif sebenarnya adalah dua sisi, sangat sulit untuk orang yang baru memulai, sulit untuk tidak hanya kode tingkat sihir, tetapi juga sulit untuk berpikir logis tingkat taktik. Keduanya penting, dan tidak boleh bias. Strategi yang saya sampaikan kepada Anda hari ini sebenarnya terinspirasi dari sebuah laporan penelitian dari Huaihai bertahun-tahun yang lalu, kita lihat dengan cermat hanya inspirasi, karena itu adalah karena logika strategi itu sama sekali tidak disebutkan dalam laporan penelitian, khususnya laporan pribadi.

Algorithm strategi ini menggunakan prinsip fluktuasi rasio rolling yield dari penurunan harga siklus tertentu, dan berdasarkan rentang fluktuasi ini, mencari nilai maksimum dan minimum rolling cycle tertentu, nilai tertinggi sebagai pipa atas, nilai minimum sebagai pipa bawah, memecahkan pipa atas, membuka posisi. Rata-rata rolling pipa atas dan bawah sebagai garis posisi.

Untuk melihat antarmuka visualisasi grafis yang spesifik, lihat PPT di bawah ini. Gambar ini dibuat sendiri dengan Pyecharts, dan kode spesifiknya juga dapat dihubungi secara pribadi.

img

Pada kenyataannya, strategi ini adalah strategi yang sebelumnya digunakan oleh saya untuk melakukan ETF berbasis luas, tentu saja juga digunakan untuk membeli dan menjual saham saat memilih indeks, kemudian langsung dipindahkan ke lingkaran mata uang.

img

Gambar di bawah ini adalah hasil dari tahun itu, dengan gambar layar logika kode tertentu:

img

Di atas sebenarnya adalah data yang dibaca dan kemudian dilakukan penghitungan data indikator dengan panda.

img

Setelah perhitungan selesai, Anda dapat mengekspor data melalui fungsi pd.to_csv (), dan mengekspor pyecharts yang digunakan dalam gambar di atas (catatan: saya menggunakan pyecharts versi lama).

Semua strategi, visualisasi, dan kode indikator kinerja yang spesifik adalah omong kosong.

03

Berbicara tentang Kuantitas

Pertama, ada banyak pertanyaan atau mengapa Anda dapat mempublikasikan strategi nyata, penipu palsu? atau mengatakan benar-benar ada di mana-mana? haha. Pertama, strategi yang baik tidak takut terbuka, ini bukan pengembangan senjata tingkat perang yang akan menentukan hidup atau mati, jadi saya sendiri dan beberapa lembaga atau individu, tidak takut apa yang disebut rahasia taktik, karena menurut saya CTA tidak memiliki rahasia.

Kedua: Banyak orang, baik yang baru atau yang sudah masuk bahkan termasuk pemain lama, membutuhkan sumber inspirasi, termasuk faktor penambangan saham, ide-ide untuk memilih strategi waktu, dan sebagainya, yang seringkali berasal dari pengalaman subjektif, laporan penelitian, pertukaran komunikasi di dalam lingkaran, dll.

Akhirnya, untuk menyimpulkan, kuantitas adalah barang asing, perdagangan terprogram adalah subset dalam kuantitas, sejak saat saya kuliah (sekitar tahun 2009), saat itu ada orang yang terlibat dalam programasi seperti TB, piramida, dan lain-lain. Jika terus dilakukan hari ini, dapat dikatakan bahwa beberapa orang yang pertama-tama memprediksi prediksi sudah 10 tahun, yang belum termasuk mereka yang datang dari Wall Street dengan strategi dan sistem frekuensi tinggi. Oleh karena itu, strategi kuantitas atau strategi terprogram telah berlangsung di China untuk sementara waktu, tetapi di kalangan pemegang saham pasar saat ini dan pemangku kepentingan, dan dukungan kebijakan, kuantitas masih merupakan bagian yang sangat kecil, meskipun ada banyak penelitian yang dibuat oleh analisis dan strategi yang dibangun dengan pola yang sangat baik.

Terakhir, terima kasih banyak kepada publik Quantum for trusting me in my profession and for the article invitation. Jika kalian memiliki masalah kode atau strategi khusus, silakan kirim email pribadi kepada saya atau T-Bone, saya juga berada di grup T-Bone.

Terakhir, sekali lagi terima kasih atas penjelasan yang sangat bagus!

Teman-teman yang belum bergabung dengan kelompok diskusi kuantitatif, silakan bergabung dengan kami untuk mendapatkan informasi lebih lanjut!

Bangunan ini sangat indah.

img

WeChat menghapusnya Perhatian terhadap isu publik


/*backtest
start: 2019-04-18 00:00:00
end: 2020-04-17 23:59:00
period: 15m
exchanges: [{"eid":"Futures_BitMEX","currency":"XBT_USD"}]
*/

// 胖友们!! 实盘前请注意!! 此内容仅是吕神翻译demo, 上实盘请自行添加相关内容.
// 是Demo!!! 实盘谨慎!!!

// 初始化
exchange.SetContractType('XBTUSD')
var vix_arr = []
var vix_ma = []
var vix_ma_up = []
var vix_ma_dw = []
var LastBarTime = 0
var isFirst = true

function initVix() {
    records = _C(exchange.GetRecords)
    Log(records.length)
    if (records && records.length > 2 * N + 2) {
        // 初始化前N个vix值
        for (var i = -2; i < N - 1; i++) {
            Bar = records[records.length - N + i]
            lastNbar = records[records.length - N + i - N]
            Vix()
        }
    }
    // Log("vix_arr", vix_arr.length, vix_arr)
    // Log("vix_ma", vix_ma.length, vix_ma)
    // Log("vix_ma_up", vix_ma_up.length, vix_ma_up)
    // Log("vix_ma_dw", vix_ma_dw.length, vix_ma_dw)
}

// 获取交易所信息
function UpdateInfo() {
    account = _C(exchange.GetAccount)
    pos = _C(exchange.GetPosition)
    records = _C(exchange.GetRecords)
    Bar = records[records.length - 1]
    lastNbar = records[records.length - N]
    ticker = _C(exchange.GetTicker)
}

// 计算波动率及上下轨
function Vix() {
    // 当每K结束时计算
    if (LastBarTime !== Bar.Time) {
        // 当K达到计算根数开始计算vix_arr
        if (records && records.length > N) {
            // 获取vix 当前close自然对数 除以 前90根自然对数 减一
            vix = Math.log(Bar.Close) / Math.log(lastNbar.Close) - 1
            vix_arr.push(vix)
            //Log("vix_arr", vix_arr)
        }
        // 当vix_arr达到计算根数时开始计算vix_ma
        if (vix_arr && vix_arr.length > N) {
            // 获取对应周期vix算其移动平均值
            vix_ma = TA.MA(vix_arr, N)
            // 去除ma中的null值
            vix_ma = vix_ma.filter(function(val) {
                return !(!val || val === "");
            })
            //Log("vix_ma", vix_ma)
            // 获取上下通道
            vix_up = TA.Highest(vix_arr, N)
            vix_dw = TA.Lowest(vix_arr, N)
            vix_ma_up.push(vix_up)
            vix_ma_dw.push(vix_dw)
            // Log("vix_ma_up", vix_ma_up)
            //Log("vix_ma_dw", vix_ma_dw)
            // 限制所有数组长度
            if (vix_arr.length > 2000) {
                vix_arr.splice(0, 1);
            }
            if (vix_ma.length > 2000) {
                vix_ma.splice(0, 1);
            }
            if (vix_ma_up.length > 2000) {
                vix_ma_up.splice(0, 1);
            }
            if (vix_ma_dw.length > 2000) {
                vix_ma_dw.splice(0, 1);
            }
        }
        LastBarTime = Bar.Time
    }
}

// 画线
function PlotMA_Kline(records, isFirst) {
    //$.PlotRecords(records, "K")
    if (isFirst) {
        for (var i = records.length - 1 - N; i <= records.length - 1; i++) {
            if (vix_ma[i] !== null) {
                $.PlotLine("vix_arr", vix_arr[i], records[i].Time)
                $.PlotLine("vix_ma", vix_ma[i], records[i].Time)
                $.PlotLine("vix_ma_up", vix_ma_up[i], records[i].Time)
                $.PlotLine("vix_ma_dw", vix_ma_dw[i], records[i].Time)
            }
        }
        PreBarTime = records[records.length - 1].Time
    } else {
        if (PreBarTime !== records[records.length - 1].Time) {
            $.PlotLine("vix_arr", vix_arr[vix_arr.length - 2], records[records.length - 2].Time)
            $.PlotLine("vix_ma", vix_ma[vix_ma.length - 2], records[records.length - 2].Time)
            $.PlotLine("vix_ma_up", vix_ma_up[vix_ma_up.length - 2], records[records.length - 2].Time)
            $.PlotLine("vix_ma_dw", vix_ma_dw[vix_ma_dw.length - 2], records[records.length - 2].Time)
            PreBarTime = records[records.length - 1].Time
        }
        $.PlotLine("vix_arr", vix_arr[vix_arr.length - 1], records[records.length - 1].Time)
        $.PlotLine("vix_ma", vix_ma[vix_ma.length - 1], records[records.length - 1].Time)
        $.PlotLine("vix_ma_up", vix_ma_up[vix_ma_up.length - 1], records[records.length - 1].Time)
        $.PlotLine("vix_ma_dw", vix_ma_dw[vix_ma_dw.length - 1], records[records.length - 1].Time)
    }
}

// 交易逻辑
function onTick() {
    // 无仓位时
    if (pos.length == 0) {
        // Long 当前K线的收盘价 > 上轨 && 之前K线的收盘价 <= 上轨
        if (vix_arr[vix_arr.length - 1] > vix_ma_up[vix_ma_up.length - 1] &&
            vix_arr[vix_arr.length - 2] <= vix_ma_up[vix_ma_up.length - 2]) {
            exchange.SetDirection("buy")
            exchange.Buy(ticker.Sell, Amount)
            $.PlotFlag(new Date().getTime(), 'Buy', 'BK')
        }
        // Short 当前K线的收盘价 < 下轨 && 之前K线的收盘价 >= 下轨
        if (vix_arr[vix_arr.length - 1] < vix_ma_dw[vix_ma_dw.length - 1] &&
            vix_arr[vix_arr.length - 2] >= vix_ma_dw[vix_ma_dw.length - 2]) {
            exchange.SetDirection("sell")
            exchange.Sell(ticker.Buy, Amount)
            $.PlotFlag(new Date().getTime(), 'Sell', 'SK')
        }
    }
    // 多仓时
    if (pos.length > 0 && pos[0].Type == 0) {
        // 平多 当前K线的收盘价 < 中轨 && 之前K线的收盘价 >= 中轨
        if (vix_arr[vix_arr.length - 1] < vix_ma[vix_ma.length - 1] &&
            vix_arr[vix_arr.length - 2] >= vix_ma[vix_ma.length - 2]) {
            exchange.SetDirection("closebuy")
            exchange.Sell(ticker.Buy, pos[0].Amount)
            $.PlotFlag(new Date().getTime(), 'Sell', 'SBK')
        }
    }
    // 空仓时
    if (pos.length > 0 && pos[0].Type == 1) {
        // 平空 当前K线的收盘价 > 中轨 && 之前K线的收盘价 <= 中轨
        if (vix_arr[vix_arr.length - 1] > vix_ma[vix_ma.length - 1] &&
            vix_arr[vix_arr.length - 2] <= vix_ma[vix_ma.length - 2]) {
            exchange.SetDirection("closesell")
            exchange.Buy(ticker.Sell, pos[0].Amount)
            $.PlotFlag(new Date().getTime(), 'Buy', 'PSK')
        }
    }
}

function main() {
    initVix()
    while (1) {
        UpdateInfo()
        Vix()
        onTick()
        if (records) {
            PlotMA_Kline(records, isFirst)
            //Log('画线')
            isFirst = false
        }
        Sleep(5 * 1000)
    }
}

Berkaitan

Lebih banyak

Penemu KuantitasSaya datang melalui https://www.fmz.com/strategy/361827

rootmeKacang selalu indah.

Sepotong Teh HitamStrategi ini tampaknya tidak ada hubungannya dengan volatilitas.

khotbahSaya tidak dapat menggambarkan tingkat fluktuasi, kecuali saya 90 siklus yang lalu, yang hampir tidak dapat dikatakan sebagai hubungan dengan luas fluktuasi. Mengutip metode pembukaan HH, LL, adalah operasi DC saluran Dongcheng, yang memilih strategi garis lurus; secara umum adalah sistem pasang surut yang ditingkatkan. Jika Anda ingin tahu lebih banyak tentang volatilitas tersirat, biarkan para ahli menjelaskan.

Awan ringan"Sister Bean, mau ambil tasnya?"

ShzyhyAnda bertanya apakah saya tidak mendukung, tentu saja saya mendukung.

ShzyhyAnda bertanya apakah saya tidak mendukung, tentu saja saya mendukung.

Awan ringanSelamat tinggal

Kacang polongPerkiraan kosong selama enam bulan ke depan ~ maka bisa datang wv saya ha~

Awan ringan。。。。。。。 Baiklah.

Kacang polong (^U^)ノ~YO

Kacang polongSaya tidak punya waktu sekarang, saya tidak punya waktu untuk berpikir tentang itu, tapi saya tidak bisa menulis kode dengan baik, jadi saya tidak bisa menggunakan seri. / ((Yoo-chan) /~~