'''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 "
Изобретатели количественного измерения - мечтыЯ думаю, что это нормально, не беспокойтесь.
Изобретатели количественного измерения - мечтыВы можете видеть, что статус заказа 0 и он находится в состоянии ожидания, то есть заказ не был оформлен, поэтому количество монет не изменилось.
Евангелие для малоимущих пользователейЕсли вы посмотрите на код и журналы ниже, информация в exchange.GetOrder ((buy_id) amount - 368.3512, информация в Stocks - 20, как и значение, которое я установил для обратного измерения. Log (("Первоначальные покупки", exchange.GetOrder ((buy_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
Изобретатели количественного измерения - мечтыВы должны купить, купить с помощью Balance, купить с помощью Stocks.
Евангелие для малоимущих пользователей 还请教一下,回测系统里面account.Stocks的值不会变吗?怎么下了买入单,Balance减小了,Stocks没变呢?
Изобретатели количественного измерения - мечты### Пожалуйста, зовите меня Дебютный Мастер~
``
Global 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) # Это место меньше пишет