Por que é chamado de termostato? Nós nomeamos o sistema de acordo com sua adaptabilidade à mudança e ao comércio tanto na volatilidade do mercado quanto nos padrões de tendência. Este sistema é derivado da nossa observação do sucesso de sistemas específicos em áreas específicas do mercado. O sistema pode criar estratégias com uma natureza dual para fazer pleno uso de ambos os padrões do mercado.
Primeiro, criamos uma função para ajudar a determinar o padrão do mercado. De acordo com a saída desta função, o termostato muda do modo de seguimento para o modo de balanço de curto prazo.
O modo de rastreamento de tendências é semelhante ao mecanismo de rastreamento de tendências nas bandas de Bollinger. O sistema de balanço de curto prazo é um avanço aberto, incluindo reconhecimento de padrões.
Abs (preço de fechamento - preço de fechamento[29])/(preço mais alto(30) - preço mais baixo (preço mais baixo, 30 dias) * 100
A função gera valores entre 0 e 100. Quanto maior o valor, menos lotado será o mercado atual. Se o valor devolvido pela função for inferior a 20, o sistema entra no modo de balanço de curto prazo.
Basicamente, a maior parte do mercado está mostrando um movimento de balanço, e o sistema tenta pegar a flutuação e obter um pequeno lucro a partir dele.
Através da análise aprofundada de flutuações de curto prazo, descobrimos que às vezes comprar é melhor do que vender e vice-versa. Neste momento, pode ser determinado por modo visual simples. Se o preço de fechamento de hoje for maior do que o ponto alto, baixo e preço de fechamento de ontem (também conhecido como o ponto chave do dia), pensamos que a ação do mercado de amanhã pode ser baixa. No entanto, se o preço de fechamento de hoje for menor do que o ponto alto, baixo e preço médio de fechamento de ontem, então o mercado de hoje pode ser otimista. Classificamos esses momentos como preços que são mais fáceis de comprar e vender.
Na plataforma FMZ Quant, a estratégia de termostato é uma estratégia muito popular. Os usuários podem adicionar alguma lógica de negociação adicional de acordo com suas próprias necessidades para fazer a estratégia funcionar melhor.
Gráfico principal: Fórmula da linha superior: TOP^^MAC+N_TMPTMP;// linha superior do canal de Bollinger Fórmula de descida: Bottom^^MAC-N_TMPTMP
Subgráfico: Fórmula do CMI: CMI:ABS(C-REF(C,N_CMI-1))/HHV(H,N_CMI)-LLV(L,N_CMI))*100;//Quanto maior o valor de 0-100, maior será a tendência.
Código (MyLanguage):
MAC:=MA(CLOSE,N);
TMP:=STD(CLOSE,N);
TOP^^MAC+N_TMP*TMP; // Bollinger channel upper track
BOTTOM^^MAC-N_TMP*TMP; // Bollinger channel down track
BBOLL:=C>MAC;
SBOLL:=C<MAC;
N_CMI:=30;
CMI:ABS(C-REF(C,N_CMI-1))/(HHV(H,N_CMI)-LLV(L,N_CMI))*100; // The greater the value of 0-100 is, the stronger the trend will be. CMI < 20 is volatility mode, CMI >20 is the trend.
N_KD:=9;
M1:=3;
M2:=3;
RSV:=(CLOSE-LLV(LOW,N_KD))/(HHV(HIGH,N_KD)-LLV(LOW,N_KD))*100; // The difference between the closing price and the lowest value of N period is made, the difference between the highest value of N period and the lowest value of N period is made, and the ratio between the two differences is made.
K:=SMA(RSV,M1,1); // Moving average of RSV
D:=SMA(K,M2,1); // Moving average of K
MIND:=30;
BKD:=K>D AND D<MIND;
SKD:=K<D AND D>100-MIND;
// Oscillation mode
BUYPK1:=CMI < 20 AND BKD; // Oscillating long position, buy close
SELLPK1:=CMI < 20 AND SKD; // Oscillating short position, sell close
// Handling of original oscillating positions in trend mode
SELLY1:=REF(CMI,BARSBK) < 20 AND C>BKPRICE*(1+0.01*STOPLOSS*3) AND K<D; // Oscillation long position stop-profit
BUYY1:=REF(CMI,BARSSK) < 20 AND C<SKPRICE*(1-0.01*STOPLOSS*3) AND K>D; // Oscillation short position stop-profit
// Trend mode
BUYPK2:=CMI >= 20 AND C > TOP; // Trend long position, buy close
SELLPK2:=CMI >= 20 AND C < BOTTOM; // Trend short position, sell close
// Handling of original oscillating positions in trend mode
SELLY2:=REF(CMI,BARSBK) >= 20 AND C>BKPRICE*(1+0.01*STOPLOSS*3) AND SBOLL;// Trend long position stop-profit
BUYY2:=REF(CMI,BARSSK) >= 20 AND C<SKPRICE*(1-0.01*STOPLOSS*3) AND BBOLL;// Trend short position stop-profit
SELLS2:=REF(CMI,BARSBK) >= 20 AND C<BKPRICE*(1-0.01*STOPLOSS) AND SBOLL;// Trend long position stop-loss
BUYS2:=REF(CMI,BARSSK) >= 20 AND C>SKPRICE*(1+0.01*STOPLOSS) AND BBOLL;// Trend short position stop-loss
IF BARPOS>N THEN BEGIN
BUYPK1,BPK;
SELLPK1,SPK;
BUYPK2,BPK;
SELLPK2,SPK;
END
BUYY1,BP(SKVOL);
BUYY2,BP(SKVOL);
BUYS2,BP(SKVOL);
SELLY1,SP(BKVOL);
SELLY2,SP(BKVOL);
SELLS2,SP(BKVOL);
Os resultados do backtest da estratégia são os seguintes:
Para mais informações, consulte:https://www.fmz.com/strategy/129086.