O recurso está a ser carregado... Carregamento...

Estratégias de pendência linear baseadas em funções de reprodução de dados

Autora: , Criado: 2019-12-13 17:13:07, Atualizado: 2024-12-15 16:04:23

img

Prefácio

Diz-se que a negociação é uma arte e que a arte é inspirada. Então, hoje quero compartilhar com você como usar o inventor para quantificar o recurso de reprodução de dados e encontrar sua própria inspiração para negociação.

A inspiração e o sentido do negócio

Normalmente, quando falamos de inspiração, referimo-nos a um estado criativo instantâneo no processo de pensamento. Para os traders, o hemisfério esquerdo do nosso cérebro é responsável pela elaboração de uma série de regras, tais como a redação de estratégias, a distribuição de fundos e a definição de parâmetros.

Muitas pessoas já ouviram a expressão "sentimento de tabuleiro", que é uma sensação de confusão, como se o que está acontecendo estivesse acontecendo. Quando negociando, essa intuição semelhante a um sexto sentido, embora sem raciocínio e análise lógicos, prevê o futuro do mercado e leva o comerciante a tomar decisões de compra ou venda.

Como obter inspiração

No ponto de vista de um estranho, o senso de disputa é um talento misterioso e inigualável, com o qual você pode se estabelecer no mercado. Na verdade, o senso de disputa é um resumo da experiência de negociação subjetiva do cérebro, é um tipo de preconceito preconceituoso percebido através de anos de leitura de disputa.

Embora, estritamente falando, a inspiração não seja exatamente igual ao senso de mercado, mas acredito que todos, após milhares de exercícios de mercado, tenham um conhecimento mais profundo do mercado, que serão capazes de se adaptar ao desenvolvimento de estratégias. Portanto, se você quiser adquirir esse talento, se quiser desenvolver mais estratégias de negociação, ninguém mais é que o habilidoso.

No entanto, os futuros de commodities e as ações domésticas têm apenas algumas horas de negociação por dia, e se apenas aprimorar sua experiência de negociação em tempo real, formar seus próprios padrões de lucro e regras de negociação, e treinar seus próprios reflexos condicionais no subconsciente, é provável que não se esforce. Além de pagar custos de tempo mais longos, a maioria dos traders também suporta o custo de perda de capital.

Como usar a reprodução de dados

A função de reprodução de dados pode ser treinada sem restrições de tempo de negociação no mercado, suporta vários tipos de futuros de commodities e de moedas digitais, o mercado pode ser redirecionado manualmente ou automaticamente, e pode ser definido livremente como o tempo de início e velocidade de reversão do mercado histórico. Em comparação com outros softwares que geralmente usam o modo de reprodução de dados da linha K, os inventores quantificaram o modo de reprodução de dados do nível Tick, que é muito próximo do ambiente de reversão de transações reais, reproduzindo os dados do preço do disco, deixando os traders em contato.

O site do criador foi quantificado.fmz.comRegistre-se e faça login, clique em Pesquisa de dados do Centro de Controle para visualizar a página de funções de reprodução de dados. Existem quatro caixas de opções e um botão de seleção. Clique primeiro no botão de seleção para mostrar apenas as variedades que suportam reprodução de disco físico, selecione a variedade a ser reproduzida no canto superior esquerdo, selecione o horário de início dos dados nas duas caixas de opções posteriores, selecione o período de tempo dos dados para reproduzir o disco físico e, finalmente, clique no botão Go no canto direito para ativar a função de reprodução de dados.

img

Abaixo do rótulo de dados, há três blocos; à esquerda, o histórico de transações, onde estão todas as encomendas feitas em ordem cronológica; no meio, os dados de lista de compras e vendas, com uma profundidade de 20 arquivos; e à direita, a área de controle de reprodução de dados, onde você pode escolher entre reprodução manual e automática de dados, que é tão simples quanto usar um media player.

img

O índice de localização pode arrastar os marcadores para trás e para a direita, permitindo uma rápida seleção do início do tempo de reprodução dos dados.

img

