Почему его называют термостатом? Мы назвали систему в соответствии с ее адаптивностью к сдвигу и торговле как волатильности рынка, так и тенденционных моделей. Эта система получена из нашего наблюдения за успехом конкретных систем в конкретных рыночных областях. Система может создавать стратегии с двойным характером, чтобы в полной мере использовать обе модели рынка.
Во-первых, мы создаем функцию, которая помогает определить рыночную картину. В соответствии с выходом этой функции, термостат переключается с режима следования на краткосрочный режим колебания.
Режим отслеживания тренда похож на механизм отслеживания тренда в полосах Боллинджера. Короткосрочная система свинга является открытым прорывом, включая распознавание моделей. Функция сравнивает расстояние блуждания рынка с фактическим расстоянием рынка:
Abs (цена закрытия - цена закрытия[29])/(наивысшая цена(30) - самая низкая цена (низкая цена, 30 дней) * 100
Функция генерирует значения от 0 до 100. Чем выше значение, тем менее переполненный будет текущий рынок. Если значение, возвращенное функцией, меньше 20, система входит в краткосрочный режим колебания.
В основном, большая часть рынка показывает колебание движения, и система пытается поймать колебание и получить небольшую прибыль от него. Термостат пытается достичь этого подвига, покупая/продавая небольшой рыночный импульс. Если колебание достаточно большое, система переключает режимы.
С помощью глубокого анализа краткосрочных колебаний мы обнаруживаем, что иногда покупать лучше, чем продавать, и наоборот. В это время это можно определить простым визуальным режимом. Если сегодняшняя цена закрытия выше, чем вчерашняя высокая точка, низкая точка и цена закрытия (также известная как ключевая точка дня), мы думаем, что завтрашнее рыночное движение может быть медвежьим. Однако, если сегодняшняя цена закрытия ниже, чем вчерашняя высокая точка, низкая точка и средняя цена закрытия, то сегодняшний рынок может быть бычьим. Мы классифицируем эти времена как цены, которые проще купить и продать.
На платформе FMZ Quant стратегия термостата является очень популярной стратегией. Пользователи могут добавить дополнительную логику торговли в соответствии со своими потребностями, чтобы стратегия работала лучше.
Основная диаграмма: Формула верхнего пути: TOP^^MAC+N_TMPTMP;// верхний путь канала Боллинджера Формула понижения траектории: BOTTOM^^MAC-N_TMPTMP;// Канал Боллинджера снижения траектории
Подсхема: Формула CMI: CMI:ABS(C-REF(C,N_CMI-1))/HHV(H,N_CMI)-LLV(L,N_CMI))*100;//Чем больше значение 0-100, тем сильнее будет тенденция. CMI < 20 - режим волатильности, CMI > 20 - тенденция.
Код (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);
Результаты обратной проверки стратегии следующие:
Дополнительная информация:https://www.fmz.com/strategy/129086.