리소스 로딩... 로딩...

파이썬 그리드 테스트

저자:소액 투자자 복음, 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 (구매_id), 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没变呢?

발명가들의 수량화 - 작은 꿈### DEBUG 마스터라고 불러주세요~ `` 글로벌 j 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 # 포지션 비율 ``