Na parte inferior, também é possível controlar a velocidade de reprodução dos dados através de uma marca móvel à direita e à esquerda, em milissegundos como unidade de tempo, que pode acelerar ou desacelerar a reprodução dos dados.

img

Construir lógica estratégica

Apesar de muitos fatores influenciarem a queda dos preços, incluindo: ambiente econômico global, políticas macroeconômicas nacionais, políticas industriais relacionadas, relações de oferta e demanda, eventos internacionais, taxas de juros e taxas de câmbio, inflação e desaceleração, psicologia do mercado, fatores desconhecidos, etc., o preço no final da tela é o resultado de uma competição entre as partes. Se há mais compradores, os preços aumentam; se há mais compradores, os preços caem. Basta analisar o preço para criar uma estratégia de negociação.

Ao quantificar o par de transações btc_usdt dos últimos meses, descobrimos que os números de tiques são claramente desproporcionais entre os dois lados do mercado em alta e baixa. Quando o mercado está em alta, o volume de pedidos pendurados é significativamente maior do que o volume de pedidos pendurados; quando o mercado está em baixa, o volume de pedidos pendurados é significativamente menor do que o volume de pedidos pendurados. Então, podemos prever a queda de preços no curto prazo com base no volume de pedidos pendurados no mercado em baixa?

A resposta é sim.

img img

Podemos calcular e comparar o volume de pedidos de várias cabeças, através da coleta de dados de profundidade do Ticket, se a diferença entre os pedidos de várias cabeças é grande. Por exemplo, quando o volume de pedidos de várias cabeças é N vezes o volume de pedidos de várias cabeças, podemos assumir que a maioria dos clientes no mercado está mais atento e que a probabilidade de aumento do preço no curto prazo será maior.

Escrever estratégias de negociação

De acordo com a lógica da estratégia acima, comece a implementá-la com o código. Abra o site: fmz.com > Login > Centro de Controle > Biblioteca de políticas > Criação de políticas > Clique no menu de arrastamento no canto superior direito, selecione a linguagem Python e comece a escrever a política. Esta estratégia é usada como um método de ensino para colocar vírgulas, então tentei simplificar a escrita da política, note as notas no código abaixo.

Primeiro passo: elaborar um quadro estratégico

# 策略主函数
def onTick():
    pass


# 程序入口
def main():
    while True:  # 进入无限循环模式
        onTick()  # 执行策略主函数
        Sleep(1000)  # 休眠1秒

Quando escrevemos a política, devemos escrever em maiúsculas e minúsculas, como se fosse uma casa coberta, antes de cobrir o quadro e cobrir a parede. Neste quadro, usamos duas funções, respectivamente: função principal e função onTick.

Passo 2: Escrever variáveis globais

vol_ratio_arr = []  # 多空挂单比率数组
mp = 0  # 虚拟持仓

A razão para definir vol_ratio_arr como uma variável global é porque minha estratégia é coletar uma quantidade de dados Tick com uma quantidade de espaços pendurados, e se colocarmos a variável vol_ratio_arr na função onTick, com o funcionamento do ciclo, é obviamente irracional, o que precisamos é mudar o valor da variável no modo do ciclo quando uma condição é atingida, e o método mais razoável é colocar essa variável no exterior do ciclo.

O gerenciamento de posições é muito necessário, porque ele se relaciona com a lógica de compra e venda, geralmente, em negociações no momento, calcula-se o par de moedas mantido através da aquisição de uma conta. Aqui, para simplificar o código, uma variável de posições virtual global é diretamente definida para controlar a lógica de compra e venda.

Passo 3: Calcule o índice de espaçamento atual

depth = exchange.GetDepth()  # 获取深度数据
asks = depth['Asks']  # 获取卖价数组
bids = depth['Bids']  # 获取买价数组
asks_vol = 0  # 所有卖价挂单
bids_vol = 0  # 所有买价挂单
for index, ask in enumerate(asks):  # 遍历卖价数组
    # 线性计算所有卖价挂单
    asks_vol = asks_vol + ask['Amount'] * (20 - index)
