Estou aqui.O Bitcoin é uma estratégia de hedge de moeda mais alta ou mais baixa.No entanto, o tempo de repouso da estratégia pública atual é de 1s, uma estratégia bastante alta, e não é possível obter resultados precisos com o repouso da linha K.Retorno da linha do minutoComo resultado, o retorno do retorno foi muito melhorado, mas ainda não foi possível determinar quais parâmetros devem ser usados em segundos, e a compreensão da estratégia como um todo não é muito clara. A principal razão é a importante desvantagem do retorno baseado na linha K.
Primeiro, o que é a linha K histórica? Um dado da linha K contém quatro preços, dois horários iniciais e transações intercalares. A maioria das plataformas e estruturas de quantificação são baseadas no retorno da linha K, a plataforma de quantificação FMZ também oferece retorno de nível de tique. A velocidade do retorno da linha K é rápida e, na maioria dos casos, sem problemas, mas também há falhas muito graves, especialmente as estratégias de retorno de múltiplas variedades e as estratégias de alta frequência, que dificilmente podem chegar às conclusões corretas.
Primeiro é a questão do tempo, o tempo de preços mais altos e mais baixos dos dados da linha K não é dado, não é necessário considerar, mas o mais importante é que o início do preço de abertura e fechamento não é o início do tempo de abertura e fechamento. Mesmo as variedades de negociação menos frias, muitas vezes não são negociadas por dez segundos, e quando analisamos as estratégias de várias variedades, muitas vezes assumimos que o preço de abertura e o preço de fechamento são simultâneos, o que também é a base para o cálculo do preço de fechamento.
Imaginem que os ganhos de duas variedades, que costumam ter um diferencial de 10 dólares, são retrospectivamente analisados em linha de minuto e agora são descobertos às 10:01, quando o contrato A fecha com um preço de 100 dólares, o contrato B com 112 dólares e o diferencial é de 12 dólares, então a estratégia começa a ser hedgeada e, em algum momento, o diferencial retorna e a estratégia ganha 2 dólares de retorno.
A situação real pode ser que, às 10h45min, o contrato A produza uma transação de US$100, depois não há transação, o contrato B, às 10h58min, ocorre uma transação de US$112, e, neste momento, às 10h01min, ambos os preços não existem. Qual é o preço da transação e quanto diferencial o hedge pode comer?
Em seguida, o problema da captura, a captura real é prioridade de preço, prioridade de tempo. Se o comprador exceder um preço de venda, geralmente transaciona diretamente com um preço de venda, em vez disso, entra no livro de pedidos de espera.
Finalmente, o impacto da estratégia em si na transação no mercado, se for um pequeno retorno de capital, não tem grande impacto. Mas se a proporção de transações for grande, causará um impacto no mercado. Não só o deslizamento de preço no momento da transação imediata será grande, mas se o retorno da transação for feito, efetivamente se apropriar das transações de outros comerciantes que deveriam ser comprados, o efeito borboleta terá impacto no mercado.
O FMZ fornece um retrospecto em disco real, capaz de obter dados históricos reais de profundidade de 20 arquivos, ticks em segundo real, transações por letra e muito mais.Função de reprodução de disco realO FMZ recolhe pares de transações de curta duração, mas também mais de 70 mil milhões de dados históricos. O mecanismo de captura atual é de que se uma compra for maior do que uma venda, não importa se a compra for imediatamente completa, e menor do que uma venda entrar em fila. Este mecanismo resolve os dois primeiros problemas de captura de linha K, mas não resolve o último problema. E, como a medida de dados é muito grande, a velocidade e o tempo de captura são limitados.
Há pouca informação sobre a linha K, e a profundidade pode ser falsa, mas há um tipo de dados que reflete a verdadeira vontade de negociação do mercado, o que reflete a história mais real de transações. Este artigo propõe um sistema de retomada de alta freqüência baseado no fluxo de pedidos, que reduz significativamente o volume de retomada em disco real e, até certo ponto, o impacto do retomado analógico no mercado.
Eu descarreguei o recente contrato de permanência do XTZ por 5 dias (http://www.xtz.com/)https://www.fmz.com/upload/asset/1ff487b007e1a848ead.csvA partir de agora, o número de casos confirmados de doenças cardiovasculares aumentou para cerca de 2 milhões, o que significa que o número de casos confirmados de doenças cardiovasculares aumentou para cerca de 2 milhões.
[['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'],
Os dados são uma lista bidimensional, ordenada por ordem de tempo de transação. Os significados específicos são: nome da variedade, preço da transação, horário da transação, número de transações, se o pedido foi realizado ativamente.
Em primeiro lugar, de acordo com a direção da transação, pode-se inferir com bastante precisão o preço de compra e venda no mercado, se for uma ordem de venda ativa, o preço de compra neste momento é o preço da transação, se for uma ordem de compra ativa, o preço da venda é o preço da transação, se houver uma nova transação, a nova disputa será atualizada, o resultado da última vez não será atualizado.
De acordo com o fluxo de pedidos, pode ser feito da seguinte forma: em um pedido, por exemplo, o preço é o preço, a quantidade de pedido é o montante, neste momento, o disco é comprado e vendido, respectivamente, como bid, ask. Se o preço for menor que o preço do pedido é maior que o bid, o primeiro julgamento é feito pelo maker, e a troca pode ser priorizada, então todas as transações individuais com preços inferiores ou iguais ao preço do pedido devem ser filmadas com esse pedido.
É fácil ver um problema com esse tipo de captura, se o pedido é o tomador, a realidade é que pode ser transacionado imediatamente, em vez de esperar por um novo pedido para ser filmado. Primeiro, não consideramos o volume de pedidos no prato, mesmo que haja dados, o julgamento direto da transação também mudou de profundidade e afeta o mercado. Em vez disso, a captura baseada em novos pedidos é o equivalente a substituir um pedido histórico real por seu pedido, que não ultrapassa os limites do volume de transações do mercado em si, e o lucro final não pode exceder o lucro máximo gerado pelo sentimento.
Há ainda alguns pequenos detalhes, se o preço de compra do pedido é igual ao preço de compra, na verdade, ainda há uma certa probabilidade de que o preço de compra seja capturado, e é necessário considerar a prioridade do pedido e a probabilidade de transação, etc. É mais complexo, não é considerado aqui.
Os objetos da troca podem ser referenciados na introdução inicial, basicamente inalterada, somente adicionando a diferença entre os custos do fabricante e do tomador e otimizando a velocidade de retrospecção.
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
O que é que ele está a fazer?
Finalmente, chegando à fase de retrospecção real, nós aqui retrospeccionamos uma das estratégias mais clássicas da rede, para ver se alcançamos o efeito esperado. O princípio estratégico é que, com cada aumento de preço de 1%, temos uma lista vazia de um determinado valor (ao contrário, temos vários pedidos), calculamos a lista de venda e venda. O código não é liberado.Grid('XTZ',100,0.3,1000,maker_fee=-0.00002,taker_fee=0.0003)
Na função, os parâmetros são: pares de transações, desvio de preço de 1% do valor de detenção, densidade de pendências de 0,3%, intervalo de repouso ms, taxa de pendências de pendências e taxa de alimentação de pendências.
O XTZ está em uma fase de convulsão nos últimos cinco dias, o que é bom para a grelha.
Primeiro, analisamos o impacto dos diferentes tamanhos de estoque nos ganhos, e os ganhos analisados pelos mecanismos tradicionais certamente aumentam com o aumento dos estoques.
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'])
O total de quatro grupos foi re-mesurado, com valores de armazenamento de 100, 1000, 10000, 100000, respectivamente. O resultado foi o seguinte:
{'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}
Pode-se ver que o lucro finalmente alcançado é de 28,4%, 27,5%, 26,9%, 22,6% do valor da detenção, respectivamente. Isso também está de acordo com a realidade, quanto maior o valor da detenção, maior o valor da listagem, maior a probabilidade de ocorrer transações partiais, e o lucro final alcançado é menor em relação ao volume da listagem.
Também podemos reverter o efeito de diferentes parâmetros sobre os ganhos de reverter, como densidade de ligação, tempo de sono, custos de processamento, etc. Por exemplo, o tempo de sono é alterado para 100 ms, em comparação com o tempo de sono de 1000 ms, para ver o ganho. Os resultados do reverter são os seguintes:
{'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}
Os ganhos aumentaram um pouco, o que explica a importância de uma estratégia de rede para pendurar vários grupos de pedidos.
Esta inovação propõe um novo sistema de retrospecção baseado no fluxo de pedidos, que pode simular em parte a captura de pedidos pendurados, pedidos, transações, atrasos, etc., em parte refletindo o impacto do volume de capital estratégico nos ganhos, tem um importante valor de referência para estratégias de alta frequência e estratégias de hedge, retrospecção de alta precisão indica a direção para a otimização de parâmetros estratégicos.
É possível.A estratégia é 1% por cada aumento de preço. Quanto tempo para um aumento de 1%?
É possível.A estratégia é 1% por cada aumento de preço. - O que foi? Quanto tempo para um aumento de 1%?
homilhaO índice está em GB.
DsaidasiO que é que o site está a fazer com esse volume de dados?
Ervas daninhas/upload/asset/1ff487b007e1a848ead.csv
Ervas daninhasE isso é muito bom, porque o volume de dados de retomada de profundidade é muito grande.
Ervas daninhasO preço é muito menor do que o retorno do disco real, considerando o volume de negócios, 1M-20M por dia.