AM2
Андрей

 
Уровень 34

  Торгую в компаниях:


Группа "Торговые системы"

Рейтинг 660



Советник торгующий по "Волнам Вульфа".

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

Описание стратегии

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

Данная стратеги очень проста для понимания, Вам необходимо лишь запомнить несколько правил для построения волн, но для начала взгляните на рисунок ниже, который всё расставит на свои места.

Бычья и медвежья модели разворота



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

Описание бычьей (восходящей) модели разворота

Поиск точек

Точка 1 – основание первой волны (точка минимума первой волны). Точка 1 должна быть выше точки 3 и ниже точки 2 и 4. (смотрите рисунок выше)

Точка 2 – вершина первой волны (точка максимума первой волны) и основание второй волны. На её основе строятся все остальные точки. Это главная точка.

Точка 3 – одновременно точка окончания второй волны и начала третьей (основание третьей, вершина второй)

Точка 4 – вершина волны 3 и основание волны 4.

Точка 5 – точка разворота. Ради её поиска производиться построение волн на основе точек 1,2,3 и 4. Именно в этой точке происходит вход на рынок.

Точка 6 – Точка выхода из рынка (EPA (Estimated Price at Arrival)). Точка 6 определяется в результате построения линии через точки 1 и 4.

Формирование волн

Волна 1 – образуется точками 1 и 2.

Волна 2 – образуется точками 2 и 3.

Волна 3 – образуется точками 3 и 4.

Волна 4 – образуется точками 4 и 5. В конце волны 4 происходит вход на рынок.

Волна 5 – мнимая волна, с началом в точке 5 и с вершиной в точке 6.

(!) Медвежья модель разворота строится по аналогии бычьей модели и является её зеркальным отражением.

Помимо линии, проведенной через точки 1 и 4 для нахождения точки 6 (EPA), необходимо провести еще 2 линии. Первая через точки 1,3 и 5, вторая через точки 2 и 4. Точка пересечения этих двух линий образует точку ЕТА (Estimated Time of Arrival), которая является целью по времени, то есть после этой точки желательно закрыть открытую позиции. Если же точка ЕТА находиться после точки 6 (EPA), то её (точку EPA) можно не брать в расчет. Если же точка ЕТА находиться до точки EPA, то рекомендуется не дожидаться пока цена дойдет до точки 6 (EPA) и закрыть позиции в точке ЕТА.

Если точка ЕТА не может быть образована (например, если точка 4 выше точки 2), желательно воздержаться от входа в точке 5.

Далее мы рассмотрим несколько примеров применения стратегии Волны Вульфа на графике валютной пары GBP/USD H4.

Примеры использования



В данном примере мы детально рассмотрим процесс формирования волн Вульфа. Для анализа был взят 4-х часовой график GBP/USD.

Выделяем точки 1,2,3,4, строим трендовые линии через точки 1, 3 и точки 2, 4. Далее ждем подтверждения окончания формирования волны 4.



Подтверждение образования 4 волны получено. Ждем появления точки разворота 4-ой волны.



Наблюдаем разворот в конце волны 4, как мы и ожидали. Исходя из проведенной нами линии через точки 1 и 3, мы ищем точку 5.



Поиск точки входа (точка 5) производиться при помощи построения проекции на основании точки 2 и 3.



При открытии позиции в точке 5, рекомендуется поставить стоп-лосс, равный длине проекции точки 3 на точку 5.

Далее определяем цель, проводим линию EPA.



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

Получена новая линия EPA. Исходя из новой линии EPA можно еще некоторое время подержать ордер открытым, или же закрыть его на основании временной линии ETA.



В данном примере рассмотрен идеальный пример прогнозирования разворота цены на основании построения волн Вульфа. При использовании стратегии на основе волн Вульфа желательно брать временные промежутки от M5 до D1. На графиках M5-M15 можно еженедельно выделять 4-6 фигур разворота. На графиках от H1 для более точного входа желательно брать в расчет уровни поддержки и сопротивления (серые линии на графиках).

Плюсы стратегии Волны Вульфа

Не требует дополнительных инструментов тех анализа.

