Este sistema de negociação é quantitativamente projetado por Barrow Quantification.
No ano passado, alcançámos excelentes resultados no Concurso Quantitativo Tokeninsight.
Obrigado à comunidade FMZ por fornecer uma plataforma assim. A fim de apoiar melhor a construção de comunidades quantitativas, o conceito de conceção e as ideias de conceção desta estratégia são agora publicados aqui. Espero que possa aprender a concepção e aplicação da negociação quantitativa.
A inspiração para o sistema de taxa de digitação quantitativa é principalmente da física
A definição de velocidade na física é: a distância percorrida por unidade de tempo. Se considerarmos o preço como distância, então no mercado financeiro, a definição de velocidade é o tamanho da mudança de preço por unidade de tempo.
Se o preço muda muito em um tempo unitário, esse mercado é geralmente chamado de mercado rápido; se as mudanças de preço em um tempo unitário são pequenas, esse mercado é chamado de mercado lento. Portanto, a velocidade é uma lei natural que integra tempo e preço. Uma compreensão profunda da velocidade pode nos ajudar a entender o mercado em maior extensão.
Se a taxa aumenta, significa que a energia está aumentando e pode prever efetivamente a tendência ascendente do mercado.
Se a taxa cair, significa uma falha energética e pode ser percebido o risco de condições de mercado estáveis ou em queda.
Cada transação utiliza um certo número de lotes para a transação, por isso é chamado de sistema de negociação de taxa quantitativa.
Preço máximo (HHV): O preço mais alto alcançado num período específico. Preço mais baixo (LLV): O preço mais baixo alcançado num período específico. A taxa de câmbio é a taxa de câmbio de um mercado de ações. Inclinação de regressão (SLOPE): A inclinação de uma regressão linear com um período específico (isto é o que chamamos de taxa)
A fórmula da inclinação da equação linear OLS é a seguinte:
A fórmula matemática é muito complicada, mas a plataforma FMZ já escreveu a fórmula gramatical (SLOPE) da linguagem M para nós.
Podemos ver que o algoritmo é o seguinte:
O processo é um pouco mais complicado, mas todos não têm que pensar sobre isso.
len:=35;//Design cycles
hh^^HHV(H,len);//Take the highest price in a certain period
ll^^LLV(L,len);//Take the lowest price in a certain period
hl2^^(hh+ll)/2;//Average of highest price and lowest price
avg^^MA(hl2,5);//Calculate the moving average line of the average
ss:SLOPE(avg,len);//Calculate the regression slope of the moving average line
Através do design dos indicadores, podemos ver que no gráfico principal, temos o ponto mais alto (linha amarela), o ponto mais baixo (linha verde), sua média (linha vermelha), e o preço suavizado média móvel calculada por linha vermelha (linha roxa grossa)
Em seguida, podemos calcular a inclinação de regressão ss na figura anexo, que representa a taxa de aumento e queda da média móvel.
Como pode ser visto na figura acima, as setas verdes indicam os pontos de inflexão na inclinação mais baixa e as setas laranjas indicam os pontos de inflexão na inclinação mais alta.
A reação ao longo do gráfico está na linha k, e o enfraquecimento da subida e o enfraquecimento da queda também podem ser claramente sentidos.
Se você comprar e vender no ponto de inflexão, você pode efetivamente operar a negociação no estágio inicial, em vez de perseguir a alta ou a queda no ponto alto ou baixo.
A inclinação ascendente significa que a dinâmica do mercado está a aumentar, podendo esta parar de cair ou começar a subir. O declínio contínuo da inclinação significa que o ímpeto do mercado é fraco e pode parar de subir ou começar a cair.
O desenho e a expressão usando a linguagem M são os seguintes:
len:=35;//Design cycles
hh^^HHV(H,len);//Take the highest price in a certain period
ll^^LLV(L,len);//Take the lowest price in a certain period
hl2^^(hh+ll)/2;//Average of highest price and lowest price
avg^^MA(hl2,5);//Calculate the moving average line of the average
ss:SLOPE(avg,len);//Calculate the regression slope of the moving average line
ss<REF(ss,1),SPK;//When the slope becomes smaller, it indicates that the market momentum is weakened, close long positions and open short positions.
ss>REF(ss,1),BPK;//When the slope becomes larger, it indicates that the market momentum is enhanced, close short positions and open long positions.
AUTOFILTER;
Desta forma, terminámos o projeto deste algoritmo, e depois vamos usar o sistema para testar a situação durante um ano.
O objecto é o contrato trimestral btc;
O período de backtest é de 1 de janeiro de 2019 a presente e o período de tempo é de 1 hora;
3 btc para a conta inicial, taxa de manipulação de 0,05%;
Estabelecer um número fixo de 200 lotes por transacção.
O backtest mostra que este rendimento é relativamente suave e estável.
Neste backtest, foram efectuadas 1261 transacções ao longo do ano; Renda estimada de 4,68 criptomoedas; O rendimento anual é de cerca de 140%; A utilização máxima é de 14%; A proporção de Sharpe é 0,117.
Clique para ir para copiar estratégiahttps://www.fmz.com/strategy/183416
O compartilhamento acima é algumas ideias e conteúdo do meu projeto, o seguinte é o código completo da linguagem M, Para referência, estudo e pesquisa, se precisar de reimpressão, por favor, indique a fonte.
len:=35;//Design cycles
hh^^HHV(H,len);//Take the highest price in a certain period
ll^^LLV(L,len);//Take the lowest price in a certain period
hl2^^(hh+ll)/2;//Average of highest price and lowest price
avg^^MA(hl2,5);//Calculate the moving average line of the average
ss:SLOPE(avg,len);//Calculate the regression slope of the moving average line
ss<REF(ss,1),SPK;//When the slope becomes smaller, it indicates that the market momentum is weakened, close long positions and open short positions.
ss>REF(ss,1),BPK;//When the slope becomes larger, it indicates that the market momentum is enhanced, close short positions and open long positions.
AUTOFILTER;