Yang Tuhan, strategi mudah turun naik

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

Penulisan ini dibuat oleh seorang ahli media tempatan bernama T.S.A.R. Di bawah ini adalah kandungan yang dipindahkan. Sila lihat lebih banyak tentang Dunia Kuantitatif Ribuan untuk mendapatkan lebih banyak kod sumber strategi! Saya juga membuat iklan untuk diri saya sendiri. "Log kuantitatif kacang kedelai" Di sini, saya akan berkongsi dengan anda semua tentang bagaimana saya boleh menghalalkan kebankrapan kuantitatif dalam talian setiap hari. Lebih banyak faedah, lebih banyak yang anda dapat.

Ini hanya Demo! Demo! Aunty Demo! Ibu bapa, berhati-hatilah!


Dengan kadar fluktuasi yang baik, anda boleh memenangi Bitcoin dengan mudah! Asal-asalan, dunia kuantitatif berjuta-juta hari yang lalu R&D strategi kuantitatif yang sebenarnya adalah dua hala, sangat sukar untuk orang yang baru memulakan, sukar bukan sahaja kod pada tahap teknik ketuhar, tetapi juga sukar untuk pemikiran logik strategi pada tahap ketuhar. Kedua-duanya penting dan tidak boleh dipisahkan.

Selamat datang kepada semua rakan-rakan saya yang berjumlah ribuan!

Artikel ini adalah edisi kedua dari surat lamaran istimewa, dan kami sangat terhormat untuk menjemput anda ke Tianjin Tianjin (LE_CHIFFRE1) untuk memperkenalkan kepada anda: bagaimana menggunakan faktor turun naik dengan mudah untuk memenangi pasaran BTC, untuk mencapai penolakan yang lebih besar!

Yang Shen berasal dari institusi pelaburan kuantiti tradisional, pernah juga terlibat dalam perniagaan bursa lingkaran wang, mempunyai pengalaman yang kaya dan pandangan yang unik dalam bidang kuantiti. Yang Shen edisi ini mengandungi wahyu pemikiran, pelaksanaan pengekodan dan kesedaran peribadi dan lain-lain, tidak boleh dikatakan tidak penuh, beribu-ribu orang melihat sendiri juga merasa bermanfaat, benar-benar sangat mengagumi dan berterima kasih kepada Yang Shen, sangat mengesyorkan anda membaca buku ini!

Di bawah ini adalah petikan mengenai strategi kadar turun naik.

01

Pengantar

Halo semua, hari ini saya bernasib baik untuk memajukan artikel di nombor umum kuantitatif yang berjuta-juta, dan juga mengucapkan terima kasih atas jemputan bos T (salah satu daripada ribuan nombor luar). Pertama kali menulis artikel kepada bos T, bebas bermain, meminjam masa lapang selepas bekerja, kualiti dan kesilapan juga diarahkan kepada semua orang yang betul dan terkandung dalam artikel, terima kasih.

Pemilik T berkata menulis kuantitatif, dan tidak memberikan apa-apa ruang, benar-benar tidak tahu di mana untuk menulis. Kemudian mulakan dengan topik kegemaran anda untuk membincangkan dengan orang lain. Indikator kuantitatif dan strategi (yang boleh dibantu dan juga boleh diotomatikkan), tentu saja, akhirnya kita juga perlu menambah satu perkataan lama yang sering diucapkan: anda boleh melabur berisiko, masuk ke pasaran perlu berhati-hati, strategi hanya untuk memberi anda idea dan pengajaran, untung dan rugi diri. Semua keuntungan dan kerugian menggunakan strategi ini tidak ada kaitan dengan diri saya sendiri dan ribuan pelabur dunia kuantitatif.

Jika anda tidak mempunyai masalah, anda boleh teruskan dengan menulis di bawah.

02

Satu strategi mudah untuk kadar turun naik

Orang yang mengenali saya sebenarnya tahu, secara peribadi, saya tidak terlalu suka bermain dengan Alpha, agaknya saya lebih mempercayai Beta, lebih banyak untuk mengkaji Beta.

Pembangunan strategi kuantitatif sebenarnya adalah dua hala, sangat sukar untuk orang yang baru memulakan, sukar untuk tidak hanya kod tingkat yang bermasalah, juga sukar untuk pemikiran logik strategik peringkat yang bermasalah. Kedua-duanya adalah penting dan tidak boleh dipisahkan. Strategi yang saya sampaikan kepada anda hari ini sebenarnya diilhamkan banyak tahun yang lalu dari sebuah laporan penyelidikan di Huai'an, kita melihat dengan teliti hanya memberi ilham kepada anda, kerana itu dikatakan kerana logik strategi itu sama sekali tidak seperti yang disebutkan dalam laporan penyelidikan, khususnya laporan peribadi anda semua berbual-bual.

Algoritma strategi ini menggunakan prinsip turun naik kadar pulangan bergulir untuk penurunan harga logaritma pada satu tempoh tertentu, dan mencari nilai maksimum dan minimum bergulir pada satu tempoh tertentu, nilai tertinggi sebagai paip ke atas, nilai minimum sebagai paip ke bawah, memecahkan paip ke atas, membuka perdagangan.

