Penguatan sebuah robot pembayaran langsung dengan mata uang digital yang mudah

Penulis:Mimpi kecil, Dibuat: 2021-02-18 16:09:43, Diperbarui: 2023-09-26 20:57:30

img

Penguatan sebuah robot pembayaran langsung dengan mata uang digital yang mudah

Banyak teman-teman yang melakukan transaksi manual membutuhkan robot untuk mengikuti, tetapi juga membutuhkan waktu yang lama untuk memulai desain terprogram saat kesulitan dengan dasar-dasar nol. Kami mendesain robot langsung sederhana untuk membantu teman-teman yang belajar dasar-dasar perdagangan terprogram.

Pertama, kita akan menganalisis kebutuhan, robot ini berfungsi untuk melakukan transaksi ketika satu akun melakukan transaksi, dan akun lain mengikuti. Jadi, pertama-tama kita jelaskan dua subjek:

  • Referensi akun: Akun yang diawasi, monitor setiap langkah akun ini.
  • Akuntansi yang ditindaklanjuti: Akuntansi yang ditindaklanjuti, ketika tindakan terjadi pada akun referensi, akun yang ditindaklanjuti melakukan tindakan yang sama.

Jika kita sudah memahami kebutuhan ini, kita harus terus berpikir tentang langkah selanjutnya. Bagaimana kita bisa mengidentifikasi setiap langkah dari akun referensi?

Pemantauan akun referensi, yang sangat sederhana untuk akun tunai, hanya dilakukan dengan membandingkan jumlah koin dalam data informasi akun terbaru dengan jumlah koin dalam data informasi akun terbaru yang saat ini diperoleh. Jika jumlah koin dalam data informasi akun terbaru yang diperoleh saat ini lebih banyak daripada yang tercatat sebelumnya, menunjukkan bahwa akun referensi melakukan satu transaksi pembelian dan pembelian berhasil. Sebaliknya, jika jumlah koin kurang, maka transaksi jual dilakukan untuk akun referensi. Setelah kami menemukan tindakan ini, kami dapat meminta akun pertukaran lain untuk melakukan operasi yang sama.

Ketika ditemukan bahwa akun referensi telah melakukan transaksi, pastikan untuk memperbarui catatan data akun terakhir untuk membandingkan dengan informasi akun berikutnya yang diperoleh untuk menentukan apakah ada tindakan transaksi baru.

Di atas, logisnya dijelaskan dalam kode strategi:

        // 检测跟单
        var amount = (nowAcc.Stocks + nowAcc.FrozenStocks) - (initAcc.Stocks + initAcc.FrozenStocks)  // 检测币数发生的变化
        var func = null 
        if (amount > 0) {   // 币变多了
            func = $.Buy    // 买入
        } else if (amount < 0) {  // 币变少了
            func = $.Sell         // 卖出
        } else {
            continue
        }
        
        // 执行跟单
        Log("跟单!数量:", Math.abs(amount), "#FF0000")
        for (var i = 1 ; i < exchanges.length ; i++) {    // i 等于 0 时,是参考交易所,不处理,处理其它的跟单交易所        
            func(exchanges[i], Math.abs(amount))          // 执行具体的交易函数,可能是$.Buy 或者是 $.Sell ,具体看amount 是大于0,还是小于0
        }
        
        // 执行跟单之后更新参考交易所账户信息记录
        initAcc = nowAcc                                  // 更新参考交易所最近一次的账户信息,用于下次对比

Strategi ini menggunakan kode di atas sebagai logika deteksi utama. Untuk desain yang sederhana, strategi ini menggunakan template template dari FMZ's official cryptocurrency trading library.$.Buy , $.SellSemua adalah fungsi dari template ini, yang berfungsi untuk melakukan operasi berikut.

Selain itu, kebijakan ini juga menambahkan beberapa tampilan status untuk memantau data dari masing-masing akun.

function test() { 
    // 测试函数
    var ts = new Date().getTime()    
    if (ts % (1000 * 60 * 60 * 6) > 1000 * 60 * 60 * 5.5) {
        Sleep(1000 * 60 * 10)
        var x = Math.random()
        if (x > 0.5) {
            $.Buy(exchange, x / 10)    
        } else {
            $.Sell(exchange, x / 10)    
        }        
    }
}

