日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

python 网格线_Python版简单网格策略(教学)

發(fā)布時(shí)間:2023/12/2 python 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python 网格线_Python版简单网格策略(教学) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Python版簡(jiǎn)單網(wǎng)格策略(教學(xué))

Python版簡(jiǎn)單網(wǎng)格策略(教學(xué))

Author: 小小夢(mèng), Date: 2020-01-04 11:12:15

Tags:

'''backtest

start: 2019-07-01 00:00:00

end: 2020-01-03 00:00:00

period: 1m

exchanges: [{"eid":"OKEX","currency":"BTC_USDT"}]

'''

import json

# 參數(shù)

beginPrice = 5000

endPrice = 8000

distance = 20

pointProfit = 50

amount = 0.01

minBalance = 300

# 全局變量

arrNet = []

arrMsg = []

acc = None

def findOrder (orderId, NumOfTimes, ordersList = []) :

for j in range(NumOfTimes) :

orders = None

if len(ordersList) == 0:

orders = _C(exchange.GetOrders)

else :

orders = ordersList

for i in range(len(orders)):

if orderId == orders[i]["Id"]:

return True

Sleep(1000)

return False

def cancelOrder (price, orderType) :

orders = _C(exchange.GetOrders)

for i in range(len(orders)) :

if price == orders[i]["Price"] and orderType == orders[i]["Type"]:

exchange.CancelOrder(orders[i]["Id"])

Sleep(500)

def checkOpenOrders (orders, ticker) :

global arrNet, arrMsg

for i in range(len(arrNet)) :

if not findOrder(arrNet[i]["id"], 1, orders) and arrNet[i]["state"] == "pending" :

orderId = exchange.Sell(arrNet[i]["coverPrice"], arrNet[i]["amount"], arrNet[i], ticker)

if orderId :

arrNet[i]["state"] = "cover"

arrNet[i]["id"] = orderId

else :

# 撤銷(xiāo)

cancelOrder(arrNet[i]["coverPrice"], ORDER_TYPE_SELL)

arrMsg.append("掛單失敗!" + json.dumps(arrNet[i]) + ", time:" + _D())

def checkCoverOrders (orders, ticker) :

global arrNet, arrMsg

for i in range(len(arrNet)) :

if not findOrder(arrNet[i]["id"], 1, orders) and arrNet[i]["state"] == "cover" :

arrNet[i]["id"] = -1

arrNet[i]["state"] = "idle"

Log(arrNet[i], "節(jié)點(diǎn)平倉(cāng),重置為空閑狀態(tài)。", "#FF0000")

def onTick () :

global arrNet, arrMsg, acc

ticker = _C(exchange.GetTicker)

for i in range(len(arrNet)):

if i != len(arrNet) - 1 and arrNet[i]["state"] == "idle" and ticker.Sell > arrNet[i]["price"] and ticker.Sell < arrNet[i + 1]["price"]:

acc = _C(exchange.GetAccount)

if acc.Balance < minBalance :

arrMsg.append("資金不足" + json.dumps(acc) + "!" + ", time:" + _D())

break

orderId = exchange.Buy(arrNet[i]["price"], arrNet[i]["amount"], arrNet[i], ticker)

if orderId :

arrNet[i]["state"] = "pending"

arrNet[i]["id"] = orderId

else :

# 撤單

cancelOrder(arrNet[i]["price"], ORDER_TYPE_BUY)

arrMsg.append("掛單失敗!" + json.dumps(arrNet[i]) + ", time:" + _D())

Sleep(1000)

orders = _C(exchange.GetOrders)

checkOpenOrders(orders, ticker)

Sleep(1000)

orders = _C(exchange.GetOrders)

checkCoverOrders(orders, ticker)

tbl = {

"type" : "table",

"title" : "網(wǎng)格狀態(tài)",

"cols" : ["節(jié)點(diǎn)索引", "詳細(xì)信息"],

"rows" : [],

}

for i in range(len(arrNet)) :

tbl["rows"].append([i, json.dumps(arrNet[i])])

errTbl = {

"type" : "table",

"title" : "記錄",

"cols" : ["節(jié)點(diǎn)索引", "詳細(xì)信息"],

"rows" : [],

}

orderTbl = {

"type" : "table",

"title" : "orders",

"cols" : ["節(jié)點(diǎn)索引", "詳細(xì)信息"],

"rows" : [],

}

while len(arrMsg) > 20 :

arrMsg.pop(0)

for i in range(len(arrMsg)) :

errTbl["rows"].append([i, json.dumps(arrMsg[i])])

for i in range(len(orders)) :

orderTbl["rows"].append([i, json.dumps(orders[i])])

LogStatus(_D(), "\n", acc, "\n", "arrMsg length:", len(arrMsg), "\n", "`" + json.dumps([tbl, errTbl, orderTbl]) + "`")

def main ():

global arrNet

for i in range(int((endPrice - beginPrice) / distance)):

arrNet.append({

"price" : beginPrice + i * distance,

"amount" : amount,

"state" : "idle", # pending / cover / idle

"coverPrice" : beginPrice + i * distance + pointProfit,

"id" : -1,

})

while True:

onTick()

Sleep(500)

更多內(nèi)容

18392409863 您好,這個(gè)策略可以寫(xiě)下每一步詳細(xì)的注釋嘛,因?yàn)槭莿偨佑|fmz,有些還是不咋看的懂,很懵逼。。。謝謝您了

FMZ_JH 最上面的網(wǎng)址就是策略講解

總結(jié)

以上是生活随笔為你收集整理的python 网格线_Python版简单网格策略(教学)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。