پائیتھون کی پیروی کرنے کی حکمت عملی (تعلیم) @ بائننUSDT مستقل معاہدہ

مصنف:کوانٹیٹیشن، تاریخ: 2021-05-30 14:37:24
ٹیگز:پائیتھونبائننس

اس کا اصل کوڈ دستیاب ہے:https://www.fmz.com/bbs-topic/4908

اس کے بعد سے ، ہم نے اس کے بارے میں بہت کچھ سیکھا ہے۔

ہیمینڈے نے کہا کہ 'ہمیں اس کے بارے میں کچھ نہیں معلوم'۔

ایک اچھا تجارتی پلیٹ فارم آپ کی حکمت عملی کو 90،000 ڈالر تک بڑھا سکتا ہے۔ لنک کے ساتھ رجسٹر ہوں اور دو ماہ کے VIP5 ٹرانزیکشن ریٹ حاصل کریں: (آن لائن: 0٪ شیڈولنگ ، 0.07٪ کھانے کی شیڈولنگ ؛ معاہدہ: 0٪ شیڈولنگ ، 0.04٪ کھانے کی شیڈولنگ)https://www.kucoin.cc/ucenter/signup?rcode=1wxJ2fQ&lang=zh_CN&utmsource=VIP_TF


'''backtest
start: 2021-05-01 00:00:00
end: 2021-05-29 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
'''

# 原版代码是现货版:
# https://www.fmz.com/bbs-topic/4908

# 现在改为合约版。

# ———— 韬奋量化(微信:himandy)


# 好的交易平台可以让你的策略扶摇直上九万里,通过链接注册可获得两个月VIP5的手续费率优惠:
# (现货:挂单0%,吃单0.07%。合约:挂单0%,吃单0.04%)
# https://www.kucoin.cc/ucenter/signup?rcode=1wxJ2fQ&lang=zh_CN&utmsource=VIP_TF

import time

basePrice = -1
ratio = 0.05
acc = _C(exchange.GetAccount)
pos = _C(exchange.GetPosition)
lastCancelAll = 0
minStocks = 0.01

def CancelAll():
    while True : 
        orders = _C(exchange.GetOrders)
        for i in range(len(orders)) :
            exchange.CancelOrder(orders[i]["Id"], orders[i])
        if len(orders) == 0 :
            break
        Sleep(1000)

def main():
    global basePrice, acc, lastCancelAll, leverage, StopGain, StopLoss
    #Log(StopLoss * -1)
    exchange.SetContractType("swap")
    exchange.SetMarginLevel(leverage)
    exchange.SetPrecision(2, 3)
    pos = _C(exchange.GetPosition)
    while True:
        ticker = _C(exchange.GetTicker)
        if basePrice == -1 :
            basePrice = ticker.Last
        if ticker.Last - basePrice > 0 and (ticker.Last - basePrice) / basePrice > ratio :
            acc = _C(exchange.GetAccount)            
            if acc.Balance * ratio * leverage / ticker.Last > minStocks and len(pos) == 0:
                exchange.SetDirection("buy")
                exchange.Buy(_N(ticker.Last, 2), _N(acc.Balance * ratio / ticker.Last, 3))
                basePrice = ticker.Last
                ts = time.time()
                if ts - lastCancelAll > 60 * 5 :
                    CancelAll()
                    lastCancelAll = ts
                pos = _C(exchange.GetPosition)
        if ticker.Last - basePrice < 0 and (basePrice - ticker.Last) / basePrice > ratio : 
            acc = _C(exchange.GetAccount)
            pos = _C(exchange.GetPosition)
            if acc.Balance * ratio * leverage / ticker.Last > minStocks and len(pos) == 0:
                exchange.SetDirection("sell")
                exchange.Sell(_N(ticker.Last, 2), _N(acc.Balance * ratio / ticker.Last, 3))
                basePrice = ticker.Last
                ts = time.time()
                if ts - lastCancelAll > 60 * 5 :
                    CancelAll()
                    lastCancelAll = ts
                pos = _C(exchange.GetPosition)
        if len(pos) == 1 :
        	#Log(pos)
            if pos[0]["Profit"] / pos[0]["Margin"] > StopGain :
                if pos[0]["Type"] == 0 :
                    exchange.SetDirection("closebuy")
                    exchange.Sell(-1, pos[0]["Amount"])
                    pos = _C(exchange.GetPosition)
                elif pos[0]["Type"] == 1 :
                    exchange.SetDirection("closesell")
                    exchange.Buy(-1, pos[0]["Amount"])
                    pos = _C(exchange.GetPosition)
            elif pos[0]["Profit"] / pos[0]["Margin"] < StopLoss * -1 :
                if pos[0]["Type"] == 0 :
                    exchange.SetDirection("closebuy")
                    exchange.Sell(-1, pos[0]["Amount"])
                    pos = _C(exchange.GetPosition)
                elif pos[0]["Type"] == 1 :
                    exchange.SetDirection("closesell")
                    exchange.Buy(-1, pos[0]["Amount"])
                    pos = _C(exchange.GetPosition)

        LogStatus(_D(), "\n", "行情信息:", ticker, "\n", "账户信息:", acc)
        if exchange.GetName() == "Futures_Binance" and IsVirtual() == false :
            LogProfit(_N(float(acc["Info"]["totalWalletBalance"], 4)))
        Sleep(500)

متعلقہ

مزید

77924998کیا آپ کثیر کرنسی لکھ سکتے ہیں؟

کوانٹیٹیشنمشکل نہیں