Dalam beberapa artikel sebelumnya, kami telah menganalisis ide-ide dan implementasi kode untuk strategi frekuensi tinggi dari mesin pemetik lobak versi asli.
Cara Membedah Mesin Pemetik Cengkeh (1) Teknik pemotongan kacang kedelai (2)
Banyak pengguna yang lebih peduli dengan kuantitas lingkaran koin.cetak uang"Saya tidak tahu apa yang terjadi.cetak uangDari pengamatan dan analisis dari banyak orang yang memperhatikan, strategi frekuensi tinggi ini mirip dengan mesin pemotong kacang kedelai (Grassin juga mengatakan bahwa prinsip frekuensi tinggi strategi relatif lebih dekat). Namun pasti ada kesenian untuk mewujudkan strategi yang memiliki tingkat kemenangan yang stabil dan rasio laba rugi yang tepat.
Karena itu, anak-anak kecil yang ahli teknik juga tidak tahan untuk mengubah mantra, meskipun efek taktik yang diubah oleh mantra itu dihancurkan menjadi kotoran oleh strategi dewa-dewa besar. Tetapi juga merupakan praktik belajar strategi frekuensi tinggi, teman-teman sekolah FM Zer yang tertarik untuk mendiskusikan dan belajar bersama.
var TickInterval = 100
function LeeksReaper() {
var self = {}
self.numTick = 0
self.lastTradeId = 0
self.vol = 0
self.askPrice = 0
self.bidPrice = 0
self.orderBook = {
Asks: [],
Bids: []
}
self.prices = []
self.tradeOrderId = 0
self.account = null
self.buyPrice = 0
self.sellPrice = 0
self.state = 0
self.depth = null
self.updateTrades = function() {
var trades = _C(exchange.GetTrades)
if (self.prices.length == 0) {
while (trades.length == 0) {
trades = trades.concat(_C(exchange.GetTrades))
}
for (var i = 0; i < 15; i++) {
self.prices[i] = trades[trades.length - 1].Price
}
}
self.vol = 0.7 * self.vol + 0.3 * _.reduce(trades, function(mem, trade) {
// Huobi not support trade.Id
if ((trade.Id > self.lastTradeId) || (trade.Id == 0 && trade.Time > self.lastTradeId)) {
self.lastTradeId = Math.max(trade.Id == 0 ? trade.Time : trade.Id, self.lastTradeId)
mem += trade.Amount
}
return mem
}, 0)
}
self.updateOrderBook = function() {
var orderBook = _C(exchange.GetDepth)
self.depth = orderBook
self.buyPrice = orderBook.Bids[pendingLevel].Price
self.sellPrice = orderBook.Asks[pendingLevel].Price
self.orderBook = orderBook
if (orderBook.Bids.length < 3 || orderBook.Asks.length < 3) {
return
}
self.bidPrice = orderBook.Bids[0].Price * 0.618 + orderBook.Asks[0].Price * 0.382 + 0.01
self.askPrice = orderBook.Bids[0].Price * 0.382 + orderBook.Asks[0].Price * 0.618 - 0.01
self.prices.shift()
self.prices.push(_N((orderBook.Bids[0].Price + orderBook.Asks[0].Price) * 0.15 +
(orderBook.Bids[1].Price + orderBook.Asks[1].Price) * 0.1 +
(orderBook.Bids[2].Price + orderBook.Asks[2].Price) * 0.1 +
(orderBook.Bids[3].Price + orderBook.Asks[3].Price) * 0.075 +
(orderBook.Bids[4].Price + orderBook.Asks[4].Price) * 0.05 +
(orderBook.Bids[5].Price + orderBook.Asks[5].Price) * 0.025))
}
self.updateAccount = function() {
var account = exchange.GetAccount()
if (!account) {
return
}
self.account = account
LogProfit(parseFloat(account.Info.totalWalletBalance), account)
}
self.CancelAll = function() {
while (1) {
var orders = _C(exchange.GetOrders)
if (orders.length == 0) {
break
}
for (var i = 0; i < orders.length; i++) {
exchange.CancelOrder(orders[i].Id)
}
Sleep(100)
}
}
self.poll = function() {
self.numTick++
self.updateTrades()
self.updateOrderBook()
var pos = _C(exchange.GetPosition)
var burstPrice = self.prices[self.prices.length - 1] * burstThresholdPct
var bull = false
var bear = false
LogStatus(_D(), "\n", 'Tick:', self.numTick, 'self.vol:', self.vol, ', lastPrice:', self.prices[self.prices.length - 1], ', burstPrice: ', burstPrice)
if (self.numTick > 2 && (
self.prices[self.prices.length - 1] - _.max(self.prices.slice(-6, -1)) > burstPrice ||
self.prices[self.prices.length - 1] - _.max(self.prices.slice(-6, -2)) > burstPrice && self.prices[self.prices.length - 1] > self.prices[self.prices.length - 2]
)) {
bull = true
} else if (self.numTick > 2 && (
self.prices[self.prices.length - 1] - _.min(self.prices.slice(-6, -1)) < -burstPrice ||
self.prices[self.prices.length - 1] - _.min(self.prices.slice(-6, -2)) < -burstPrice && self.prices[self.prices.length - 1] < self.prices[self.prices.length - 2]
)) {
bear = true
}
if (pos.length != 0) {
if (pos[0].Type == PD_LONG) {
self.state = 1
} else {
self.state = 2
}
} else {
self.state = 0
}
if ((!bull && !bear)) {
return
}
if (bull) {
var price = (self.state == 0 || self.state == 1) ? self.buyPrice : self.depth.Bids[coverPendingLevel].Price
var amount = (self.state == 0 || self.state == 1) ? pendingAmount : pos[0].Amount
exchange.SetDirection("buy")
exchange.Buy(price, amount)
} else if (bear) {
var price = (self.state == 0 || self.state == 2) ? self.sellPrice : self.depth.Asks[coverPendingLevel].Price
var amount = (self.state == 0 || self.state == 2) ? pendingAmount : pos[0].Amount
exchange.SetDirection("sell")
exchange.Sell(price, amount)
}
self.numTick = 0
Sleep(TickInterval)
self.CancelAll()
self.updateAccount()
}
while (!self.account) {
self.updateAccount()
Sleep(500)
}
Log("self.account:", self.account)
return self
}
function main() {
LogProfitReset()
exchange.SetPrecision(pricePrecision, amountPrecision)
exchange.SetContractType("swap")
var reaper = LeeksReaper()
while (true) {
reaper.poll()
Sleep(100)
}
}
Strategi ini dirancang untuk digunakan dalam perdagangan di pasar kontrak USDT Binance, kontrak Binance mendukung kepemilikan unidirectional. Oleh karena itu, strategi ini dirancang sesuai dengan karakteristik kepemilikan unidirectional ("pemilikan unidirectional lebih mudah untuk memodifikasi strategi), tidak memperhitungkan perhentian, hanya memperhitungkan jual beli.
Strategi ini pada dasarnya mempertahankan standar penentuan tren harga jangka pendek dari versi aslinya, dan ukuran harga jangka pendek yang terganggu oleh parameterburstThresholdPct
Untuk menentukan harga jangka pendek berdasarkan kriteria ini,bull
(Sapi) ataubear
(Beruang)
Kebijakan ini menghapus beberapa modul dari versi aslinya, seperti modul keseimbangan. Perubahan besar adalah mengubah suborder menjadi suborder yang ditempatkan di dalam lembar pesanan, menunggu transaksi. Harapkan untuk membuka posisi dengan biaya yang lebih rendah dalam peredaran yang sangat kacau, mengikuti tren jangka pendek, dan terus berpaling ketika tren jangka pendek terbalik.
Strategi ini sangat singkat dan sederhana. Meskipun strategi ini tidak menghasilkan uang atau bahkan kehilangan uang, sebagai FMZer belajar strategi frekuensi tinggi, mengamati perilaku strategi frekuensi tinggi, mengamati hukum mikro pasar, dan sebagainya.
Anda dapat melihat bahwa ketika pasar tidak aktif, lebih sulit untuk membuka posisi.
Saat ini, belum ada optimasi yang baik. Para siswa yang tertarik silahkan berbicara dan mendiskusikan bersama.
Alamat kebijakan:https://www.fmz.com/strategy/260806
Strategi ini hanya digunakan untuk belajar, dan jika pasar tidak stabil, Anda mungkin akan kehilangan.
Buah kedelai panggangBagaimana kontrak mengatur leverage multiplier di sini?
Sapi-sapi ternak2"Kalau ada kesepakatan yang dilakukan secara sepihak, bagaimana cara mengatasinya?
Makhluk di lintasanIni bisa menentukan jumlah transaksi atau tidak, atau menentukan mata uang yang dipilih secara otomatis.
QslllApakah ada yang berhasil? Bisa berbagi data?
Kuantitas Buah KacangUpdateOrderBook menghitung harga di mana, versi aslinya setelah harga ditimbang seharusnya berada di dekat angka tengah dari n jual beli di bursa, dalam artikel ini menghitung harga setelah ditimbang adalah dua kali (dekat angka tengah dari bursa), di sini tidak jelas.
168Apakah DreamWorks bisa membuat versi yang dapat diunduh, yang dapat digunakan secara langsung?
168main:68:43 - TypeError: Cannot read property 'totalWalletBalance' of undefined (Tidak dapat membaca properti 'totalWalletBalance' dari undefined) Jika Anda tidak bisa melakukan tes ulang, apakah Anda harus melakukan tes ulang? Bagaimana cara mengoreksi?
bengbanFoto-foto yang benar-benar berjalan sangat tipis.
Sedih"Trading yang tidak bisa dicapai, strategi yang tidak bisa berjalan, bagaimana bisa jalan-jalan".
Penemu Kuantitas - Mimpi KecilAnda dapat menurunkan tingkat perbandingan, tetapi ada keuntungan dan kerugian. Strategi frekuensi tinggi ini membutuhkan kedalaman yang baik di permukaan, banyak ruang bermain yang sengit.
Buah kedelai panggangDream Over, saya menghitung strategi ini, daftar pendirian ini akan dibatalkan jika tidak ada transaksi dalam 100 ms, saya berjalan satu malam (sekitar 5 jam) tidak ada pesanan dan 5 pesanan, bagaimana cara mengubah parameter?
Penemu Kuantitas - Mimpi KecilJika Anda ingin mendapatkan keuntungan dari trading Forex, Anda bisa langsung memasang leverage di bursa.
Penemu Kuantitas - Mimpi KecilHa ha, baiklah, terima kasih atas pengingatannya.
Penemu Kuantitas - Mimpi KecilStrategi ini adalah strategi pengajaran, terutama melihat ide, hanya mengajar.
m0606Saya juga merasa harga terbatas ini cukup bagus...
Penemu Kuantitas - Mimpi KecilINFO adalah bahasa Melayu.
BerjalanUji ulang tidak mendukung informasi INFO
bengbanTick harga terbatas desain yang bagus
Penemu Kuantitas - Mimpi Kecil!>_>! Ini hanya prototipe, rugi, belajar, hanya memiliki objek penelitian.