Kiểm tra lưới Python

Tác giả:Tin mừng cho người dùng tài chính nhỏ, Tạo: 2018-10-12 11:53:06, Cập nhật: 2018-10-12 11:59:21

'''backtest
start: 2018-09-30 00:00:00
end: 2018-10-11 19:00:00
period: 15m
exchanges: [{"eid":"OKCoin_EN","currency":"ETC_USD"}]
'''
	
def main():
	first()
	while True:
		get_information = _C(exchange.GetTicker)
		#get_order = exchange.GetOrder() 
		btc_price_last = get_information.Last
		#account = exchange.GetAccount()
		
		for j in range(0,len(Grid_price_list)):
			if(Grid_price_list[j-1] < btc_price_last < Grid_price_list[j]):   # 判断价格所在的网格区间
				if(btc_price_last < exchange.GetOrder(buy_id).AvgPrice and btc_price_last <= Grid_price_list[j-1]): # !!!需要进一步完善针对卖单情况的逻辑!!!,现价小于买入价,且现价小于等于网格下值,继续买入。
					buy()
				else:
					main()
				if(btc_price_last > exchange.GetOrder(buy_id).AvgPrice and btc_price_last >= Grid_price_list[j]): # !!!需要进一步完善针对卖单情况的逻辑!!!,现价大于买入价,且现价大于等于网格上值,继续卖出。
					sell()
				else:
					main()
			
		order_stock_rate = 0.05 * j # 仓位比例
		
	Sleep(300 * 1000)
	
def buy():
	buy_price = Grid_price_list[j-1]
	buy_id = exchange.Buy(buy_price, 500 * (j - 1) / buy_price)

def sell():
	sell_price = Grid_price_list[j]
	sell_id = exchange.Sell(sell_price, 500 * j / sell_price)


def first():

	get_information = _C(exchange.GetTicker)
	#get_order = exchange.GetOrder() 
	btc_price_last = get_information.Last
	global account
	account = _C(exchange.GetAccount)

	global Grid_price_list
	Grid_price_list = [] # 给最低网格价格赋值,算出每个价格
	btc_price_bottom = 7
	for i in range(1,20):
		btc_price_bottom = btc_price_bottom * 1.05
		Grid_price_list.append(btc_price_bottom)
	Log(Grid_price_list)

	global j
	for j in range(0,len(Grid_price_list)):
		if(Grid_price_list[j-1] < btc_price_last < Grid_price_list[j]):   # 判断价格所在的网格区间
			buy()
			Log("初始买入",exchange.GetOrder(buy_id)
		#order_stock_rate = 0.05 * j # 仓位比例

Thêm nữa

Tin mừng cho người dùng tài chính nhỏXin hãy làm cho tôi mù.

Tin mừng cho người dùng tài chính nhỏTrả lời báo cáo lỗi, Traceback (most recent call last): File "", line 1292, in Run File "", line 63 if 'init' in locals ((() and callable ((init): ^ SyntaxError: invalid syntax

Giấc mơ nhỏ\>_<, Nhầm lẫn của bạn học sinh là bình thường, đừng bận tâm.

Giấc mơ nhỏBạn có thể thấy thông tin đơn đặt hàng Status là 0, vẫn còn trong trạng thái đặt hàng chờ, nghĩa là đơn đặt hàng không được giao dịch, do đó số tiền không thay đổi. Bạn điều chỉnh giá đặt hàng một chút.

Tin mừng cho người dùng tài chính nhỏBạn nhìn vào mã và nhật ký dưới đây, thông tin trong exchange.GetOrder ((buy_id) amount là 368.3512, thông tin của Stocks là 20 như giá trị tôi đặt lại. Log (("mua ban đầu", exchange.GetOrder ((buy_id), account.Stocks) 2018-09-30 00:00:00 Thông tin mua ban đầu {'Status': 0L, 'Price': 10.8592, 'AvgPrice: 0.0, 'Amount: 368.3512, 'DealAmount: 0.0, 'ContractType': 'ETC_USDT_Huobi', 'Type': 0L, 'Id: 1L} 20.0 2018-09-30 00:00:00 Thông tin 1 20.0 2018-09-30 00:00:00 Huobi mua 10.8592 368.351259761308

Giấc mơ nhỏBạn nên mua bằng Balance và bán bằng Stocks.

Tin mừng cho người dùng tài chính nhỏ 还请教一下,回测系统里面account.Stocks的值不会变吗?怎么下了买入单,Balance减小了,Stocks没变呢?

Giấc mơ nhỏHãy gọi tôi là DEBUG Master. `` Global j for j in range ((0, len ((Grid_price_list)): if ((Grid_price_list[j-1] < btc_price_last < Grid_price_list[j]): # Xác định phạm vi lưới mà giá nằm buy ((() Log (("mua ban đầu", exchange.GetOrder ((buy_id) # nơi này ít viết một ) , T_T. Những vấn đề mã hóa như vậy phải được chú ý!!!!!! #order_stock_rate = 0.05 * j # tỷ lệ vị trí ``