Недостатки системы высокочастотного повторения, основанной на транзакциях по буквам, и K-линейного повторения

Автор:Трава, Создано: 2020-06-04 16:48:02, Обновлено: 2023-10-08 19:46:18

img

Я здесь.Биткоин делает пустые сверхуроки, делает много сверхуроков, много валют хеджированияВ то же время была выпущена регенерационная система; и первое сообщение подтверждало эффективность стратегии, основанной на 1-часовом K-линии регенерации. Однако фактическое публичное использование стратегии в режиме покоя 1s, довольно часто используемой стратегии, очевидно, не дает точных результатов с помощью часового K-линии регенерации.Минутовые ретроспективыВ результате многое улучшилось в результате регенерирования, но не было определено, какие параметры следует использовать в условиях секундового уровня, и не было четкого понимания всей стратегии. Основная причина заключается в значительном недостатке регенерирования на основе 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 миллиардов исторических данных.

img

Механизмы обратной оценки, основанные на потоке заказов по каждому купленному пункту

К-линий слишком мало информации, и глубина может быть ложной глубиной, но есть данные о реальной готовности рынка к сделкам, которые отражают самую реальную историю сделок. В данной статье будет предложена система высокочастотного обратного измерения, основанная на потоке заказов, которая значительно уменьшит объем данных, которые будут проверяться на диске, и определенную степень влияния аналоговых обратных сделок на рынок.

Я загрузила последние сделки на 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.当有新成交时,要先去撮合订单,再去根据最新的价格去下单。
  • 2.每个订单都有两个属性:maker——是否为maker,priority——撮合优先级,以买单为例,当买价小于卖一,标记为maker,当买价大于买一是标记为优先撮合,priority决定了价格等于买价是是否撮合,maker决定了手续费。
  • 3.订单的maker和priority是更新的,如下了一笔很大的超过盘口的买单,当出现一个价格大于买价时,此时剩余的成交量将是maker。
  • 4.策略的intervel是必须的,它可以代表行情的延时。

Проверка стратегии сетки

В конце концов, на стадии фактического тестирования, мы проанализируем одну из самых классических стратегий сетки, чтобы увидеть, достиг ли он ожидаемого эффекта. Стратегический принцип заключается в том, что при каждом росте цены на 1%, мы держим пустой лист с определенной стоимостью (в отличие от наличия нескольких заказов), рассчитываем предварительное вывешивание купюры.Grid('XTZ',100,0.3,1000,maker_fee=-0.00002,taker_fee=0.0003)В функциях параметры: пары сделок, цена отклонения 1% от стоимости удержания, плотность подключения 0.3%, интервал покоя ms, плата за подключение, плата за еду.

Последние 5 дней XTZ находится в период потрясений, что хорошо подходит для сетки.img

В первую очередь мы отсчитываем влияние разного размера хранения на доходы, и традиционные механизмы отсчета, безусловно, увеличивают доходы с увеличением хранения.

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% от стоимости хранения соответственно. Это также соответствует фактической ситуации, чем больше стоимость хранения, чем больше стоимость подписки, тем больше вероятность возникновения частичной сделки, и в конечном итоге реализованная прибыль относительно объема подписки также меньше.img

Мы также можем регенерировать влияние различных параметров на результаты регенерирования, такие как плотность подключения, время покоя, расходы на процедуры и т. д. Например, время покоя может быть изменено на 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 в день.