Strategi keseimbangan platform spreadsheet Python

Penulis:Mimpi kecil, Dibuat: 2020-02-05 10:02:03, Diperbarui: 2023-10-12 21:20:47

img

Strategi keseimbangan platform spreadsheet Python

Versi JavaScript

Alamat kebijakan:https://www.fmz.com/strategy/345

Dalam artikel ini, kita akan berlatih memindahkan kebijakan JavaScript sederhana. Dengan memindahkan kebijakan, penemu akan lebih akrab dengan panggilan antarmuka platform perdagangan kuantitatif, dan memahami sedikit perbedaan antara bahasa yang berbeda dalam strategi pengembangan platform, sebenarnya kebijakan versi JavaScript sangat sedikit berbeda dari kebijakan versi Python, karena panggilan antarmuka pada dasarnya sama.

Penjelasan Strategi

Mengutip penjelasan dari versi JavaScript:

Ini perlu membangun gudang, misalnya, jika Anda memiliki $ 5.000 di akun, dan satu koin, jika nilai koin lebih besar dari saldo akun $ 5.000 dan perbedaan lebih besar dari nilai depreciation, misalnya, jika koin sekarang bernilai $ 6.000, maka Anda akan menjual $ 6.000-5.000 / $ 6.000 / 2, yang berarti mata uang naik, dan menukar uang kembali, jika mata uang turun, misalnya $ 4.000, maka Anda akan membeli $ 5.000-4.000 / $ 4.000 / 2.

Strategi sangat sederhana, kode versi JavaScript juga tidak panjang, hanya lebih dari 70 baris. Strategi bahasa Python yang lebih sederhana, kode yang lebih pendek, sangat cocok untuk belajar pemula, ada banyak kode yang dibagikan oleh pengembang di platform perdagangan kuantitatif penemu, dukungan bahasaJavaScript/C++/PythonJadi, memiliki pengetahuan lebih lanjut tentang bahasa pengembang tidak hanya berguna untuk strategi belajar, penelitian, dan pengembangan, tetapi juga dapat membantu Anda lebih akrab dengan berbagai antarmuka API platform.

Kode Strategi

'''backtest
start: 2019-12-01 00:00:00
end: 2020-02-01 11:00:00
period: 1m
exchanges: [{"eid":"OKEX","currency":"BTC_USDT","stocks":1}]
'''

InitAccount = None

def CancelPendingOrders():
    ret = False
    while True:
        orders = _C(exchange.GetOrders)
        if len(orders) == 0 :
            return ret

        for j in range(len(orders)):
            exchange.CancelOrder(orders[j].Id)
            ret = True
            if j < len(orders) - 1:
                Sleep(Interval)
    return ret 

def onTick():
    acc = _C(exchange.GetAccount)
    ticker = _C(exchange.GetTicker)
    spread = ticker.Sell - ticker.Buy
    diffAsset = (acc.Balance - (acc.Stocks * ticker.Sell)) / 2
    ratio = diffAsset / acc.Balance
    LogStatus("ratio:", ratio, _D())
    if abs(ratio) < threshold:
        return False
    if ratio > 0 :
        buyPrice = _N(ticker.Sell + spread, ZPrecision)
        buyAmount = _N(diffAsset / buyPrice, XPrecision)
        if buyAmount < MinStock:
            return False
        exchange.Buy(buyPrice, buyAmount, diffAsset, ratio)
    else :
        sellPrice = _N(ticker.Buy - spread, ZPrecision)
        sellAmount = _N(-diffAsset / sellPrice, XPrecision)
        if sellAmount < MinStock:
            return False 
        exchange.Sell(sellPrice, sellAmount, diffAsset, ratio)
    return True

def main():
    global InitAccount, LoopInterval
    InitAccount = _C(exchange.GetAccount)
    LoopInterval = max(LoopInterval, 1)
    while True:
        if onTick():
            Sleep(1000)
            CancelPendingOrders()
            Log(_C(exchange.GetAccount))
        Sleep(LoopInterval * 1000)

Kode dimulai dengan

'''backtest
start: 2019-12-01 00:00:00
end: 2020-02-01 11:00:00
period: 1m
exchanges: [{"eid":"OKEX","currency":"BTC_USDT","stocks":1}]
'''

Ini adalah konfigurasi retest, yang berarti bahwa konfigurasi retest (setelan) disimpan dalam bentuk kode, dan saat retest secara otomatis dikonfigurasi sesuai dengan pengaturan ini. Bagian ini dapat dihapus, dihapus, saat retest Anda perlu mengatur informasi konfigurasi retest secara manual di halaman retest. Referensi:https://www.fmz.com/bbs-topic/859

Parameter kebijakan ini sangat konsisten dengan versi JavaScript, kode kebijakan juga dipindahkan per kalimat, struktur program tidak berubah, dan dapat dibandingkan per kalimat, melihat perbedaan kebijakan yang ditulis dalam bahasa yang berbeda.

Pengamatan

Konfigurasi parameterimg

Statistikimg

img

Di sini, Anda dapat melihat foto-foto yang menarik.https://www.fmz.com/strategy/183374

Strategi ini hanya untuk referensi belajar, uji ulang, dan minat untuk mengoptimalkan upgrade.


Berkaitan

Lebih banyak

Kekuatan langitSapi yang baik.