Простые правила на вход и выход.

Подходит как новичкам, так и профессионалам.

Минусы стратегии Волны Вульфа

Поиск точек и построение по ним волн и линий EPA и ETA является весьма субъективным занятием. Можно выделить несколько вариантов построения фигур на одном графике с разным временным промежутком, причем каждый вариант будет сигнализировать о разных и парой противоположных сигналах на вход.

Для поиска правильной точки входа необходимо воспользоваться дополнительными инструментами технического анализа. В данном случае пригодятся:

стандартный индикатор фракталов,

построение уровней поддержки и сопротивления (пивоты),

а также поиск моделей разворота на основе японских свечей.

Психологически сложно открывать и удерживать позицию против текущего тренда. К тому же при неправильно открытой позиции может сработать стоп-лосс (если, конечно же, Вы его установили), что может привести не только к финансовым потерям, но и к нежеланию открывать повторную позицию. Также на пути к точке EPA может случиться небольшой разворот, при котором многие трейдеры закрывают позиции, ничего при этом не заработав.

Выводы

Стратегия Волны Вульфа представляет интерес не только из-за своей универсальности и простоты, но из-за своей высокой доходности. За одну сделку можно снимать от 50-100 пунктов, при стоп-лоссе втрое меньше изначальной цели.

Но, как и любая другая стратегия, Волны Вульфа требует не только наличия опыта при построении фигур, но и знания дополнительных средств технического анализа.

П.С. С помощью этого простейшего кода вы сможете проверить работоспособность данной стратегии.


//+------------------------------------------------------------------+
//|                                                           WW.mq4 | 
//|                                            Copyright © 2011, AM2 |
//|                                      http://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2011, AM2"
#property link      "http://www.forexsystems.biz"

#define MAGIC  20120225

extern double StopLoss=450;
extern double TakeProfit=800;
extern int    ExtDepth=10;
extern int    ExtDeviation=5;
extern int    ExtBackstep=3;

extern double Lots=0.1;

bool bone=true,sone=true;

//+------------------------------------------------------------------+
//| Check for open order conditions                                  |
//+------------------------------------------------------------------+
void CheckForOpen()
  {
   double zz1,zz2,zz3,zz4,zz5;
   int    res;

//---- go trading only for first tiks of new bar
   if(Volume[0]>1) return;
   
//---- get Extremum ZigZag Price
 
   zz1=GetExtremumZZPrice(NULL,0,4,ExtDepth,ExtDeviation,ExtBackstep);
   zz2=GetExtremumZZPrice(NULL,0,3,ExtDepth,ExtDeviation,ExtBackstep);
   zz3=GetExtremumZZPrice(NULL,0,2,ExtDepth,ExtDeviation,ExtBackstep);
   zz4=GetExtremumZZPrice(NULL,0,1,ExtDepth,ExtDeviation,ExtBackstep);
   zz5=GetExtremumZZPrice(NULL,0,0,ExtDepth,ExtDeviation,ExtBackstep); 
           
   Comment("\n","ZZ1 = ",zz1,"\n",
          "ZZ2 = ",zz2,"\n",
          "ZZ3 = ",zz3,"\n",
          "ZZ4 = ",zz4,"\n",
          "ZZ5 = ",zz5,"\n");
   
//---- buy conditions
   if(zz1>zz3 && zz1<zz2 && zz1<zz4 && zz5<=zz3 && bone)  
     {
      res=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Ask-StopLoss*Point,Ask+TakeProfit*Point,"",MAGIC,0,Blue);
      bone=false;
      sone=true;
      return;
     }   
//---- sell conditions
   if(zz1<zz3 && zz1>zz2 && zz1>zz4  && zz5>=zz3 && sone)  
     {
      res=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid+StopLoss*Point,Bid-TakeProfit*Point,"",MAGIC,0,Red);
      sone=false;
      bone=true;
      return;
     }
//----
  }
//+------------------------------------------------------------------+
//| Start function                                                   |
//+------------------------------------------------------------------+
void start()
  {
//---- check for history and trading
   if(Bars<100 || IsTradeAllowed()==false) return;
//---- calculate open orders by current symbol
   if(OrdersTotal()<1) CheckForOpen();                                 
//----
  }
