作为一个教学策略,兼顾一定的实战性能当然是最好的。「数字货币期货类马丁策略」在FMZ.COM围观板块也已经展示了小半年了。经历了好几拨风吹雨打,马丁、网格策略有其风险硬伤,参数保守一点也不是不能用。
Pendaftaran sebenar
Disk sebenar dYdX
Mimpi itu menjamin bahawa tidak ada kurva pendapatan pembuatan ketumbar penuh (kepala anjing manual).
Walau bagaimanapun, reka bentuk strategi edisi pertama adalah agak sederhana, pada antara muka hanya terdapat satu pegangan, output data hak total, dan grafik pendapatan hanya dicetak untuk mencapai keuntungan dan kerugian, tanpa mengira kenaikan dan penurunan.
Dalam artikel ini, kami akan berkongsi dengan anda semua tentang peningkatan strategi ini selama enam bulan selepas perang sebenar yang stabil.
Versi dasar sebelum menaik taraf direkodkan di halaman "Catatan" untuk dasar tersebut.
这个也是我的个人开发习惯,在FMZ.COM上很方便记录策略开发、迭代的点点滴滴。
Mulakan menaik taraf!
Pertama, kita perlu mengoptimumkan "Status Bar" untuk menunjukkan bahawa pelajar yang biasa dengan dokumen pembangunan FMZ tahu bahawa untuk menunjukkan data status bar pada FMZ adalahLogStatus
Fungsi. Jadi kita cari titik masuk ini untuk mula merancang kod.
Di sini, anda perlu memasukkan satu kod besar:
var tblPos = {
"type" : "table",
"title" : "持仓",
"cols" : ["持仓数量", "持仓方向", "持仓均价", "持仓盈亏", "合约代码", "自定义字段 / " + SpecifyPosField],
"rows" : []
}
var descType = ["多头仓位", "空头仓位"]
for (var posIndex = 0 ; posIndex < pos.length ; posIndex++) {
tblPos.rows.push([pos[posIndex].Amount, descType[pos[posIndex].Type], pos[posIndex].Price, pos[posIndex].Profit, pos[posIndex].ContractType, SpecifyPosField == "" ? "--" : pos[posIndex].Info[SpecifyPosField]])
}
var tbl = {
"type" : "table",
"title" : "数据",
"cols" : ["当前总权益", "实际盈亏", "当前价格", "买单价格/数量", "卖单价格/数量"],
"rows" : []
}
var buyOrder = null
var sellOrder = null
for (var orderIndex = 0 ; orderIndex < orders.length ; orderIndex++) {
if (orders[orderIndex].Type == ORDER_TYPE_BUY) {
buyOrder = orders[orderIndex]
} else {
sellOrder = orders[orderIndex]
}
}
var realProfit = currTotalEq - totalEq
if (exchange.GetName() == "Futures_Binance") {
_.each(pos, function(p) {
realProfit += parseFloat(p.Info.unRealizedProfit)
})
}
var t = exchange.GetTicker()
tbl.rows.push([currTotalEq, realProfit, t ? t.Last : "--", (buyOrder.Price + "/" + buyOrder.Amount), (sellOrder.Price + "/" + sellOrder.Amount)])
// 更新图表数据
if (t && showLine) {
_.each(pos, function(p) {
$.PlotLine(descType[p.Type] + "持仓价格", p.Price)
})
$.PlotLine("买单挂单价格", buyOrder.Price)
$.PlotLine("卖单挂单价格", sellOrder.Price)
$.PlotLine("当前价格", t.Last)
}
// 更新状态栏数据
LogStatus("时间:" + _D() + "\n" + "`" + JSON.stringify(tblPos) + "`" + "\n" + "`" + JSON.stringify(tbl) + "`")
Menggantikan yang biasa.LogStatus
Pengeluaran
LogStatus(_D(), "当前总权益:", currTotalEq, "持仓:", pos)
Strategi ini menambah dua parameter:
Parameter showLine Apabila dipilih, anda boleh menggunakan perpustakaan baris gambar untuk melukis harga simpanan, harga pesanan, kurva harga semasa di halaman rak sebenar.
Tentukan parameter PosField Ia digunakan untuk menetapkan bidang asal maklumat simpanan yang perlu dipaparkan, kerana nama medan data asal simpanan setiap bursa berbeza. Oleh itu, parameter yang disesuaikan direka di sini untuk menentukan nama medan yang akan dipaparkan. Sebagai contoh, saya mempunyai akaun Bitcoin:
Saya mahu memaparkan data maklumat simpanan dalam medan Info (data asal antara muka bursa)unRealizedProfit
Sifat, yang memegang tidak mencapai keuntungan atau kerugian. Anda boleh menetapkan parameter SpecifyPosField sebagai unRealizedProfit. Ia boleh dipaparkan di bar status.
Reka bentuk yang serupa boleh membolehkan dasar untuk menyesuaikan output terhadap data yang tidak seragam, memberi pengguna pilihan untuk menyesuaikan output mereka sendiri.
Anda boleh melihat semua data yang perlu dipaparkan dengan mudah. Memerhatikan kemajuan perdagangan strategi, harga simpanan semasa, keuntungan, kerugian, harga pesanan yang dipaparkan sangat mudah. Strategi mempunyai risiko tertentu, perisian sebenar menetapkan parameter kawalan tertentu berdasarkan risiko mereka sendiri, keuntungan dan kerugian yang bertanggungjawab. Strategi terbuka hanya digunakan untuk pertukaran pembelajaran.
AAA386Mimpi, n = 1 dalam kod sumber seolah-olah tidak mencerminkan makna?
HermitXAUUSD dan XAUUSD secara relatif merosot jatuh tidak ada ringgit yang begitu kuat
Oh, Tuhan.Multivariety, Dreamcatcher, mula-mula parameter untuk menukar kepada nisbah ialah pembolehubah keuntungan, supaya anda boleh menjalankan pelbagai mata wang pada masa yang sama.
Pencipta Kuantiti - Impian KecilWalau bagaimanapun, ia boleh direka, tetapi ia dianggap lebih berisiko, jadi kematian ditulis sebagai n = 1.
Pencipta Kuantiti - Impian KecilYa, kerana harga pasangan yang berlainan sangat berbeza, perbezaan harga yang tidak dapat ditunjukkan secara intuitif perlu direka dalam peratusan. Jika anda terus menunjukkan perbezaan harga, parameter aritmatika perlu ditetapkan untuk menetapkan perbezaan harga yang berbeza secara berasingan.