
¿Por qué se llama termostato? Nombramos este sistema por su adaptabilidad para cambiar y operar tanto en modo mercado, swing como tendencia. El sistema se derivó de nuestra observación del éxito de sistemas específicos en segmentos de mercado específicos. Este sistema permite la creación de estrategias de doble naturaleza para aprovechar ambas modalidades del mercado.
Primero, creamos una función para ayudar a determinar patrones de mercado. En función del resultado de esta función, el termostato cambia del modo de seguimiento al modo de oscilación de corto plazo.
El modo de seguimiento de tendencia utiliza un mecanismo de seguimiento de tendencia similar al que se encuentra en las Bandas de Bollinger. El sistema de oscilación de corto plazo es una ruptura abierta que incorpora el reconocimiento de patrones. Esta función compara la distancia que ha recorrido el mercado con la distancia real que ha recorrido el mercado:
Abs(Precio de cierre - Precio de cierre[29])/(Precio más alto (30) - Precio más bajo (precio bajo, 30 días) * 100
Esta función genera un valor entre 0 y 100. Cuanto mayor sea el valor, menos concurrido estará el mercado actual. Si el valor devuelto por la función es menor que 20, el sistema ingresa al modo de oscilación de corto plazo.
Básicamente, el mercado muestra mayormente una acción oscilante y el sistema intenta capturar dicha oscilación y obtener una pequeña ganancia de ella. Los termostatos intentan lograr esta hazaña comprando/vendiendo pequeños impulsos del mercado. Si las fluctuaciones son lo suficientemente grandes, el sistema cambia de modo.
A través de un análisis profundo de las fluctuaciones de corto plazo, descubrimos que a veces es mejor comprar que vender, y viceversa. Estos tiempos pueden identificarse a través de patrones visuales simples. Si el cierre de hoy es superior al máximo, mínimo y cierre de ayer (también conocido como punto pivote del día), entonces creemos que la acción del mercado de mañana probablemente será bajista. Sin embargo, si el cierre de hoy está por debajo del promedio del máximo, mínimo y cierre de ayer, entonces es probable que el mercado de hoy sea alcista. Clasificamos estos tiempos como de más fácil compra y venta.
La estrategia de termostato es una estrategia muy popular en la plataforma cuantitativa Inventor. Los usuarios pueden agregar alguna lógica comercial adicional según sus necesidades para que la estrategia funcione mejor. El siguiente es un marco típico de una estrategia de termostato en la plataforma cuantitativa Inventor:
Imagen principal: Fórmula del carril superior: TOP^^MAC+N_TMPTMP; // Carril superior del canal de Bollinger Fórmula de la trayectoria inferior: BOTTOM^^MAC-N_TMPTMP; // Trayectoria inferior del canal de Bollinger
Subimagen: Fórmula CMI: CMI:ABS(C-REF(C,N_CMI-1))/(HHV(H,N_CMI)-LLV(L,N_CMI))*100; //0-100 Cuanto mayor sea el valor, más fuerte será la tendencia. CMI<20 indica modo de oscilación, CMI>20 indica tendencia.
Código (Mi idioma):
MAC:=MA(CLOSE,N);
TMP:=STD(CLOSE,N);
TOP^^MAC+N_TMP*TMP; // 布林通道上轨
BOTTOM^^MAC-N_TMP*TMP; // 布林通道下轨
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; //0-100 取值越大,说明趋势越强,CMI<20震荡模式,CMI>20为趋势
N_KD:=9;
M1:=3;
M2:=3;
RSV:=(CLOSE-LLV(LOW,N_KD))/(HHV(HIGH,N_KD)-LLV(LOW,N_KD))*100; //收盘价与N周期最低值做差,N周期最高值与N周期最低值做差,两差之间做比值。
K:=SMA(RSV,M1,1); //RSV的移动平均值
D:=SMA(K,M2,1); //K的移动平均值
MIND:=30;
BKD:=K>D AND D<MIND;
SKD:=K<D AND D>100-MIND;
// 震荡模式
BUYPK1:=CMI < 20 AND BKD; //震荡多单买平开
SELLPK1:=CMI < 20 AND SKD; //震荡空单卖平开
// 趋势模式下原有震荡持仓的处理
SELLY1:=REF(CMI,BARSBK) < 20 AND C>BKPRICE*(1+0.01*STOPLOSS*3) AND K<D; //震荡多单止盈
BUYY1:=REF(CMI,BARSSK) < 20 AND C<SKPRICE*(1-0.01*STOPLOSS*3) AND K>D; //震荡空单止盈
// 趋势模式
BUYPK2:=CMI >= 20 AND C > TOP; // 趋势多单买平开
SELLPK2:=CMI >= 20 AND C < BOTTOM; // 趋势空单卖平开
// 趋势模式下原有震荡持仓的处理
SELLY2:=REF(CMI,BARSBK) >= 20 AND C>BKPRICE*(1+0.01*STOPLOSS*3) AND SBOLL;//趋势多单止盈
BUYY2:=REF(CMI,BARSSK) >= 20 AND C<SKPRICE*(1-0.01*STOPLOSS*3) AND BBOLL;//趋势空单止盈
SELLS2:=REF(CMI,BARSBK) >= 20 AND C<BKPRICE*(1-0.01*STOPLOSS) AND SBOLL;//趋势多单止损
BUYS2:=REF(CMI,BARSSK) >= 20 AND C>SKPRICE*(1+0.01*STOPLOSS) AND BBOLL;//趋势空单止损
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);
Los resultados del backtest de esta estrategia son los siguientes:

Para más detalles, consulte: https://www.fmz.com/strategy/129086