//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+

double GetExtremumZZPrice(string sy="", int tf=0, int ne=0, int dp=12, int dv=5, int bs=3) {
  if (sy=="" || sy=="0") sy=Symbol();
  double zz;
  int    i, k=iBars(sy, tf), ke=0;

  for (i=1; i<k; i++) {
    zz=iCustom(sy, tf, "ZigZag", dp, dv, bs, 0, i);
    if (zz!=0) {
      ke++;
      if (ke>ne) return(zz);
    }
  }
  Print("GetExtremumZZPrice(): Экстремум ЗигЗага номер ",ne," не найден");
  return(0);
}
//+----------------------------------------------------------------------------+

  • +4
  • Просмотров: 29789
  • 25 февраля 2012, 20:11
  • AM2
Понравилcя материал? Не забудьте поставить плюс и поделиться в социальной сети!

Вступите в группу "Торговые системы", чтобы следить за обновлениями
ПРИСОЕДИНИТЬСЯ К ГРУППЕ
присоединиться
  Предыдущая запись в группе
Торговля без индикаторов - Price Action
14 января 2012
20 апреля 2012

Комментарии (14)

+
0
Вариант торгующий не только тудым-судым как первый, а по всем сигналам.


//+------------------------------------------------------------------+
//|                                                           WW.mq4 | 
//|                                            Copyright © 2011, AM2 |
//|                                      http://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2011, AM2"
#property link      "http://www.forexsystems.biz"

#define MAGIC  20120225

extern double StopLoss=450;
extern double TakeProfit=800;
extern int    ExtDepth=10;
extern int    ExtDeviation=5;
extern int    ExtBackstep=3;

extern double Lots=0.1;

double mzz1;

bool one=true;

//+------------------------------------------------------------------+
//| Check for open order conditions                                  |
//+------------------------------------------------------------------+
void CheckForOpen()
  {
   double zz1,zz2,zz3,zz4,zz5;
   int    res;

//---- go trading only for first tiks of new bar
   if(Volume[0]>1) return;
   
//---- get Extremum ZigZag Price
 
   zz1=GetExtremumZZPrice(NULL,0,4,ExtDepth,ExtDeviation,ExtBackstep);
   zz2=GetExtremumZZPrice(NULL,0,3,ExtDepth,ExtDeviation,ExtBackstep);
   zz3=GetExtremumZZPrice(NULL,0,2,ExtDepth,ExtDeviation,ExtBackstep);
   zz4=GetExtremumZZPrice(NULL,0,1,ExtDepth,ExtDeviation,ExtBackstep);
   zz5=GetExtremumZZPrice(NULL,0,0,ExtDepth,ExtDeviation,ExtBackstep);
           
   Comment("\n","ZZ1 = ",zz1,"\n",
          "ZZ2 = ",zz2,"\n",
          "ZZ3 = ",zz3,"\n",
          "ZZ4 = ",zz4,"\n",
          "ZZ5 = ",zz5,"\n");
          
    if(zz1!=mzz1) one=true;
      
    mzz1=zz1;
                 
//---- buy conditions
   if(zz1>zz3 && zz1<zz2 && zz1<zz4 && zz5<=zz3 && one)  
     {
      res=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Ask-StopLoss*Point,Ask+TakeProfit*Point,"",MAGIC,0,Blue);
      one=false;
      return;
     }   
//---- sell conditions
   if(zz1<zz3 && zz1>zz2 && zz1>zz4  && zz5>=zz3 && one)  
     {
      res=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid+StopLoss*Point,Bid-TakeProfit*Point,"",MAGIC,0,Red);
      one=false;
      return;
     }
//----
  }
//+------------------------------------------------------------------+
//| Start function                                                   |
//+------------------------------------------------------------------+
void start()
  {
  
   double zz1;  
//---- check for history and trading
   if(Bars<100 || IsTradeAllowed()==false) return;
//---- calculate open orders by current symbol
   if(OrdersTotal()<1) CheckForOpen();                                 
//----
  }
