Индикаторы: Schaff Trend Cycle

 

Schaff Trend Cycle:

Индикатор Schaff Trend Cycle по принципу своей работы является циклическим осциллятором, использующим механизмы стохастика по линии MАСD, используя циклы. В результате от данного индикатора разработчикам удалось добиться более стабильных и достоверных результатов работы скрипта.

Индикатор Schaff Trend Cycle по принципу своей работы является циклическим осциллятором, использующим механизмы стохастика по линии MАСD, применяя циклы. В результате от данного индикатора разработчикам удалось добиться более стабильных и достоверных результатов работы скрипта. На состояние графика практически не влияют неизбежно возникающие на бирже кратковременные тренды. Однако в случае резкого изменения ситуации по торгам индикатор выдает оповещение о происходящем.

Автором индикатора Schaff Trend Cycle является экономист Дагг Шафф, чей опыт наблюдения за результатами торгов на биржах позволил разработать и математически обосновать теорию о том, что валютные тренды практически никогда не ведут себя спонтанно. По истечении определенного времени направление тренда возвращается в исходное и цикл его роста и спада начинает повторяться заново, т.е. имеет место некая цикличность, при учете которой можно значительно улучшить достоверность показаний биржевого индикатора-осциллятора. Эта теория получила подтверждение в 2008 году в ходе обширных исследований. После того математическая модель Дагга Шаффа и была применена в процессе разработки нового индикатора Schaff Trend Cycle.

Помимо учета цикличности трендов, для улучшения достоверности показаний индикатора Schaff Trend Cycle и уменьшения количества его ложных срабатываний, при его создании было использовано комбинирование двух различных подходов к вычислению направлений изменения тренда - сглаженный стохастический осциллятор и MACD.

Для наглядности рабочее поле индикатора проградуировано в условных единицах в диапазоне от 0 до 100. В качестве ключевых уровней используются отметки 25 и 75.

Автор: Nikolay Kositsin

Индикатор SchaffTrendCycle

 

Очень интересный индикатор, он и его модификации (двойной Schaff Trend Cycle ) служили дополнением в моей системе принятия решений полгода. Его можно использовать только на Н4 и выше.

 
rsni:

Очень интересный индикатор, он и его модификации (двойной Schaff Trend Cycle ) служили дополнением в моей системе принятия решений полгода. Его можно использовать только на Н4 и выше.

А что случилось через пол года?
 

Это действительно отличный индикатор - посмотрите на изображение ниже: если мы будем торговать с помощью этого индикатора, то получим 135 пунктов за 1 день (4 знака пунктов) только для одной пары!

Скриншоты торговой платформы MetaTrader

EURUSD, M15, 2013.07.30

MetaQuotes Software Corp., MetaTrader 5, Demo

135 пунктов

EURUSD, M15, 2013.07.30, MetaQuotes Software Corp., MetaTrader 5, Demo


 

Существует множество торговых систем, основанных на этом индикаторе. Вот одна из них:

Schaff Trend Cycle с EMA 100

1. Таймфрейм: 15 минут и выше

2. Пары: Любые

3. Индикаторы:

  • Schaff Trend Cycle
  • Ema 100
  • Stochastich (21, 9,9)

Правила для входа в длинную сделку

  1. Экспоненциальная скользящая средняя 100 наклонена вверх.
  2. Дождитесь, пока трендовый цикл Шаффа достигнет территории перепроданности на графике (-10 +10), входите в длинную сделку, когда трендовый цикл Шаффа развернется выше 10, а кресты Стохастича выстроятся в линию вверх.
  3. Установите стоп на 10 пунктов ниже последнего уровня поддержки.
  4. Тейк-профит: Закрыть сделку, если индикатор Schaff Trend Cycle опустится ниже 90.

Правила входа в короткую сделку

  1. Экспоненциальная скользящая средняя 100 наклонена вниз
  2. Дождитесь, пока Schaff Trend Cycle достигнет территории перекупленности на графике (90-110), входите в короткую сделку, когда Schaff Trend Cycle развернется ниже 90, а Stocastich пересечет линию вниз.
  3. Установите стоп на 3 пункта выше последнего уровня сопротивления.
  4. Тейк-профит: Закрыть сделку, если индикатор Schaff Trend Cycle опустится до -10, а затем снова поднимется выше +10.

Шаблон прилагается. Если вы установите индикаторы и будете использовать этот шаблон, то получите вот такой график:

Скриншоты торговой платформы MetaTrader

USDJPY, H1, 2013.07.30

MetaQuotes Software Corp., MetaTrader 5, Demo

schaff ema 100

USDJPY, H1, 2013.07.30, MetaQuotes Software Corp., MetaTrader 5, Demo


