پائتھون گرڈ ٹیسٹنگ

مصنف:چھوٹے فنڈز کے صارفین کے لیے خوشخبری, تخلیق: 2018-10-12 11:53:06, تازہ کاری: 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 # 仓位比例

مزید

چھوٹے فنڈز کے صارفین کے لیے خوشخبریبراہ کرم مجھے اندھا کردیں

چھوٹے فنڈز کے صارفین کے لیے خوشخبریغلطی کا جواب، Traceback (most recent call last): File "", line 1292, in Run File "", line 63 if 'init' in locals ((() and callable ((init): ^ SyntaxError: invalid syntax

چھوٹا سا خواب

چھوٹا سا خوابآپ دیکھ سکتے ہیں کہ آرڈر کی معلومات کی حیثیت 0 ہے ، ابھی بھی زیر التواء حالت میں ہے ، یعنی آرڈر میں کوئی تبادلہ نہیں ہوا ہے ، لہذا سکے کی تعداد میں کوئی تبدیلی نہیں آئی ہے۔ آپ آرڈر کی قیمت کو بہت زیادہ ایڈجسٹ کرتے ہیں۔ کوشش کریں ، تبادلہ ہوجائے گا ، سکے کی تعداد میں تبدیلی آئے گی۔

چھوٹے فنڈز کے صارفین کے لیے خوشخبریآپ نیچے دیئے گئے کوڈ اور لاگ ان کو دیکھ سکتے ہیں ، exchange.GetOrder ((buy_id) میں رقم 368.3512 ہے ، اسٹاکس کی معلومات میں بھی وہی قیمت ہے جو میں نے ری میٹر سیٹ کی ہے۔ Log (پہلی خریداری) ، exchange.GetOrder (خریداری کی شناخت) ، account.Stocks 2018-09-30 00:00:00 معلومات ابتدائی خریداری {'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 معلومات 1 20.0 2018-09-30 00:00:00 Huobi خریدنے 10.8592 368.351259761308

چھوٹا سا خوابآپ کو خریدنا چاہئے، بیلنس کا استعمال کرتے ہوئے خریدنا چاہئے اور اسٹاک کا استعمال کرتے ہوئے فروخت کرنا چاہئے.

چھوٹے فنڈز کے صارفین کے لیے خوشخبری 还请教一下,回测系统里面account.Stocks的值不会变吗?怎么下了买入单,Balance减小了,Stocks没变呢?

چھوٹا سا خواب### براہ مہربانی مجھے ڈیبگ ماسٹر کہتے ہیں `` عالمی جے for j in range ((0,len ((Grid_price_list)): if ((Grid_price_list[j-1] < btc_price_last < Grid_price_list[j]): # اس گرڈ کی حد کا تعین کرتا ہے جہاں قیمت واقع ہے خریدیں Log (("ابتدائی خریداری"، exchange.GetOrder ((buy_id) # اس جگہ پر ایک کم لکھا ہے ) اوہ، T_T. اس طرح کے کوڈنگ کے مسائل پر توجہ!!!!!! #order_stock_rate = 0.05 * j # پوزیشن کا تناسب ``