Binance Perpetual Multicurrency Hedging Strategy Original (Binance: Binance: Binance: Binance: Binance: Binance: Binance: Binance: Binance: Binance)

Penulis:Rumput, Tanggal: 2020-04-04 21:24:43
Tag:Binance

Kebijakan ini sudah tersedia untuk versi upgrade biaya, ditambah WeChat wangweibing_ustb.

Artikel penting!

  • Anda harus melihat penelitian ini.https://www.fmz.com/digest-topic/5294◦ Mengetahui berbagai hal seperti prinsip-prinsip strategi, risiko, cara menyaring perdagangan, cara mengatur parameter, rasio posisi awal dan total modal, dan lain sebagainya.
  • Laporan penelitian sebelumnya harus diunduh dan diunggah ke lingkungan penelitian Anda sendiri. Modifikasi sebenarnya berjalan lagi. Jika Anda telah membaca laporan ini, Anda baru saja memperbarui data minggu terbaru.
  • Saat robot berhenti untuk waktu yang lama, Anda harus menghidupkan kembali data atau membuat robot baru.
  • Strategi tidak dapat diuji secara langsung, tetapi harus diuji dalam lingkungan penelitian.
  • Kode strategi dan parameter default hanya untuk penelitian, dan operasi disk harus dilakukan dengan hati-hati.Mengambil Risiko
  • Strategi tidak bisa menguntungkan setiap hari, melihat kembali sejarah, 1 atau 2 minggu di atas dan mundur adalah normal dan perlu diperlakukan dengan benar.
  • Kode adalah terbuka dan dapat dimodifikasi sendiri, jika ada masalah, silakan komentar dan umpan balik, Anda sebaiknya bergabung dengan komunitas penemu Binance (masih ada cara untuk bergabung dalam laporan penelitian) untuk mendapatkan pemberitahuan terbaru.
  • Strategi ini hanya mendukung opsi biner, dan harus berjalan dalam mode saham penuh, jangan mengatur kepemilikan dua arah!!, ketika membuat robot menggunakan pasangan perdagangan default dan siklus K-line, strategi ini tidak digunakan untuk K-line
  • Strategi dan strategi lain serta operasi manual saling bertentangan dan perlu diperhatikan.
  • Pada tahap uji coba, Anda dapat menyewa server Ali Cloud Hong Kong di platform dengan satu tombol, dan menyewa seluruhnya lebih murah per bulan ((konfigurasi minimal saja, deploy tutorial:https://www.fmz.com/bbs-topic/2848)
  • Fitur-fitur futures dan spot akan ditambahkan secara terpisah.Futures_Binance
  • Kebijakan ini tidak akan berdampak, tetapi robot baru akan mencatat kembali data historis.
  • Kebijakan ini dapat diperbarui berdasarkan umpan balik pengguna, langsung Ctrl + A untuk menyalin kode yang tertutup untuk disimpan (biasanya tidak memperbarui parameter), dan bot yang dihidupkan kembali dapat digunakan untuk kode terbaru.
  • Strategi ini awalnya tidak bertransaksi, pertama kali memulai perlu mencatat data, menunggu perubahan pasar untuk bertransaksi.

Update pada tanggal 4.16

Mengubah bug yang menghentikan kerusakan

Perubahan pada parameter default:

var Alpha = 0.001 //指数移动平均的Alpha参数,设置的越大,基准价格跟踪越敏感,最终持仓也会越低,降低了杠杆,但会降低收益,具体需要根据回测结果自己权衡
var Update_base_price_time_interval = 60 //多久更新一次基准价格, 单位秒,和Alpha参数相关,Alpha 设置的越小,这个间隔也可以设置的更小

4.13 Pengaturan konten

Stop_loss diatur menjadi 0,8 berarti stop loss ketika dana mencapai 80% dari dana awal, kosongkan semua posisi, stop strategi. Saat strategi berjalan, Stop_loss dapat diatur lebih besar dari 1 (hidup kembali efektif), misalnya dari 1000 yen hingga 1500, Stop_loss diatur menjadi 1,3, maka mundur ke stop loss 1300 yuan. Tidak ingin stop loss dapat mengatur parameter ini sangat kecil. Risiko adalah semua orang akan menggunakan stop loss ini untuk membentuk penetrasi, meningkatkan kerugian.

Max_diff dan Min_diff membatasi tingkat penyimpangan, yang harus ditentukan sendiri berdasarkan nilai perdagangan, total modal, dan kemampuan menanggung risiko.

Sebagai contoh sederhana, jika ada 20 koin yang diperdagangkan, salah satu dari mereka akan naik nilainya hingga deviasi 0,4 dan tidak akan diperdagangkan lagi, sementara yang lain akan tetap sama, kehilangan 7 kali nilai perdagangan.

var Stop_loss = 0.8 
var Max_diff = 0.4 //当偏差diff大于0.4时,不继续加空仓, 自行设置
var Min_diff = -0.3 //当diff小于-0.3时,不继续加多仓, 自行设置

4.10 Pembaruan

Menyalin kode kebijakan ke kebijakan lokal, langsung menutupi save, memulai kembali mesin, dan tetap berada di posisi aslinya.

Di sini, Anda dapat menemukan beberapa tips untuk mengoptimalkan kode notebook:https://www.fmz.com/bbs-topic/5364

Strategi asli indeks koin sandal = mean ((sum)) (((harga koin sandal/harga bitcoin) / ((harga awal koin sandal/harga awal bitcoin))); Masalah terbesar adalah kontras harga terbaru dan harga awal strategi yang diluncurkan, dengan bertambahnya waktu, akan semakin menyimpang, sebuah koin mungkin memegang banyak posisi, berisiko tinggi, dan akhirnya akan memegang banyak posisi, meningkatkan risiko dan mundur.

Indeks Bitcoin terbaru = mean ((sum)) / EMA ((harga Bitcoin) / harga Bitcoin))), yaitu dibandingkan dengan harga pada garis rata, dapat melacak perubahan harga terbaru, lebih fleksibel, retesting ditemukan mengurangi strategi pegangan, juga mengurangi mundur. Lebih stabil. Yang terpenting adalah strategi asli jika ditambah beberapa pasangan perdagangan yang tidak biasa, sangat berisiko, kemungkinan besar akan meledak, tetapi sekarang hampir tidak terpengaruh.

Untuk peningkatan yang mulus, dua parameter ditulis di dua baris pertama kode strategi, dan diubah sesuai kebutuhan.

Alpha = 0.04 parameter indeks pergerakan rata-rata, semakin besar yang diatur, harga acuan yang lebih sensitif untuk dilacak, semakin sedikit yang diperdagangkan, dan akhirnya pegangan juga akan lebih rendah, menurunkan leverage, tetapi akan mengurangi keuntungan, mengurangi mundur maksimum, dapat meningkatkan jumlah perdagangan, secara khusus perlu untuk meneimbang sendiri berdasarkan hasil retesting. Update_base_price_time_interval = 30*60 Lebih lama untuk memperbarui harga acuan, satuan detik, dan terkait dengan parameter Alpha, semakin kecil pengaturan Alpha, semakin kecil interval yang dapat diatur

Jika Anda membaca artikel ini dan ingin berdagang dalam semua mata uang, berikut adalah daftarnya.ETH,BCH,XRP,EOS,LTC,TRX,ETC,LINK,XLM,ADA,XMR,DASH,ZEC,XTZ,BNB,ATOM,ONT,IOTA,BAT,VET,NEO,QTUM,IOST

Bergabunglah dengan kelompok WeChat untuk mendapatkan update tentang Perang Binomo

Dengan menambahkan sinyal di bawah ini, Anda akan langsung ditarik ke dalam kelompok dengan menjawab:

https://www.fmz.comimg

Prinsip Strategi

Uang yang akan dibuat kosong lebih tinggi dari indeks harga Bitcoin, lebih rendah dari indeks, semakin besar deviasinya, semakin besar posisinya.img

Logika strategis

1. memperbarui pasar dan menyimpan akun, pertama kali berjalan akan mencatat harga awal (mata uang baru yang ditambahkan dihitung sesuai dengan waktu yang ditambahkan) 2. Update indeks, indeksnya adalah indeks harga koin-bitcoin = mean(sum((harga koin-bitcoin/harga bitcoin)/ ((harga awal koin-bitcoin/harga awal bitcoin)) 3. Menentukan posisi sesuai dengan ukuran deviasi. 4. Memesan, jumlah pesanan berikutnya ditentukan oleh Ice Mountain, sesuai dengan harga transaksi (membeli dengan menjual satu harga).Setelah mengirim pesanan, segera membatalkan (jadi Anda akan melihat banyak gagal membatalkan pesanan 400: {code:-2011,msg:Unknown order sent.}, normal) 5.再次循环

Leverage dalam status binary mewakili bahwa mata uang jaminan telah digunakan secara proporsional dan perlu tetap rendah untuk memenuhi posisi baru

Parameter Strategi

img

  • Trade_symbols: Mata uang yang diperdagangkan, yang harus disaring sendiri berdasarkan platform penelitian, juga dapat bergabung dengan BTC
  • Trade_value: Nilai perdagangan Bitcoin (BTC) adalah 1% per deviasi dari indeks, yang harus diputuskan berdasarkan total modal yang diinvestasikan dan preferensi risiko, disarankan untuk diatur menjadi 3-10% dari total modal. Dengan melihat kembali ukuran leverage dari lingkungan penelitian, nilai perdagangan dapat lebih kecil dari Adjust_value, seperti setengah dari Adjust_value, yang setara dengan nilai kepemilikan deviasi dari indeks 2%.
  • Adjust_value: Nilai kontrak (USDT) disesuaikan dengan nilai deviasi. Ketika indeks menyimpang dari * Trade_value - Holding saat ini > Adjust_value, yaitu selisih antara Holding target dan Holding saat ini melebihi nilai ini, perdagangan akan dimulai. Penyesuaian yang terlalu besar lambat, perdagangan yang terlalu kecil sering, tidak dapat di bawah 10, atau tidak akan mencapai transaksi minimum, disarankan untuk mengatur lebih dari 40% dari Trade_value.
  • Ice_value: Nilai yang ditugaskan gunung es, juga tidak bisa kurang dari 10, sebenarnya pilih saja Adjust_value dengan yang lebih kecil dari Ice_value, jika dana yang lebih banyak dapat disetel relatif besar beberapa penyesuaian seperti itu lebih cepat, disarankan tidak kurang dari 20% dari Adjust_value, sehingga 5 kali gunung es dapat menyelesaikan transaksi, tentu saja, ketika Trade_value tidak besar, Ice_value dapat disetel relatif besar, sekali atau dua kali dapat disetel.
  • Interval: Waktu istirahat siklus, yang dapat diatur lebih kecil, seperti 1s, tetapi tidak dapat melebihi batas frekuensi binan.
  • Reset: Reset data historis, akan mengatur kembali harga awal dari referensi kebijakan ke harga saat ini, biasanya tanpa pengaturan

Risiko Strategis

Perhatikan bahwa jika suatu mata uang keluar dari pasar independen, misalnya naik beberapa kali dibandingkan indeks, maka akan menumpuk banyak posisi kosong pada mata uang tersebut, dan penurunan yang sama juga akan membuat strategi banyak dilakukan.




var Alpha = 0.001 //指数移动平均的Alpha参数,设置的越大,基准价格跟踪越敏感,最终持仓也会越低,降低了杠杆,但会降低收益,具体需要根据回测结果自己权衡
var Update_base_price_time_interval = 60 //多久更新一次基准价格, 单位秒,和Alpha参数相关,Alpha 设置的越小,这个间隔也可以设置的更小

//Stop_loss设置为0.8表示当资金达到低于初始资金的80%时,止损,清空所有仓位,停止策略。
//随着策略运行,Stop_loss可以设置大于1(重启生效),比如从1000赚到1500,Stop_loss设置为1.3,则回撤到1300元止损。不想止损可以把这个参数设置的很小。
//风险是大家都用这种止损会形成踩踏,加大亏损。
//初始资金在状态栏的init_balance字段,注意提现等操作会影响,别不小心止损了。
//如果还是怕黑天鹅事件,比如某个币归0等,可以手动提现出来。

var Stop_loss = 0.8 
var Max_diff = 0.4 //当偏差diff大于0.4时,不继续加空仓, 自行设置
var Min_diff = -0.3 //当diff小于-0.3时,不继续加多仓, 自行设置

if(IsVirtual()){
    throw '不能回测,回测参考 https://www.fmz.com/digest-topic/5294 '
}
if(exchange.GetName() != 'Futures_Binance'){
    throw '只支持币安期货交易所,和现货交易所不同,需要单独添加,名称为Futures_Binance'
}
var trade_symbols = Trade_symbols.split(',')
var symbols = trade_symbols
var index = 1 //指数
if(trade_symbols.indexOf('BTC')<0){
    symbols = trade_symbols.concat(['BTC'])
}
var update_profit_time = 0
var update_base_price_time= Date.now()
var assets = {}
var init_prices = {}


var trade_info = {}
var exchange_info = HttpQuery('https://fapi.binance.com/fapi/v1/exchangeInfo')
if(!exchange_info){
    throw '无法连接币安网络,需要海外托管者'
}
exchange_info = JSON.parse(exchange_info)
for (var i=0; i<exchange_info.symbols.length; i++){
    if(symbols.indexOf(exchange_info.symbols[i].baseAsset) > -1){
       assets[exchange_info.symbols[i].baseAsset] = {amount:0, hold_price:0, value:0, bid_price:0, ask_price:0, 
                                                     btc_price:0, btc_change:1,btc_diff:0,
                                                     realised_profit:0, margin:0, unrealised_profit:0}
       trade_info[exchange_info.symbols[i].baseAsset] = {minQty:parseFloat(exchange_info.symbols[i].filters[1].minQty),
                                                         priceSize:parseInt((Math.log10(1.1/parseFloat(exchange_info.symbols[i].filters[0].tickSize)))),
                                                         amountSize:parseInt((Math.log10(1.1/parseFloat(exchange_info.symbols[i].filters[1].stepSize))))
                                                        }
    }
}
assets.USDT = {unrealised_profit:0, margin:0, margin_balance:0, total_balance:0, leverage:0, update_time:0, init_balance:0, stop_balance:0, short_value:0, long_value:0, profit:0}

function updateAccount(){ //更新账户和持仓
    exchange.SetContractType('swap')
    var account = exchange.GetAccount()
    var pos = exchange.GetPosition()
    if (!account || !pos){
        Log('update account time out')
        return
    }
    assets.USDT.update_time = Date.now()
    for(var i=0; i<trade_symbols.length; i++){
        assets[trade_symbols[i]].margin = 0
        assets[trade_symbols[i]].unrealised_profit = 0
        assets[trade_symbols[i]].hold_price = 0
        assets[trade_symbols[i]].amount = 0
    } 
    for(var j=0; j<account.Info.positions.length; j++){
        if(account.Info.positions[j].positionSide == 'BOTH'){
            var pair = account.Info.positions[j].symbol 
            var coin = pair.slice(0,pair.length-4)
            if(trade_symbols.indexOf(coin) < 0){continue}
            assets[coin].margin = parseFloat(account.Info.positions[j].initialMargin) + parseFloat(account.Info.positions[j].maintMargin)
            assets[coin].unrealised_profit = parseFloat(account.Info.positions[j].unrealizedProfit)
        }
    }
    assets.USDT.margin = _N(parseFloat(account.Info.totalInitialMargin) + parseFloat(account.Info.totalMaintMargin),2)
    assets.USDT.margin_balance = _N(parseFloat(account.Info.totalMarginBalance),2)
    assets.USDT.total_balance = _N(parseFloat(account.Info.totalWalletBalance),2)
    if(assets.USDT.init_balance == 0){
        if(_G('init_balance')){
            assets.USDT.init_balance = _N(_G('init_balance'),2)
        }else{
            assets.USDT.init_balance = assets.USDT.total_balance 
            _G('init_balance',assets.USDT.init_balance)
        }
    }
    assets.USDT.profit = _N(assets.USDT.margin_balance - assets.USDT.init_balance, 2)
    assets.USDT.stop_balance = _N(Stop_loss*assets.USDT.init_balance, 2)
    assets.USDT.total_balance = _N(parseFloat(account.Info.totalWalletBalance),2)
    assets.USDT.unrealised_profit = _N(parseFloat(account.Info.totalUnrealizedProfit),2)
    assets.USDT.leverage = _N(assets.USDT.margin/assets.USDT.total_balance,2)
    pos = JSON.parse(exchange.GetRawJSON())
    if(pos.length > 0){
        for(var k=0; k<pos.length; k++){
            var pair = pos[k].symbol
            var coin = pair.slice(0,pair.length-4)
            if(trade_symbols.indexOf(coin) < 0){continue}
            if(pos[k].positionSide != 'BOTH'){continue}
            assets[coin].hold_price = parseFloat(pos[k].entryPrice)
            assets[coin].amount = parseFloat(pos[k].positionAmt)
            assets[coin].unrealised_profit = parseFloat(pos[k].unRealizedProfit)
        }
    }
}

function updateIndex(){ //更新指数
    
    if(!_G('init_prices') || Reset){
        Reset = false
        for(var i=0; i<trade_symbols.length; i++){
            init_prices[trade_symbols[i]] = (assets[trade_symbols[i]].ask_price+assets[trade_symbols[i]].bid_price)/(assets.BTC.ask_price+assets.BTC.bid_price)
        }
        Log('保存启动时的价格')
        _G('init_prices',init_prices)
    }else{
        init_prices = _G('init_prices')
        if(Date.now() - update_base_price_time > Update_base_price_time_interval*1000){
            update_base_price_time = Date.now()
            for(var i=0; i<trade_symbols.length; i++){ //更新初始价格
                init_prices[trade_symbols[i]] = init_prices[trade_symbols[i]]*(1-Alpha)+Alpha*(assets[trade_symbols[i]].ask_price+assets[trade_symbols[i]].bid_price)/(assets.BTC.ask_price+assets.BTC.bid_price)
            }
            _G('init_prices',init_prices)
        }
        var temp = 0
        for(var i=0; i<trade_symbols.length; i++){
            assets[trade_symbols[i]].btc_price =  (assets[trade_symbols[i]].ask_price+assets[trade_symbols[i]].bid_price)/(assets.BTC.ask_price+assets.BTC.bid_price)
            if(!(trade_symbols[i] in init_prices)){
                Log('添加新的币种',trade_symbols[i])
                init_prices[trade_symbols[i]] = assets[trade_symbols[i]].btc_price / index
                _G('init_prices',init_prices)
            }
            assets[trade_symbols[i]].btc_change = _N(assets[trade_symbols[i]].btc_price/init_prices[trade_symbols[i]],4)
            temp += assets[trade_symbols[i]].btc_change
        }
        index = _N(temp/trade_symbols.length, 4)
    }
    
}

function updateTick(){ //更新行情
    var ticker = HttpQuery('https://fapi.binance.com/fapi/v1/ticker/bookTicker')
    try {
        ticker = JSON.parse(ticker)
    }catch(e){
        Log('get ticker time out')
        return
    }
    assets.USDT.short_value = 0
    assets.USDT.long_value = 0
    for(var i=0; i<ticker.length; i++){
        var pair = ticker[i].symbol 
        var coin = pair.slice(0,pair.length-4)
        if(symbols.indexOf(coin) < 0){continue}
        assets[coin].ask_price = parseFloat(ticker[i].askPrice)
        assets[coin].bid_price = parseFloat(ticker[i].bidPrice)
        assets[coin].ask_value = _N(assets[coin].amount*assets[coin].ask_price, 2)
        assets[coin].bid_value = _N(assets[coin].amount*assets[coin].bid_price, 2)
        if(trade_symbols.indexOf(coin) < 0){continue}
        if(assets[coin].amount<0){
            assets.USDT.short_value += Math.abs((assets[coin].ask_value+assets[coin].bid_value)/2)
        }else{
            assets.USDT.long_value += Math.abs((assets[coin].ask_value+assets[coin].bid_value)/2)
        }
        assets.USDT.short_value = _N(assets.USDT.short_value,0)
        assets.USDT.long_value = _N(assets.USDT.long_value,0)
    }
    updateIndex()
    for(var i=0; i<trade_symbols.length; i++){
        assets[trade_symbols[i]].btc_diff = _N(assets[trade_symbols[i]].btc_change - index, 4)
    }
}

function trade(symbol, dirction, value){ //交易
    if(Date.now()-assets.USDT.update_time > 10*1000){
        Log('更新账户延时,不交易')
        return
    }
    var price = dirction == 'sell' ? assets[symbol].bid_price : assets[symbol].ask_price
    var amount = _N(Math.min(value,Ice_value)/price, trade_info[symbol].amountSize)
    if(amount < trade_info[symbol].minQty){
        Log(symbol, '合约价值偏离或冰山委托订单的大小设置过小,达不到最小成交, 至少需要: ', _N(trade_info[symbol].minQty*price,0)+1)
        return
    }
    exchange.IO("currency", symbol+'_'+'USDT')
    exchange.SetContractType('swap')
    exchange.SetDirection(dirction)
    var f = dirction == 'buy' ? 'Buy' : 'Sell'
    var id = exchange[f](price, amount, symbol)
    if(id){
        exchange.CancelOrder(id) //订单会立即撤销
    }
    return id
}



function updateStatus(){ //状态栏信息
        var table = {type: 'table', title: '交易对信息', 
             cols: ['币种', '数量', '持仓价格',  '当前价格', '偏离平均', '持仓价值', '保证金', '未实现盈亏'],
             rows: []}
    for (var i=0; i<symbols.length; i++){
        var price = _N((assets[symbols[i]].ask_price + assets[symbols[i]].bid_price)/2, trade_info[symbols[i]].priceSize)
        var value = _N((assets[symbols[i]].ask_value + assets[symbols[i]].bid_value)/2, 2)
        var infoList = [symbols[i], assets[symbols[i]].amount, assets[symbols[i]].hold_price, price, assets[symbols[i]].btc_diff, value, _N(assets[symbols[i]].margin,3), _N(assets[symbols[i]].unrealised_profit,3)]
        table.rows.push(infoList)
    }
    var logString = _D() + '   ' + JSON.stringify(assets.USDT) + ' Index:' + index + '\n'
    LogStatus(logString + '`' + JSON.stringify(table) + '`')
    
    if(Date.now()-update_profit_time > Log_profit_interval*1000){
        LogProfit(_N(assets.USDT.margin_balance,3))
        update_profit_time = Date.now()
    }
    
}

function stopLoss(){ //止损函数
    while(true){
        if(assets.USDT.margin_balance < Stop_loss*assets.USDT.init_balance && assets.USDT.init_balance > 0){
            Log('触发止损,当前资金:', assets.USDT.margin_balance, '初始资金:', assets.USDT.init_balance)
            Ice_value = 200 //止损的快一些,可修改
            updateAccount()
            updateTick()
            var trading = false //是否正在交易
            for(var i=0; i<trade_symbols.length; i++){
                var symbol = trade_symbols[i]
                if(assets[symbol].ask_price == 0){ continue }
                if(assets[symbol].bid_value >= trade_info[symbol].minQty*assets[symbol].bid_price){
                    trade(symbol, 'sell', assets[symbol].bid_value)
                    trading = true
                }
                if(assets[symbol].ask_value <= -trade_info[symbol].minQty*assets[symbol].ask_price){
                    trade(symbol, 'buy', -assets[symbol].ask_value)
                    trading = true
                }
            }
            Sleep(1000)
            if(!trading){
                throw '止损结束,如果需要重新运行策略,需要调低止损'
            }
        }else{ //不用止损
            return
        }
    }    
}

function onTick(){ //策略逻辑部分
    for(var i=0; i<trade_symbols.length; i++){
        var symbol = trade_symbols[i]
        if(assets[symbol].ask_price == 0){ continue }
        var aim_value = -Trade_value * _N(assets[symbol].btc_diff/0.01,3)
        if(aim_value - assets[symbol].ask_value >= Adjust_value && assets[symbol].btc_diff > Min_diff && assets.USDT.long_value-assets.USDT.short_value <= 1.1*Trade_value){
            trade(symbol,'buy', aim_value - assets[symbol].ask_value)
        }
        if(aim_value - assets[symbol].bid_value <= -Adjust_value && assets[symbol].btc_diff < Max_diff && assets.USDT.short_value-assets.USDT.long_value <= 1.1*Trade_value){
            trade(symbol,'sell', -(aim_value - assets[symbol].bid_value))
        }
    }
}

function main() {
    while(true){
        updateAccount()
        updateTick()
        stopLoss() //止损
        onTick()
        updateStatus()
        Sleep(Interval*1000)
    }
}

Berkaitan

Lebih banyak

Tiagombalsa@tmbs95 Tambahkan saya di telegram, tertarik

Perempuan juga.Tolong ajari, dalam fungsi onTick (), ada baris seperti ini, assets.USDT.long_value-assets.USDT.short_value <= 1.1*Trade_value, saya mengerti ini diatur untuk mencegah keterimbangan ruang kosong yang terlalu besar.

MikelslTidak bisa mencari WeChat?

Modal rantaiMax_diff dan Min_diff seharusnya 0.04 dan -0.03 bukan?

Angkatan Udara Tidak Pernah Menjadi PerbudakanBerikan sedikit sinar matahari ke lingkaran tertutup ini.

Rumput/upload/asset/1b39347a88aa4cff916.jpg

Kualifikasi kelasOrang-orang menyarankan untuk melakukan lebih banyak overshooting untuk melakukan strategi overshooting kosong untuk menghilangkan BNB, transaksi ini adalah BNB ingin menarik, diperkirakan akan overshooting; tidak bisa melihat dari sudut pandang sejarah sekarang

Perempuan juga.Ini adalah dua hal.

Perempuan juga.Sebuah mata uang keluar dari pasar independen, pengaturan keseimbangan multi-ruang ini dapat mencegah kerugian besar, jadi keputusan tidak dapat diseimbangkan. Hanya bisa mencari cara untuk membuka daftar lindung nilai. Saat ini berbagai mata uang melambung, merasa tidak cocok untuk menjalankan strategi ini, mundur sedikit besar.

RumputSalah, wangweibing_ustb

izhangsanPada kenyataannya, lihatlah kode, hasil retesting untuk semua mata uang sudah diketahui, tidak perlu khawatir. Pada saat bergabung, Alpha = 0.05, tambahkan LINK, ETC, BNB, retret awal dalam sejarah adalah 3%, retret maksimum pasar ekstrim tidak mencapai 25%, Trade_Value menggunakan 3% untuk keamanan yang berlebihan untuk semua mata uang.