Antara muka visualisasi grafik yang spesifik boleh dilihat di bawah PPT. Grafik ini digambar sendiri dengan Pyecharts, kod spesifik juga boleh dihubungi secara peribadi.

img

Sebenarnya, strategi ini adalah strategi yang digunakan sebelum ini untuk melakukan ETF berasaskan luas, tentu saja juga digunakan untuk membeli dan menjual saham semasa memilih indeks, kemudian dipindahkan terus ke lingkaran mata wang, terkejut untuk mengetahui bahawa ia benar-benar menurunkan tekanan, parameter tidak perlu berubah.

img

Di bawah ini adalah grafik prestasi untuk tahun itu, dengan skrin logik kod tertentu:

img

Di atas sebenarnya adalah data yang dibaca dan dihitung dengan pandas.

img

Apabila pengiraan selesai, output data boleh dilakukan dengan menggunakan fungsi pd.to_csv (), dan output pyecharts yang digunakan dalam skrin gambar di atas dapat dilihat (catatan: saya menggunakan pyecharts versi lama).

Semua strategi, visualisasi, dan kod penanda prestasi adalah T-Building.

03

Perbincangan Kuantiti

Pertama, strategi yang baik tidak takut untuk mendedahkan secara terbuka, ini bukan lagi pembangunan senjata yang bertentangan dengan peringkat perang, yang akan menentukan hidup atau mati, jadi saya sendiri dan beberapa agensi atau individu, tidak takut apa-apa yang dipanggil rahsia taktik, kerana bagi saya, CTA tidak mempunyai rahsia. Hanya satu perkara yang difikirkan dan tidak difikirkan oleh semua orang telah hilang. Versi ini adalah versi tertua, dan beberapa versi juga telah ditingkatkan berdasarkannya, seperti menambahkan syarat lain untuk pertimbangan dan penghalang kerosakan, dan sebagainya, tentu saja termasuk penyesuaian parameter kitaran jenis lain, dan sebagainya.

Kedua: Ramai orang, sama ada yang baru atau yang sudah mula atau juga pemain lama, memerlukan sumber inspirasi, termasuk penggalian faktor saham, idea untuk memilih strategi masa, dan lain-lain, yang seringnya berasal dari pengalaman subjektif, laporan penyelidikan, pertukaran komunikasi dalam kalangan, dan lain-lain.

Kesimpulannya, kuantitatif adalah barang asing, perdagangan programatik adalah subset dalam kuantitatif, sejak masa universiti sendiri (sekitar tahun 2009), ketika itu, programatik seperti TB, piramid dan lain-lain telah diburu, jika berterusan hari ini, dapat dikatakan bahawa beberapa orang yang pertama melihat ramalan telah 10 tahun, yang belum termasuk mereka yang membawa balik dari Wall Street yang menyala-nyala. Oleh itu, strategi kuantitatif atau strategi programatik telah berlangsung untuk sementara waktu di China, tetapi dalam kalangan pasaran sekarang bahagian dan pemain utama, dan sokongan dasar, kuantitatif masih merupakan sebahagian kecil yang wujud, walaupun banyak analisis dan model strategi yang dibangunkan oleh kajian menunjukkan bahawa ada orang-orang yang menyukai logik kecil.

Akhirnya, terima kasih kepada orang ramai yang telah mempercayai saya dan mengundang saya untuk menulis artikel. Jika anda mempunyai masalah kod dan strategi tertentu, sila hantar e-mel peribadi kepada saya atau kepada T-Bone, saya juga dalam kumpulan T-Bone.

Terima kasih sekali lagi untuk penjelasan yang sangat baik!

Jika anda masih belum menyertai kumpulan perbincangan kuantitatif, sila segera bergabung untuk mendapatkan bahan pembelajaran!

Bangunan Bandar Seribu!

img

WeChat menghapuskan Perhatian kepada isu awam


/*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 lanjut

Pencipta KuantitiSaya datang melalui https://www.fmz.com/strategy/361827

rootmeKacang selalu cantik.

Teh hitamStrategi ini nampaknya tidak ada kaitan dengan kadar turun naik.

KhotbahSaya tidak dapat menggambarkan kadar turun naik kecuali saya 90 kitaran yang lalu, dan hampir tidak boleh dikatakan hubungan dengan kelajuan turun naik. Mengutip kaedah pembukaan HH, LL, adalah operasi DC saluran Dongjian, yang memilih strategi garis lurus; secara keseluruhan adalah sistem pelabuhan yang lebih baik. Jika anda ingin tahu lebih lanjut mengenai volatiliti tersirat, bolehkah anda tinggalkan kepada pakar untuk menerangkan?

Awan ringanIbu kacang, boleh ambil beg?

BergayaAnda tanya saya tidak menyokong, saya pasti akan menyokong.

BergayaAnda tanya saya tidak menyokong, saya pasti akan menyokong.

Awan ringanSelamat bercuti.

KacangPerkiraan kosong pada semester kedua ~ maka boleh datang wv saya haha ~

Awan ringan。。。。。。。 Baiklah.

Kacang (^U^)ノ~YO

KacangSaya tidak mempunyai masa untuk berfikir tentang masa depan, tetapi saya tidak boleh membuat kod dengan baik, atau saya tidak boleh menggunakan siri. / ((Yoooo)) /~~