Я здесь.Биткоин делает пустые сверхуроки, делает много сверхуроков, много валют хеджированияВ то же время была выпущена регенерационная система; и первое сообщение подтверждало эффективность стратегии, основанной на 1-часовом K-линии регенерации. Однако фактическое публичное использование стратегии в режиме покоя 1s, довольно часто используемой стратегии, очевидно, не дает точных результатов с помощью часового K-линии регенерации.Минутовые ретроспективыВ результате многое улучшилось в результате регенерирования, но не было определено, какие параметры следует использовать в условиях секундового уровня, и не было четкого понимания всей стратегии. Основная причина заключается в значительном недостатке регенерирования на основе K-линии.
В первую очередь, что такое историческая K-линия? Данные K-линии содержат четыре цены, два времени начала и промежуточные транзакции. Большинство квантовых платформ и рамок основаны на K-линии, а FMZ также предлагает тиковую версию.
Во-первых, это вопрос времени, время максимальной и минимальной цены данных K-линии не указано, не нужно учитывать, но самое главное - это не время открытия и закрытия. Даже не очень холодные торговые сорта часто не торгуют в течение нескольких секунд, а когда мы ретроспектируем многосортные стратегии, часто по умолчанию их цена открытия и цена закрытия одновременно, что также является основой оценки цены ретроспектирования.
Представьте себе, что вы используете минутовую линию, чтобы просчитать прибыль двух видов, которые обычно стоят 10 долларов, и теперь обнаруживаете, что в 10:01, контракт A закрывается на 100 долларов, контракт B 112, прибыль 12 долларов, поэтому стратегия начинает хеджировать, и в какой-то момент разница возвращается, и стратегия получает прибыль от возвращения 2 долларов.
В реальном случае может произойти сделка в 100 долларов в 10: 00:45, после чего сделка не произойдет, в контракте B в 10: 00:58 произойдет сделка в 112 долларов, в этот момент в 10: 01, обе цены не существуют, сколько будет цена сделки в этот момент, сколько дифференциации хеджирование может съесть? никто не знает.
Второй вопрос - съемки, реальные съемки - это ценовые и временные. Если покупатель превышает цену продажи, он обычно совершает прямую сделку по цене продажи, а наоборот, входит в книгу заказов.
В конце концов, влияние стратегии на рынок заключения сделки само по себе, если это небольшое количество денег, не имеет большого влияния. Но если доля сделки большая, это вызовет удар на рынке. Не только немедленное заключение сделки, цена скольжения будет большой, если обратное заключение сделки, фактически захватывает другие сделки, которые должны были быть куплены трейдерами, эффект бабочки будет иметь влияние на рынок.
FMZ предоставляет ретрансляцию на дискете, которая позволяет получить реальную историю глубиной 20 кадров, реальные секунды, тики, транзакции по перцам и т. д.Функция воспроизведения диска‒ Такой рекурсивный анализ очень большой и медленный, обычно всего два дня; ‒ для относительно высокой частоты или строгих стратегий определения времени рекурсивный анализ на дискете необходим; ‒ FMZ собирает небольшие пары сделок и время, но также более 70 миллиардов исторических данных.
К-линий слишком мало информации, и глубина может быть ложной глубиной, но есть данные о реальной готовности рынка к сделкам, которые отражают самую реальную историю сделок. В данной статье будет предложена система высокочастотного обратного измерения, основанная на потоке заказов, которая значительно уменьшит объем данных, которые будут проверяться на диске, и определенную степень влияния аналоговых обратных сделок на рынок.
Я загрузила последние сделки на 5 тенге XTZ на постоянный контракт.https://www.fmz.com/upload/asset/1ff487b007e1a848ead.csvПо данным, опубликованным в журнале The New York Times в апреле 2014 года, данные о 213 тысячах случаев, которые не считаются популярными, составлены из следующих материалов:
[['XTZ', 1590981301905, 2.905, 0.4, 'False\n'],
['XTZ', 1590981303044, 2.903, 3.6, 'True\n'],
['XTZ', 1590981303309, 2.903, 3.7, 'True\n'],
['XTZ', 1590981303738, 2.903, 238.1, 'True\n'],
['XTZ', 1590981303892, 2.904, 0.1, 'False\n'],
['XTZ', 1590981305250, 2.904, 0.1, 'False\n'],
['XTZ', 1590981305643, 2.903, 197.3, 'True\n'],
Данные представляют собой двумерный список, упорядоченный в порядке времени совершения сделки. Конкретные значения: название сорта, цена сделки, время совершения сделки, количество сделок, является ли продажа инициативной сделкой.
Во-первых, в зависимости от направления сделки, можно довольно точно предположить, что на рынке есть покупка и продажа, если это активный проданный заказ, то цена покупки на данный момент является ценой сделки, если активный проданный заказ, то цена продажи является ценой сделки, новые сделки обновляют новые диски, не обновленные сохраняют результаты прошлого раза.
В зависимости от потока заказов, может быть сфотографировано так: в случае одной покупки, цена - price, количество заказов - amount, в этом случае диска купить и продать по отдельности - bid, ask. Если цена ниже Ask, чем bid, то сначала решается как maker, и можно приоритетно сфотографировать сделку, после чего в течение времени существования заказа все сделки, стоимость которых ниже или равна price, должны быть сфотографированы с этим заказом.
Одной из проблем такой съемки является то, что, если заказ является "такером", фактически можно совершить его немедленно, а не ждать, пока с ним будут сделаны новые заказы. Во-первых, мы не учитываем количество размещенных заказов, даже если имеются данные, и непосредственно судить о том, что сделка изменила глубину и повлияла на рынок. А съемка на основе нового заказа, равносильна замене реальных заказов в истории на ваши заказы, в любом случае не будет превышать ограничения размеров сделок на самом рынке, и в конечном итоге прибыль не может превышать максимальную прибыль, которая может быть получена.
Есть еще некоторые мелкие детали, если цена покупки заказа равна цене покупки, фактически все еще есть определенная вероятность того, что цена покупки будет снята, необходимо учитывать приоритет выставления и вероятность совершения сделки, и т. д., что более сложно, здесь не учитывается.
Объекты биржи могут ссылаться на первоначальное представление, в основном неизменное, только добавленное различие между платежными платежами производителя и получателя, а также оптимизированная скорость повторного тестирования. Ниже приведены основные коды съемки.
symbol = 'XTZ'
loop_time = 0
intervel = 1000 #策略的休眠时间为1000ms
init_price = data[0][2] #初始价格
e = Exchange([symbol],initial_balance=1000000,maker_fee=maker_fee,taker_fee=taker_fee,log='') #初始化交易所
depth = {'ask':data[0][2], 'bid':data[0][2]} #深度
order = {'buy':{'price':0,'amount':0,'maker':False,'priority':False,'id':0},
'sell':{'price':0,'amount':0,'maker':False,'priority':False,'id':0}} #订单
for tick in data:
price = int(tick[2]/tick_sizes[symbol])*tick_sizes[symbol] #成交价格
trade_amount = tick[3] #成交数量
time_stamp = tick[1] #成交时间戳
if tick[4] == 'False\n':
depth['ask'] = price
else:
depth['bid'] = price
if depth['bid'] < order['buy']['price']:
order['buy']['priority'] = True
if depth['ask'] > order['sell']['price']:
order['sell']['priority'] = True
if price > order['buy']['price']:
order['buy']['maker'] = True
if price < order['sell']['price']:
order['sell']['maker'] = True
#订单网络延时也可以作为撮合条件之一,这里没考虑
cond1 = order['buy']['priority'] and order['buy']['price'] >= price and order['buy']['amount'] > 0
cond2 = not order['buy']['priority'] and order['buy']['price'] > price and order['buy']['amount'] > 0
cond3 = order['sell']['priority'] and order['sell']['price'] <= price and order['sell']['amount'] > 0
cond4 = not order['sell']['priority'] and order['sell']['price'] < price and order['sell']['amount'] > 0
if cond1 or cond2:
buy_price = order['buy']['price'] if order['buy']['maker'] else price
e.Buy(symbol, buy_price, min(order['buy']['amount'],trade_amount), order['buy']['id'], order['buy']['maker'])
order['buy']['amount'] -= min(order['buy']['amount'],trade_amount)
e.Update(time_stamp,[symbol],{symbol:price})
if cond3 or cond4:
sell_price = order['sell']['price'] if order['sell']['maker'] else price
e.Sell(symbol, sell_price, min(order['sell']['amount'],trade_amount), order['sell']['id'], order['sell']['maker'])
order['sell']['amount'] -= min(order['sell']['amount'],trade_amount)
e.Update(time_stamp,[symbol],{symbol:price})
if time_stamp - loop_time > intervel:
order = get_order(e,depth,order) #交易逻辑,这里未给出
loop_time += int((time_stamp - loop_time)/intervel)*intervel
Некоторые детали, на которые стоит обратить внимание:
В конце концов, на стадии фактического тестирования, мы проанализируем одну из самых классических стратегий сетки, чтобы увидеть, достиг ли он ожидаемого эффекта. Стратегический принцип заключается в том, что при каждом росте цены на 1%, мы держим пустой лист с определенной стоимостью (в отличие от наличия нескольких заказов), рассчитываем предварительное вывешивание купюры.Grid('XTZ',100,0.3,1000,maker_fee=-0.00002,taker_fee=0.0003)
В функциях параметры: пары сделок, цена отклонения 1% от стоимости удержания, плотность подключения 0.3%, интервал покоя ms, плата за подключение, плата за еду.
Последние 5 дней XTZ находится в период потрясений, что хорошо подходит для сетки.
В первую очередь мы отсчитываем влияние разного размера хранения на доходы, и традиционные механизмы отсчета, безусловно, увеличивают доходы с увеличением хранения.
e1 = Grid('XTZ',100,0.3,1000,maker_fee=-0.00002,taker_fee=0.0003)
print(e1.account['USDT'])
e2 = Grid('XTZ',1000,0.3,1000,maker_fee=-0.00002,taker_fee=0.0003)
print(e2.account['USDT'])
e3 = Grid('XTZ',10000,0.3,1000,maker_fee=-0.00002,taker_fee=0.0003)
print(e3.account['USDT'])
e4 = Grid('XTZ',100000,0.3,1000,maker_fee=-0.00002,taker_fee=0.0003)
print(e4.account['USDT'])
В общей сложности было проведено четыре повторных измерения, с хранениями в размере 100, 1000, 10000, 100000 и с повторными измерениями в общем времени использования 1,3 с. Результаты были следующими:
{'realised_profit': 28.470993031132966, 'margin': 0.7982662957624465, 'unrealised_profit': 0.0104554474048441, 'total': 10000028.481448, 'leverage': 0.0, 'fee': -0.3430967859046398, 'maker_fee': -0.36980249726699727, 'taker_fee': 0.026705711362357405}
{'realised_profit': 275.63148945320177, 'margin': 14.346335829979132, 'unrealised_profit': 4.4382117331794045e-14, 'total': 10000275.631489, 'leverage': 0.0, 'fee': -3.3102045933457784, 'maker_fee': -3.5800688964477048, 'taker_fee': 0.2698643031019274}
{'realised_profit': 2693.8701498889504, 'margin': 67.70120400534114, 'unrealised_profit': 0.5735269329348516, 'total': 10002694.443677, 'leverage': 0.0001, 'fee': -33.984021415250744, 'maker_fee': -34.879233866850974, 'taker_fee': 0.8952124516001403}
{'realised_profit': 22610.231198585603, 'margin': 983.3853688758861, 'unrealised_profit': -20.529965947304365, 'total': 10022589.701233, 'leverage': 0.002, 'fee': -200.87094000385412, 'maker_fee': -261.5849078470078, 'taker_fee': 60.71396784315319}
Можно увидеть, что в конечном итоге реализована прибыль в размере 28,4%, 27,5%, 26,9% и 22,6% от стоимости хранения соответственно. Это также соответствует фактической ситуации, чем больше стоимость хранения, чем больше стоимость подписки, тем больше вероятность возникновения частичной сделки, и в конечном итоге реализованная прибыль относительно объема подписки также меньше.
Мы также можем регенерировать влияние различных параметров на результаты регенерирования, такие как плотность подключения, время покоя, расходы на процедуры и т. д. Например, время покоя может быть изменено на 100 мс, а время покоя - на 1000 мс, чтобы увидеть результаты. Результаты регенерирования следующие:
{'realised_profit': 29.079440803790423, 'margin': 0.7982662957624695, 'unrealised_profit': 0.0104554474048441, 'total': 10000029.089896, 'leverage': 0.0, 'fee': -0.3703702128662524, 'maker_fee': -0.37938946377435134, 'taker_fee': 0.009019250908098965}
Увеличение доходов, которое происходит из-за того, что стратегия вешает только одну группу заказов, и некоторые заказы не могут быть съедены из-за колебаний цен, которые не могут быть изменены, уменьшение времени покоя улучшает эту проблему. Это также показывает важность стратегии сетки.
В статье предлагается новая система обратной оценки, основанная на потоке заказов, которая может частично имитировать состояние записей, заказов, сделок, задержек и т. д. Частично отражает влияние стратегического капитала на доходы, имеет важное значение для высокочастотных стратегий и стратегий хеджирования. Высокая точность обратной оценки указывает направление для оптимизации стратегических параметров.
Возможно.Стратегический принцип: 1% на каждое повышение цены. Сколько нужно времени, чтобы подняться на 1%?
Возможно.Стратегический принцип: 1% на каждое повышение цены Я не знаю. Сколько нужно времени, чтобы подняться на 1%?
проповедьВсе индексы находятся в GB.
ДзаидасиНасколько большое количество данных, и сможет ли сайт их принять?
Трава/upload/asset/1ff487b007e1a848ead.csv
ТраваЭто хорошая версия, потому что глубокие версии слишком большие.
ТраваЭто намного меньше, чем в реальном диапазоне, если смотреть на то, насколько занята сделка, 1M-20M в день.