for index, bid in enumerate(bids):  # 遍历买价数组
    # 线性计算所有买价挂单
    bids_vol = bids_vol + bid['Amount'] * (20 - index)
bidask_ratio = bids_vol / asks_vol  # 计算多空比率

Como é sabido, as moedas digitais são geralmente dados de profundidade de 20 graus, então podemos somar a quantidade de peças penduradas de múltiplos cabeçalhos e espaços para calcular a proporção de múltiplos cabeçalhos e espaços, quando este valor é maior que 1, indica que há mais pessoas que vêem mais do que as pessoas que não vêem, o que indica que o preço vai subir no curto prazo; quando este valor é menor que 1, indica que as pessoas que não vêem mais do que as pessoas que não vêem, o que indica que o preço vai cair no curto prazo.

Mas há um ponto que precisa ser distinguido, quando a distância entre os listados e os discos é mais próxima, isso indica que a vontade de ler mais ou menos é mais forte, por exemplo, o pagamento pendurado em um grupo é certamente mais forte do que o pagamento pendurado em 20 grupos.

Passo 4: Computação linear da proporção de espaços múltiplos num período de tempo

global vol_ratio_arr, mp  # 引入全局变量
vol_ratio_arr.insert(0, bidask_ratio)  # 把多空比率放到全局变量数组里面
if len(vol_ratio_arr) > 20:  # 如果数组超过指定长度
    vol_ratio_arr.pop()  # 删除最旧的元素
all_ratio = 0  # 临时变量,所有多空挂单比率
all_num = 0  # 临时变量,所有线性乘数
for index, vol_ratio in enumerate(vol_ratio_arr):  # 变量全局变量数组
    num = 20 - index  # 线性乘数
    all_num = all_num + num  # 线性乘数累加
    all_ratio = all_ratio + vol_ratio * num  # 所有多空挂单比率累加
ratio = all_ratio / all_num  # 线性多空挂单比率

A multiplicação de cabeçalhos divididos por cabeçalhos vazios pode obter uma proporção de espaço pluriplacenta, mas isso é apenas quando um Tic data, e se apenas um Tic data for usado para decidir se uma transação é vendida ou vendida, pode não ser uma opção sensata, porque em um mercado instantâneo, um Tic data não é convincente. Portanto, precisamos coletar um pedaço fixo de Tic data e, finalmente, calcular um valor justo através de uma linha.

Passo 5: Faça o pedido

last_ask_price = asks[0]['Price']  # 最新卖一价,用于买入的价格
last_bid_price = bids[0]['Price']  # 最新买一价,用于卖出的价格
if mp == 0 and ratio > buy_threshold:  # 如果当前无持币,并且比率大于指定值
    exchange.Buy(last_ask_price, 0.01)  # 买入
    mp = 1  # 设置虚拟持仓的值
if mp == 1 and ratio < sell_threshold:  # 如果当前持币,并且比率小于指定值
    exchange.Sell(last_bid_price, 0.01)  # 卖出
    mp = 0  # 重置虚拟持仓的值

Como é necessário especificar um preço no momento da encomenda, podemos usar diretamente o preço de venda mais recente no momento da compra; no momento da venda, podemos usar diretamente o preço de compra mais recente. Finalmente, quando a transação do encomenda é concluída, reinicie o valor do estoque virtual.

Fim

Se você é um novato em negociação, a função de retorno de dados pode aprender a negociar a zero custo, reduzindo o tempo de aprendizagem de negociações, o que geralmente leva anos para ver resultados iniciais, e as semanas em função da função de retorno de dados podem alcançar o mesmo efeito, sem perder tempo. Para os traders avançados, o retorno dinâmico pode ajudá-lo a analisar seus problemas anteriores, verificar e aperfeiçoar as estratégias de negociação, aumentar a confiança dos traders nas estratégias e ajudar a gerar novas inspirações estratégicas.


Relacionados

Mais.

xaifer48A função de reprodução de disco real está desligada?

Isto é apenas uma breve introdução do princípio, há muitos detalhes que precisam de ser optimizados, e eu estou a fazer um balanço, que também é um prejuízo.