function main() {
    LogReset(1)
    if (exchanges.length < 2) {
        throw "没有跟单的交易所"
    }
    var exName = exchange.GetName()
    // 检测参考交易所
    if (exName.includes("Futures_")) {
        throw "仅支持现货跟单"
    }
    Log("开始监控", exName, "交易所", "#FF0000")
    
    // 检测跟单交易所
    for (var i = 1 ; i < exchanges.length ; i++) {
        if (exchanges[i].GetName().includes("Futures_")) {
            throw "不支持期货交易所跟单"
        }
    }
    
    var initAcc = _C(exchange.GetAccount)
    while(1) {
        if(IsVirtual()) {
           // 测试函数
           test()  
        }  
        Sleep(5000)
        
        // 更新参考账户当前的账户信息
        var nowAcc = _C(exchange.GetAccount)
        
        // 参考交易所账户信息
        var refTbl = {
            type : "table", 
            title : "参考交易所",
            cols : ["名称", "币", "冻结币", "钱", "冻结钱"],
            rows : []
        }
        refTbl.rows.push([exName, nowAcc.Stocks, nowAcc.FrozenStocks, nowAcc.Balance, nowAcc.FrozenBalance])
        
        // 跟单交易所账户信息
        var followTbl = {
            type : "table", 
            title : "跟单交易所",
            cols : ["名称", "币", "冻结币", "钱", "冻结钱"],
            rows : []        
        }
        for (var i = 1 ; i < exchanges.length ; i++) {
            var acc = _C(exchanges[i].GetAccount)
            var name = exchanges[i].GetName()
            followTbl.rows.push([name, acc.Stocks, acc.FrozenStocks, acc.Balance, acc.FrozenBalance])
        }
        
        // 状态栏显示
        LogStatus(_D(), "\n`" + JSON.stringify(refTbl) + "`", "\n`" + JSON.stringify(followTbl) + "`")
        
        // 检测跟单
        var amount = (nowAcc.Stocks + nowAcc.FrozenStocks) - (initAcc.Stocks + initAcc.FrozenStocks)
        var func = null 
        if (amount > 0) {
            func = $.Buy
        } else if (amount < 0) {
            func = $.Sell
        } else {
            continue
        }
        
        // 执行跟单
        Log("跟单!数量:", Math.abs(amount), "#FF0000")
        for (var i = 1 ; i < exchanges.length ; i++) {            
            func(exchanges[i], Math.abs(amount))
        }
        
        // 执行跟单之后更新参考交易所账户信息记录
        initAcc = nowAcc
    }
}

Mari kita uji secara real time, menggunakan FMZ untuk menguji WexApp Simulator Exchange. Di sini saya menambahkan tiga akun WexApp, masing-masing terpisah.

img

Kemudian kami menggunakan terminal transaksi FMZ untuk melakukan pemesanan secara manual pada pesanan berikutnya dan melihat apakah robot akan melakukan pemesanan secara otomatis.

img

Anda dapat melihat bahwa robot mendeteksi transaksi dan melakukan transaksi.

img

Strategi lengkap:https://www.fmz.com/strategy/255182

Strategi ini hanya untuk belajar, terima kasih untuk komentar jika ada pertanyaan.


Berkaitan

Lebih banyak

Orang SyiahHalo, apakah Anda bisa membantu dengan biaya pengiriman. Terima kasih.

Orang SyiahHalo, apakah Anda bisa membantu dengan biaya pengiriman. Terima kasih.

Anak yang gemukApakah Anda bisa mendeteksi liontin?

13169222039Halo, saya ingin bertanya apakah Anda bisa mendapatkan kode orang yang ada di atas koin.

Mimpi kecilStrategi ini adalah kode open source, dan sudah tersedia di Strategy Square. Anda dapat melihat tutorial yang dibuat oleh komunitas FMZ.

rootmeJika ada penundaan pada koin asli, mungkin harga Anda jauh berbeda dengan mereka.