Strategi Keseimbangan Platform Python

Penulis:Mimpi kecil, Dicipta: 2020-02-05 10:02:03, Dikemas kini: 2023-10-12 21:20:47

img

Strategi Keseimbangan Platform Python

Versi JavaScript

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

Dalam artikel ini, kita akan berlatih untuk memindahkan dasar JavaScript yang mudah. Dengan memindahkan dasar, pencipta akan lebih mengenali panggilan antarmuka platform perdagangan kuantitatif dan memahami perbezaan kecil antara bahasa yang berbeza ketika membangunkan dasar platform, sebenarnya dasar versi JavaScript sangat sedikit berbeza dengan dasar versi Python kerana panggilan antarmuka pada dasarnya sama.

Panduan Strategi

Mengutip keterangan dari versi JavaScript:

Ini memerlukan pembinaan simpanan, contohnya, jika akaun anda mempunyai $ 5,000, dan 1 sen, jika nilai sen lebih besar daripada baki akaun $ 5,000, dan perbezaan melebihi nilai margin, contohnya, sen kini bernilai $ 6,000, maka juallah $ 6,000-5000 / 6000 / 2 sen, ini menunjukkan bahawa sen meningkat, tukar semula wang itu, jika sen menurun, contohnya $ 4,000, beli $ 5,000-4000 / 4000 / 2 sen, beli kembali beberapa ketika mata wang jatuh, jika ia jatuh, jual semula, seperti pada mata wang biasa, peruntukan yang berbeza di kedua-dua belah pihak, jadi saya menamakannya strategi keseimbangan.

Kaedahnya sangat mudah, kod versi JavaScript juga tidak panjang, hanya lebih daripada 70 baris. Kaedah bahasa Python yang lebih ringkas, kodnya lebih pendek, sangat sesuai untuk pembelajaran pemula, terdapat banyak kod yang dikongsi oleh pemaju di platform perdagangan kuantiti pencipta, sokongan bahasa.JavaScript/C++/PythonOleh itu, lebih banyak pengetahuan mengenai bahasa pengembang tidak hanya berguna untuk strategi pembelajaran, penyelidikan dan pembangunan, tetapi juga dapat menjadi lebih biasa dengan pelbagai antara muka API platform.

Kod 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)

Kod bermula 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}]
'''

Ia adalah konfigurasi retargeting, yang bermaksud bahawa konfigurasi retargeting (setelan) disimpan dalam bentuk kod, dan apabila retargeting secara automatik mengikut konfigurasi setelan ini. Bahagian ini boleh dipadamkan, dipadamkan, apabila retargeting, anda perlu menetapkan maklumat konfigurasi retargeting secara manual di halaman retargeting. Sumber:https://www.fmz.com/bbs-topic/859

Parameter strategi ini adalah sama dengan versi JavaScript, kod strategi juga dipindahkan setiap ayat, struktur program tidak berubah, dan boleh dibandingkan setiap ayat, melihat perbezaan antara strategi yang ditulis dalam bahasa yang berbeza.

Ujian semula

Pengaturan parameterimg

Statistikimg

img

Alamat strategi:https://www.fmz.com/strategy/183374

Strategi ini hanya untuk rujukan pembelajaran, ujian ulangan, dan berminat untuk mengoptimumkan peningkatan.


Berkaitan

Lebih lanjut

Harta yang turun dari langitSapi yang baik.