Стратегия сбалансированности платформы Python

Автор:Маленькие мечты, Создано: 2020-02-05 10:02:03, Обновлено: 2023-10-12 21:20:47

img

Стратегия сбалансированности платформы Python

Версия JavaScript

Политический адрес:https://www.fmz.com/strategy/345

В этом выпуске мы вместе проведем упражнения по переносу простой стратегии JavaScript. С помощью стратегии переноса мы станем более знакомыми с вызовами к интерфейсам для квантовых торговых платформ, и узнаем о незначительных различиях между различными языками при разработке стратегии платформы.

Стратегические указания

Ссылаясь на описание из JavaScript:

Это требует создания хранилища, например, 5000 долларов в счете, и 1 монета, и если стоимость монеты больше, чем баланс в счете, 5000, и разница превышает порог, например, монета сейчас стоит 6000 долларов, продать, чтобы показать, что монета выросла, обменять деньги обратно, если она обесценилась, например, 4000 долларов, купить, купить, если она упала, купить еще, если она упала, продать, как будто это нечто вроде нефтяного баланса, так что я называю это балансирующей стратегией.

Принципы стратегии очень просты, и код версии JavaScript не длинный, всего более 70 строк. Портирование в грамматику более простой стратегии языка Python, код более сокращенный, очень подходит для обучения новичков, на изобретательской квантовой платформе торговли есть много кода, разделяемого разработчиками, поддержка языка.JavaScript/C++/PythonТаким образом, знание одного языка может быть полезным не только для обучения, исследования и стратегии разработки, но также и для лучшего понимания различных API-интерфейсов платформы.

Код стратегии

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

Начало кода

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

Это конфигурация реверса, то есть конфигурация реверса (настройка) сохраняется в виде кода, которая автоматически конфигурируется в соответствии с этой настройкой при реверсе. Эта часть может быть удалена, удалена, при реверсе необходимо вручную настроить информацию о конфигурации реверса на странице реверса. Ссылки:https://www.fmz.com/bbs-topic/859

Параметры этой стратегии полностью совпадают с версиями JavaScript, код стратегии также переносится словом, структура программы не изменяется, и можно сравнить словом, посмотрев на различия в стратегии, написанной в разных языках.

Проверка

Конфигурация параметровimg

Статистикаimg

img

Политический адрес:https://www.fmz.com/strategy/183374

Стратегия предназначена только для учебы ссылки, повторного тестирования, заинтересованных в оптимизации обновления.


Связанные

Больше

Небо и земляХорошая корова.