Система действительно очень прибыльная - посмотрите на другой график с таймфреймом D1: +439 пунктов (4 знака) :

Скриншоты торговой платформы MetaTrader

USDJPY, D1, 2013.07.30

MetaQuotes Software Corp., MetaTrader 5, Demo

439 пунктов в прибыли

USDJPY, D1, 2013.07.30, MetaQuotes Software Corp., MetaTrader 5, Demo


Файлы:
schaffema.tpl  15 kb
 

Это другая торговая система, взятая отсюда:

Циклическая стратегия Schaff Trend: Это стратегия, которая ищет растущую 50-дневную SMA и растущий Schaff Trend для входа в длинные позиции. Она будет входить в шорт, когда 50-дневная SMA движется вниз, как и тренд Шаффа.

Для ее установки вам понадобится только один индикатор Schaff Trend Cycle и файл шаблона (прилагается):

  • Поместите Schaff Trend Cycle в папку indicators (например, в C:\Program Files\MetaTrader 5\MQL5\Indicators),
  • и поместите файл шаблона в папку templae (например, в C:\Program Files\MetaTrader 5\Profiles\Templates),
  • перезапустите Metatrader 5 или скомпилируйте индикатор Schaff Trend Cycle в MetaEditor,
  • откройте любой график, щелкните правой кнопкой мыши и выберите наш шаблон по имени, и у вас появятся вот такие графики:

Скриншоты торговой платформы MetaTrader

GBPUSD, M30, 2013.07.30

MetaQuotes Software Corp., MetaTrader 5, демо

простой

GBPUSD, M30, 2013.07.30, MetaQuotes Software Corp., MetaTrader 5, Demo


Скриншоты торговой платформы MetaTrader

GBPUSD, D1, 2013.07.30

MetaQuotes Software Corp., MetaTrader 5, Демо

schaff simple d1

GBPUSD, D1, 2013.07.30, MetaQuotes Software Corp., MetaTrader 5, Demo


Обратите внимание, что данная система также использует уровни перекупленности/перепроданности индикаторов Schaff Trend Cycle.

 

Вариаций этой простой системы Шаффа может быть множество, но большинство из них связано с уровнями перекупленности/перепроданности этого индикатора. Итак, что такое уровни перекупленности/перепроданности и как их использовать? Прочитайте эту небольшую статью :

============

Вот что вам нужно знать о "перекупленности" и "перепроданности":

Если вы готовите что-то, проверяете это и видите, что блюдо "пережарено", какова ваша немедленная реакция? Именно... вы вынимаете блюдо из духовки. Извлеките его из того, что вызвало его нынешнее пересушенное состояние, и чем быстрее, тем лучше.

А если двигатель вашего автомобиля "перегрелся"? То же самое... Вы делаете все необходимое, чтобы двигатель остыл. Немедленно прекратите делать то, что привело к перегреву двигателя в первую очередь.

Учитывая эти естественные реакции, легко понять, почему первоначальная и почти немедленная реакция многих начинающих трейдеров на сценарий перекупленности или перепроданности заключается в том, чтобы сделать все наоборот и в этом случае.

Они рассуждают так: поскольку многие ордера на покупку (длинные) двигали цену вверх и загоняли индикатор на территорию перекупленности, мы должны поступить наоборот и занять короткую позицию (продать). И наоборот, если многие ордера на продажу привели к падению цены и переходу индикатора в зону перепроданности, мы должны начать занимать длинные позиции. Они как будто ожидают, что цена отскочит назад, как резинка, когда достигнет этих зон перепроданности.

Что ж... то, что является правильной реакцией для запеканок и автомобильных двигателей, не обязательно является правильной реакцией при торговле.

Когда индикатор входит в зоны перекупленности/перепроданности, помните, что он может оставаться там довольно долго. Если, например, индикатор RSI или медленный Стохастик показывает перекупленность, это не значит, что ценовое движение на паре подобно туго сжатой пружине немедленно вернется в зону перепроданности.

Давайте посмотрим на дневной график NZDJPY ниже для примера...


Обратите внимание, что когда медленный Стохастик впервые поднялся выше 80 в зону перекупленности, цена продолжила рост еще на 780 с лишним пунктов, а Стохастик все это время оставался перекупленным. Очевидно, что трейдер, поставивший короткую позицию в момент первого перехода в зону перекупленности, упустил бы отличный ход. Кроме того, их вывели бы из короткой позиции в довольно короткие сроки.

Чтобы увидеть пример того, как цена отступает, когда медленный Стохастик переходит на территорию перекупленности, нам нужно посмотреть на область, обозначенную на графике буквой "А". В данном случае свечи вокруг "А", доджи, вращающиеся вершины, падающая звезда и молот, указывают на потенциал отката.