//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+

double GetExtremumZZPrice(string sy="", int tf=0, int ne=0, int dp=12, int dv=5, int bs=3) {
  if (sy=="" || sy=="0") sy=Symbol();
  double zz;
  int    i, k=iBars(sy, tf), ke=0;

  for (i=1; i<k; i++) {
    zz=iCustom(sy, tf, "ZigZag", dp, dv, bs, 0, i);
    if (zz!=0) {
      ke++;
      if (ke>ne) return(zz);
    }
  }
  Print("GetExtremumZZPrice(): Экстремум ЗигЗага номер ",ne," не найден");
  return(0);
}
//+----------------------------------------------------------------------------+


avatar

  34  AM2 Автор Сообщений: 15880 - Андрей

  • 25 февраля 2012, 21:38
+
0
Стейт теста не приложишь? *улыбается*
avatar

  9  amyrgan145 Сообщений: 428 - Амыр

  • 25 февраля 2012, 23:21
+
0
если бы стейт хороший был, сюда бы не выложил
avatar

  34  AM2 Автор Сообщений: 15880 - Андрей

  • 26 февраля 2012, 00:07
+
0
Это к тому, что хорошее вы не выкладываете? Только брак? *улыбается*
avatar

  10  Daibox Сообщений: 166 - Усредняюсь

  • 26 февраля 2012, 03:15
+
0
Все это выкладывается для того, чтобы у людей не было лишних иллюзий.
avatar

  34  AM2 Автор Сообщений: 15880 - Андрей

  • 26 февраля 2012, 09:44
+
0
Вопрос был про то, ЧТО вы выкладываете, а не ДЛЯ ЧЕГО. Значит я прав — хорошую вещь вы не выложите. Это главная мысль вашего блога: «если бы стейт хороший был, сюда бы не выложил». А остальное — отговорки.
avatar

  10  Daibox Сообщений: 166 - Усредняюсь

  • 26 февраля 2012, 13:48
+
0
Вот что я просил *улыбается*4-ех знак. Нормализовал все цены. с 2005-го
avatar

  9  amyrgan145 Сообщений: 428 - Амыр

  • 26 февраля 2012, 09:24
+
0
А вы попробуйте S&P родной для этой стратегии, мне также и самому будет интересно.
avatar

  34  AM2 Автор Сообщений: 15880 - Андрей

  • 26 февраля 2012, 09:50
+
0
Нарисовать то можно *улыбается*. Фунтобакс с 10-го.



avatar

  34  AM2 Автор Сообщений: 15880 - Андрей

  • 26 февраля 2012, 12:24
+
0
Спасибо за советник, скажите, почему он открывает только одну сделку на одной паре, несмотря на то, что я его поставил на 25 пар для теста? И пока одна сделка не закроется, другая, на другой паре не открывается? Как это устранить, что б он работал и открывал сделки без ограничений на всех парах одновременно?
avatar

  2  iTrader777 Сообщений: 7

  • 27 ноября 2013, 02:43
+
0
с разным магиком попробуйте поставить
avatar

  34  AM2 Автор Сообщений: 15880 - Андрей

  • 27 ноября 2013, 19:29
+
0
пробовал, не помогло. ПОЖАЛУЙСТА проверьте код Вашего советника. Мне кажется он некорректен, не пойму как он обращается к индикатору ZigZag через iCustom для расчёта экстремумов. Такое впечатление, что никак. А хотелось бы, что б сов нормально работал.
avatar

  2  iTrader777 Сообщений: 7

  • 15 ноября 2014, 17:25
+
0
опишите, пожалуйста подробнее и со скринами что именно у вас не работает в топике:
zakaz.opentraders.ru/
avatar

  34  AM2 Автор Сообщений: 15880 - Андрей

  • 15 ноября 2014, 17:38
+
0
avatar

  2  iTrader777 Сообщений: 7

  • 15 ноября 2014, 19:53

Зарегистрируйтесь или авторизуйтесь, чтобы оставить комментарий
Начать торговлю с Альпари