A direção parabólica é um indicador de análise técnica muito estranho, inventado por Welles Wilder, o nome completo da abreviação é
A rotação parabólica é peculiar porque sua forma externa é diferente de outros indicadores. Ela consiste em pontos vermelhos ou verdes e segue o movimento do preço em forma de arco.
É construído em cima do gráfico de preços e é usado principalmente para analisar as tendências de preços.
Além disso, a média móvel sempre atravessará o preço, quando o preço cruzar a parábola, o indicador reverterá o
O cálculo da direção parabólica é muito complicado. Primeiro, você precisa determinar o ponto extremo (EP de preço mais alto ou mais baixo). Em seguida, adicione um fator de aceleração (AF) a partir de 0,02 para ele, e depois adicione 0,02 cada vez que o próximo ponto extremo é tocado. O máximo de AF é 0,20, em seguida, multiplique a diferença entre o preço extremo e o SAR do período anterior pelo fator de aceleração, em seguida, adicione o SAR do período anterior.
Primeiro passo:Suponha que o período de tempo ét
. SAR(t)
é igual ao preço mais baixo dos N períodos de tempo anteriores.Af(t)
é 0,02.
SeSAR(t)
é superior ao preço mais baixoL(t)
do período t, ocorre uma mudança e entra na tendência descendente no período seguinte;
SeSAR(t)
não é superior ao preço mais baixoL(t)
do período t, entra na tendência ascendente no período seguinte;
O valor extremoEp(t)
É igual ao preço mais elevado dos últimos N períodos de tempo;
Passo 2:O período de tempo é t+1, que é:
SAR(t+1)=SAR(t)+Af(t)*(Ep(t) – SAR(t))
SeSAR(t+1)
é superior ao preço mais baixoL(t+1)
do período de tempo t+1, ocorre uma mudança e entra numa tendência descendente no período de tempo seguinte;
SeSAR(t+1)
não é superior ao preço mais baixoL(t+1)
do período de tempo t+1, entra na próxima fase de tendência ascendente; e o valor extremoEp(t+1)
É igual ao preço mais elevado dos últimos N períodos de tempo;
Se o preço mais alto do período de tempo, isto é,H(t+1)
é superior ao preço mais elevado dos N períodos anteriores, entãoAF(t+1)=AF(t)+0.02
, caso contrário,AF(t+1)= AF(t)
.
Passo 3:Repetir o algoritmo na segunda etapa da tendência ascendente no período de tempo seguinte t+2, t+3,..., até ocorrer a mudança.AF
é 0,2.
Primeiro passo:Suponha que o período de tempo é t.SAR(t)
é igual ao preço mais elevado dos N períodos de tempo anteriores.Af(t)
é 0,02.
SeSAR(t)
É inferior ao preço mais elevadoH(t)
do período de tempo t, ocorre uma mudança e entra na tendência ascendente no período de tempo seguinte;
SeSAR(t)
não é inferior ao preço mais elevadoH(t)
do período de tempo t, entra na tendência descendente no período de tempo seguinte;
O valor extremoEp(t)
é igual ao preço mais baixo dos últimos N períodos de tempo;
Passo 2: O período de tempo é t+1, que é:
SAR(t+1)=SAR(t)+Af(t)*(Ep(t) – SAR(t))
SeSAR(t+1)
É inferior ao preço mais elevadoH(t+1)
do período t+1, ocorre uma mudança e entra na tendência ascendente no período seguinte;
SeSAR(t+1)
não é inferior ao preço mais elevadoL(t+1)
do período t+1, entra na tendência descendente no período seguinte; além disso, o valor extremoEp(t+1)
é igual ao preço mais baixo dos últimos N períodos de tempo;
Se o preço mais baixoL(t+1)
Se o preço do período de tempo for inferior ao preço mais baixo dos N períodos de tempo anteriores, entãoAF(t+1)=AF(t)+0.02
, caso contrário,AF(t+1)=AF (t)
.
Passo 3:Repetir o algoritmo na segunda etapa da tendência ascendente no período de tempo seguinte t+2, t+3,..., até ocorrer a mudança.AF
é 0,2.
Há muitas versões do algoritmo SAR. O algoritmo acima é apenas um deles, outros são semelhantes em estrutura. A diferença está nos detalhes, como a condição de gatilho do fator de aceleração e o algoritmo de determinação deEp(t)
Podemos ver as características da virada parabólica: na tendência ascendente do mercado, o SAR de cada linha K é maior do que o SAR da linha K anterior, e o ponto de stop loss é gradualmente movido para cima, garantindo assim que o lucro flutuante também esteja se movendo gradualmente para cima.
A direção parabólica separada é uma estratégia de reversão. Quando o preço está acima da parabola, a posição longa é mantida, e quando o preço está abaixo da parabola, a posição curta é mantida. Esta estratégia não vazia pode se adaptar bem ao mercado de tendência e pode gerar um bom lucro quando a tendência do mercado é suave. Mas aqueles que fizeram negociação sabem que o mercado é volátil na maior parte do tempo, por isso, se você usar a volta parabólica sozinho, você pode perder muitos dos lucros que ganhou no mercado de tendência de longo prazo. Portanto, precisamos adicionar um filtro. Quando o mercado é volátil, podemos filtrar algumas das oportunidades não-tendência, reduzindo assim a frequência de negociação e aumentando a taxa de ganho ou a taxa de perda de lucro, para que no mercado volátil de longo prazo, o recuo do valor líquido possa ser efetivamente reduzido.
Posição longa aberta: parabola está subindo, e o preço mais alto é superior ao preço mais alto anterior
Posição curta aberta: parabola está caindo, e o preço mais baixo é inferior ao preço mais baixo anterior
Posições longas que obtêm lucro: a parábola está a diminuir e o lucro flutuante atinge o montante especificado
Posição curta que obtém lucro: a parábola está a subir e o lucro flutuante atinge o montante especificado
Stop loss da posição longa: a perda atinge o montante especificado
Posição curta stop loss: a perda atinge o montante especificado
Com base na lógica estratégica acima, podemos implementá-lo na plataforma FMZ Quant.fmz.com> Login > Dashboard > Strategy Library > New Strategy > Clique no menu suspenso no canto superior direito para selecionar Meu idioma, começar a escrever a estratégia e prestar atenção aos comentários no código abaixo.
Em primeiro lugar, os parâmetros que precisam ser utilizados nesta estratégia: o comprimento da média móvel, o intervalo de stop loss, o parâmetro de lucro, etc. Estes são todos definidos como parâmetros externos para facilitar a depuração e otimização de testes:
N:=30; // highest or lowest price parameter
SLOSS:=1; // Taking Profit and Stop Loss Coefficient
FUND:=100000; // Initial funds
Em seguida, calcule os dados necessários utilizados na estratégia: primeiro calcule a quantidade de ordem, em seguida, calcule o indicador de rotação parabólica e julgue se é um estado ascendente ou um estado decrescente e, finalmente, calcule a relação posicional entre o preço mais alto ou mais baixo e o preço mais alto e mais baixo anterior:
LOTS:=MAX(1,INTPART(FUND/(O*UNIT*0.1))); // Calculate the order quantity
SARLINE:=SAR(4,2,20); // Calculate the parabolic turn indicator
B1:=SARLINE>0; // Determine whether the trend is rising
S1:=SARLINE<0; // Determine whether the trend is falling
B2:=HIGH>=HHV(CLOSE,N); // Determine if the highest price is greater than the previous highest price
S2:=LOW<=LLV(CLOSE,N); // Determine if the lowest price is less than the previous lowest price
A parte seguinte refere-se à posição de abertura e ao stop-loss ou take-profit:
BARPOS>N AND B1 AND B2,BK(LOTS); //Open long position
BARPOS>N AND S1 AND S2,SK(LOTS); // Open short position
S1 AND S2 AND BKHIGH>BKPRICE*(1+0.01*SLOSS), SP(BKVOL); // Long position taking profit
B1 AND B2 AND SKLOW<SKPRICE*(1-0.01*SLOSS),BP(SKVOL); // Short position taking profit
C<BKPRICE*(1-SLOSS*0.01), SP(BKVOL); // Long position stop loss
C>SKPRICE*(1+SLOSS*0.01), BP(SKVOL); // Short position stop loss
Ambiente de ensaio posterior
Relatório de resultados
Curva de fundos
(*backtest
Start: 2015-02-22 00:00:00
End: 2019-09-27 00:00:00
Period: 1h
Exchanges: [{"eid":"Futures_CTP","currency":"FUTURES"}]
Args: [["ContractType","rb000",126961]]
*)
N:=30; // Highest or lowest price parameter
SLOSS:=1; // Take Profit and Stop Loss Coefficient
FUND:=100000; // Initial funds
LOTS:=MAX(1,INTPART(FUND/(O*UNIT*0.1))); // Calculate the order quantity
SARLINE:=SAR(4,2,20); // Calculate the parabolic turn indicator
B1:=SARLINE>0; // Determine whether the trend is rising
S1:=SARLINE<0; // Determine whether the trend is falling
B2:=HIGH>=HHV(CLOSE,N); // Determine if the highest price is greater than the previous highest price
S2:=LOW<=LLV(CLOSE,N); // Determine if the lowest price is less than the previous lowest price
BARPOS>N AND B1 AND B2,BK(LOTS); //Open long position
BARPOS>N AND S1 AND S2,SK(LOTS); // Open short position
S1 AND S2 AND BKHIGH>BKPRICE*(1+0.01*SLOSS), SP(BKVOL); // long position taking profit
B1 AND B2 AND SKLOW<SKPRICE*(1-0.01*SLOSS),BP(SKVOL); // short position taking profit
C<BKPRICE*(1-SLOSS*0.01), SP(BKVOL); // long position stop loss
C>SKPRICE*(1+SLOSS*0.01), BP(SKVOL); // short position stop loss
Clique para copiar o código fonte da estratégia completa sem configuração:https://www.fmz.com/strategy/168073
A maioria dos indicadores tradicionais está muito atrás da nova linha K. Não só a virada parabólica pode ser estreitamente correspondida à nova linha K de acordo com as características do fator de aceleração incorporado, mas também não é muito flexível, de modo que a estratégia pode ser tanto ofensiva quanto defensiva. Embora o método de cálculo seja muito complicado, os indicadores existentes podem ser usados diretamente, o que é muito amigável para iniciantes.