پیتھون شیٹ پلیٹ فارم کو متوازن کرنے کی حکمت عملی (تعلیم)

مصنف:چھوٹا سا خواب، تاریخ: 2020-02-03 22:43:38
ٹیگز:

جاوا اسکرپٹ پلیٹ فارم سے متوازن پالیسی کا حوالہ دیتے ہوئے

اس کے لیے اسٹوریج بنانا پڑتا ہے، مثال کے طور پر اگر آپ کے اکاؤنٹ میں 5000 روپے ہیں، اور ایک سکے کے ساتھ، اگر سکے کی قدر آپ کے اکاؤنٹ میں 5000 روپے سے زیادہ ہے اور اس کی قیمت آپ کی قیمت سے زیادہ ہے، مثال کے طور پر اگر آپ کے اکاؤنٹ میں 6000 روپے ہیں، تو آپ اسے بیچ دیں گے، یعنی 6000-5000/6000/2 روپے، یعنی اگر آپ کے اکاؤنٹ میں 5000-4000 روپے ہیں، تو آپ اسے واپس کریں گے، اگر آپ کے اکاؤنٹ میں 5000-4000 روپے ہیں، تو آپ اسے خریدیں گے، اور اگر آپ کے اکاؤنٹ میں 5000 روپے ہیں، تو آپ اسے واپس خریدیں گے، اور اگر آپ کے اکاؤنٹ میں 5000 روپے ہیں، تو آپ اسے دوبارہ بیچ دیں گے، جیسے کہ آپ کے اکاؤنٹ میں 6000 روپے ہیں، تو آپ اسے بیچ دیں گے، اور اگر آپ کے اکاؤنٹ میں 5000-4000 روپے ہیں، تو آپ اسے بیچ دیں گے، اور اگر آپ کے اکاؤنٹ میں 5000-4000 روپے ہیں، تو آپ اسے بیچ دیں گے، اور اگر آپ کے اکاؤنٹ میں 5000-4000 روپے ہیں، تو آپ اسے خریدیں گے، اور اگر آپ کے اکاؤنٹ میں 5000 روپے ہیں، تو

مضمون کا پتہ:https://www.fmz.com/bbs-topic/4986


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

مزید