Смысл в том, что любой из сценариев может быть реализован, поэтому не стоит реагировать на зоны перекупленности и перепроданности индикатора.

Помните...

Принимайте сигналы на вход от индикатора только в направлении долгосрочного тренда.

Например, если тренд был сильным и продолжительным, то вполне логично, что индикатор будет находиться в зоне перекупленности, поскольку он отражает бычий импульс ценового движения. Если в этот момент занять короткую позицию, это будет означать торговлю против тренда, что приведет к увеличению риска.

=================

Видео об уровнях перекупленности/перепроданности здесь.

 

Если вы знаете какую-то систему об этом индикаторе Schaff Trend Cycle, пожалуйста, опубликуйте ее здесь.

Это все новости

 

Здравствуйте,

Я скачал 2 файла schafftrendcycle.mq5 и smootalgorithms.mqh и попытался скомпилировать их.

Я получаю несколько предупреждений:

"проверьте предшествование операторов на возможную ошибку; используйте круглые скобки для уточнения предшествования" в строке 3137

и аналогичные предупреждения внутри процедур BarCheck2 - BarCheck5.

Чтобы лучше понять ситуацию, я добавил много круглых скобок в if-выражения в процедурах BarCheck1 - BarCheck5:

//+------------------------------------------------------------------+
//| Проверяем, находится ли бар в пределах расчетного диапазона |
//+------------------------------------------------------------------+
bool CMovSeriesTools::BarCheck1(int begin,int bar,bool Set)
// BarCheck1(begin, bar, Set)
  {
//----
   //if(!Set && bar<begin || Set && bar>begin) return(true);
   // Рысь
   if(((!Set) && (bar<begin)) || (Set && (bar>begin))) return(true);
//----
   return(false);
  }
//+------------------------------------------------------------------+
//| Проверяем бар на начало расчета |
//+------------------------------------------------------------------+
bool CMovSeriesTools::BarCheck2(int begin,int bar,bool Set,int Length)
// BarCheck2(begin, bar, Set, Length)
  {
//----
   //if(!Set && bar==begin+Length-1 || Set && bar==begin-Length+1)
   // Рысь
   if(((!Set) && (bar==(begin+Length-1))) || (Set && (bar==(begin-Length+1))))
      return(true);
//----
   return(false);
  }
//+------------------------------------------------------------------+
//| Проверка на отсутствие полос для сглаживания |
//+------------------------------------------------------------------+
bool CMovSeriesTools::BarCheck3(int begin,int bar,bool Set,int Length)

// BarCheck3(begin, bar, Set, Length)
  {
//----
   //if(!Set && bar<begin+Length-1 || Set && bar>begin-Length+1)
   // Рысь
   if(((!Set) && (bar<(begin+Length-1))) || (Set && (bar>(begin-Length+1))))
      return(true);
//----
   return(false);
  }
//+------------------------------------------------------------------+
//| Проверка бара в момент сохранения данных |
//+------------------------------------------------------------------+
bool CMovSeriesTools::BarCheck4(int rates_total,int bar,bool Set)
// BarCheck4(rates_total, bar, Set)
  {
//----
//---- Сохранение значений переменных
   //if(!Set && bar==rates_total-2 || Set && bar==1) return(true);
   // Рысь
   if(((!Set) && (bar==(rates_total-2))) || (Set && (bar==1))) return(true);
//----
   return(false);
  }
//+------------------------------------------------------------------+
//| Проверяем бар в момент восстановления данных |
//+------------------------------------------------------------------+
bool CMovSeriesTools::BarCheck5(int rates_total,int bar,bool Set)
// BarCheck5(rates_total, begin, bar, set)
  {
//----
//---- Восстановление значений переменных
   //if(!Set && bar==rates_total-1 || Set && bar==0) return(true);
   // Рысь
   if(((!Set) && (bar==(rates_total-1))) || (Set && (bar==0))) return(true);
//----
   return(false);
  }

Правильно ли это??? Надеюсь, что да.

Еще одно предупреждение возникает в строке 742 в процедуре bPriceSeries:

"не может использоваться для статического выделенного массива".

Я удалил утверждение "ArraySetAsSeries(series,true);". Я думаю, что в этом нет необходимости, так как размер массива серий всего один.

Это правильно и соответствует вашим намерениям?

Bobcat

 

Не очень мне понятно, а вернее совсем непонятно, как торговать используя этот индикатор. Это ведь индикатор? А то во второй строчке описания написано "удалось добиться более стабильных и достоверных результатов работы скрипта". Но это - бог с ним. Чем этот Schaff Trend Cycle может быть полезен ?

 

Привет,

Когда я компилирую индикатор, появляется эта ошибка:

'MODE_EMA' - cannot convert enum schafftrendcycle.mq5 92 32

что можно сделать?