Индикаторы: Market Way

 

Market Way:

Данный индикатор объединил в себе лучшие традиции осцилляторов и индикаторов слежения за трендом

Author: Олег Коновалов aka Regul

 

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

 

Красиво .... но непонятно....

 
tempico:

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

А вы бы лучше у своей заднице спросили)))) раз она разбирается ))))))

 
rotty:
tempico:

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

А вы бы лучше у своей заднице спросили)))) раз она разбирается ))))))




я спрашивал..молчит, зараза

 

винегрет какой-то)) а отчет с 20ю процентами за 10 лет лет только портят картинку

 

Уважаемые господа!


tempico:

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

В коде индикатора дано полное развернутое описание каждой линии и точек, так же в тексте ниже картинки так же дано частичное описание.



Techno:

винегрет какой-то)) а отчет с 20ю процентами за 10 лет лет только портят картинку

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

 

Ну вы и намудрили, вердикт - слишком сложно. Все убрать оставить гистограмму только =)
поставил
#property indicator_buffers 3
IndicatorBuffers(8);

норм работает ставлю 10

 
excelf:

1. Ну вы и намудрили, вердикт - слишком сложно. 2. Все убрать оставить гистограмму только =)
поставил
#property indicator_buffers 3
IndicatorBuffers(8);

3. норм работает ставлю 10

1. Логика данного индикатора не сложнее понимания двух SMA одинакового периода построенным по ценам открытия и закрытия. В чем тут сложность?, мне не понятно.


2. Если убрать в индикаторе Ишимоку облако или линии, что б было не сложно или красиво, разве это нормально?



Данный индикатор предназначен для анализа рынка и принятия решения о входе в позицию и каждая линия здесь несет необходимый объем информации для этих целей, а не нарисована для красоты отображения.



3. За 10 спасибо

 
konovalov писал(а):

Условия входа лонг:

//-2-
MainAccumulation1-MainSMA1>0 // если основная линия выше своего сглаженного значения
&& BullPressue1-Point>0 // если бычье давление выше 0
&& BearPressue1-Point>0// если медвежье давление выше 0
&& MainAccumulation1-Point>0 // если основная линия выше 0

Условия входа шорт:

//-2-
MainAccumulation1-MainSMA1<0 // если основная линия ниже своего сглаженного значения
&& BullPressue1-Point<0 // если бычье давление ниже 0
&& BearPressue1-Point<0// если медвежье давление ниже 0
&& MainAccumulation1-Point<0 // если основная линия ниже 0

Условия на выход строго противоположные.

Хочу "привентить" к вашему индикатору стрелочки с ценниками и алерты.



Хочу уточнить, правильно я расшифровал ваши переменные в выше указанном тексте.


Вот мой код, на основе ваших критериев входа в рынок:


bool IsOpenBuy =false;     // флаг существования рыночных Buy-ордеров
bool IsOpenSell=false;     // флаг существования рыночных Sell-ордеров
//+---------------------------------------------------------------------------+
int Criterion(int nBar) {  // Функция вычисления торговых критериев.
  //+---------------------------------------------------------------------- 1 --+
  // ----- условия для открытия ордера на покупку (Buy)
  if(!IsOpenBuy)  {  // нет открытого ордера на покупку (Buy)
    if(ExtMapBuffer2[nBar+1]/*MainAccumulation1*/-ExtMapBuffer5[nBar+1]/*MainSMA1*/>0     // если основная линия выше своего сглаженного значения
      && ExtMapBuffer[nBar+1] /*BullPressue1*/-Point>0                                    // если бычье давление выше 0
      && ExtMapBuffer1[nBar+1]/*BearPressue1*/-Point>0                                    // если медвежье давление выше 0
      && ExtMapBuffer2[nBar+1]/*MainAccumulation1*/-Point>0)  {                           // если основная линия выше 0
      IsOpenBuy=true; IsOpenSell=false;
      // ПОКУПАЕМ !!! ЗАКРЫВАЕМ ПРОДАДУ.
    }
  }
  //+---------------------------------------------------------------------- 2 --+
  // ----- условия для открытия ордера на продажу (Sell)
  if(!IsOpenSell)  {  // нет открытого ордера на продажу (Sell)
    if(ExtMapBuffer2[nBar+1]/*MainAccumulation1*/-ExtMapBuffer5[nBar+1]/*MainSMA1*/<0     // если основная линия ниже своего сглаженного значения
      && ExtMapBuffer[nBar+1] /*BullPressue1*/-Point<0                                    // если бычье давление ниже 0
      && ExtMapBuffer1[nBar+1]/*BearPressue1*/-Point<0                                    // если медвежье давление ниже 0
      && ExtMapBuffer2[nBar+1]/*MainAccumulation1*/-Point<0)  {                           // если основная линия ниже 0
      IsOpenBuy=false; IsOpenSell=true;
      // ПРОДАЕМ!!! ЗАКРЫВАЕМ ПОКУПКУ.
    }
  }
  
  return(0);
}
 

Так по лучше выглядит =)





//+------------------------------------------------------------------+
//|                                         Indicator Market Way.mq4 |
//|                       Copyright © 2007, O.Konovalov aka Regul    |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2007 O.Konovalov"
#property link      "E-mail:O_Konovalov@ukr.net"
#property link      "E-mail:RegulStar@gmail.com"
#property indicator_separate_window
#property indicator_buffers 3
#property indicator_color1 SteelBlue
#property indicator_color2 Goldenrod
#property indicator_color3 Navy
#property indicator_color4 YellowGreen
#property indicator_color5 DeepPink
#property indicator_color6 OrangeRed
#property indicator_color7 DarkOliveGreen
#property indicator_color8 MediumPurple
//---- input parameters
extern int       IdMain   = 21; // main line
extern int       IdBull   = 21; // bull line 
extern int       IdBear   = 21; // bear line 
extern int       IdArray  = 21; // all sma line  
extern int       history  = 2880;
//---- buffers
double ExtMapBuffer[];
double ExtMapBuffer1[];
double ExtMapBuffer2[];
double ExtMapBuffer3[];
double ExtMapBuffer4[];
double ExtMapBuffer5[];
double ExtMapBuffer6[];
double ExtMapBuffer7[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
    IndicatorBuffers(8);
//---- параметры индикаторов
   SetIndexStyle(0,DRAW_HISTOGRAM,0,4);
   SetIndexBuffer(0,ExtMapBuffer);
   SetIndexArrow(0,158);
   //---
   SetIndexStyle(1,DRAW_HISTOGRAM,0,4);
   SetIndexBuffer(1,ExtMapBuffer1);
   SetIndexArrow(1,158);
   //---
   SetIndexStyle(2,DRAW_ARROW,0,3);
   SetIndexBuffer(2,ExtMapBuffer2);
   SetIndexArrow(2,158);
   //---
   SetIndexStyle(3,DRAW_LINE,0,1);
   SetIndexBuffer(3,ExtMapBuffer3);
   //---
   SetIndexStyle(4,DRAW_LINE,0,1);
   SetIndexBuffer(4,ExtMapBuffer4);
   //---
   SetIndexStyle(5,DRAW_LINE,0,1);
   SetIndexBuffer(5,ExtMapBuffer5);
   SetIndexArrow(5,158);
   //---
   SetIndexStyle(6,DRAW_LINE,0,1);
   SetIndexBuffer(6,ExtMapBuffer6);
   SetIndexArrow(3,158);
   //---
   SetIndexStyle(7,DRAW_LINE,0,1);
   SetIndexBuffer(7,ExtMapBuffer7);
   //--- Наименование индикатора и параметры значений на экране
   IndicatorShortName("Market Way");
   //---
   SetIndexLabel(0, "Bull Pressue_MW0");
   SetIndexLabel(1, "Bear Pressue_MW1");
   SetIndexLabel(2, "Main Accumulation_MW2"); 
   SetIndexLabel(3, "Bull Accumulation_MW3");
   SetIndexLabel(4, "Bear Accumulation_MW4");
   SetIndexLabel(5, "Main SMA_MW5");
   SetIndexLabel(6, "Bull SMA_MW6");
   SetIndexLabel(7, "Bear SMA_MW7");
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   
   double   bull,bear,faster,fast,main;
//----
   int counted_bars=IndicatorCounted();
   if  (counted_bars>0) counted_bars--;
   int limit=Bars-counted_bars-1;
   int i=limit;
   if(i > history) {
        i = history;
   }
   //--- Описание переменных
   //---
//***********************************************БУФЕРА ДЛЯ РАСЧЕТОВ**********************************************
   while (i>=0)
   {
      //--- MW2 БУФЕР СУММАРНАЯ(Быки и Медведи) аккумуляция направления движения рынка
      //то же что и пара двух IdMain-ти периодных (SMA) расчитаных по открытиям и закрытиям  
      //положителные значения указывают на нахождение SMA от Close выше чем SMA от Open, отрицательные наоборот! 
      main=0;
      for(int m=0;m<IdMain;m++)
         {
         main = main+(Close[i+m]-Open[i+m]); //сумма разницы открытия и закрытия за IdMain период
         }
         ExtMapBuffer2[i]=NormalizeDouble(main,Digits);
      
      //--- MW3 БУФЕР Бычья аккумуляция направления движения (то же, что и SМА от Close)
      //здесь расчитаны только бычьи бары и дожи за указаный период, т.е. те, которые твечают условию Close-Open>=0
      bull=0;
      for(int bu=0;bu<IdBull;bu++)
         {
         if (Close[i+bu]-Open[i+bu]>=0.0000)
         bull = bull+(Close[i+bu]-Open[i+bu]); 
         }
         ExtMapBuffer3[i]=NormalizeDouble(bull,Digits);
   
      //--- MW4 БУФЕР Медвежья аккумуляция направления движения (то же, что и SМА от Open)
      //здесь расчитаны только медвежьи бары и дожи за указаный период, т.е. те, которые твечают условию Close-Open<=0
      bear=0;
      for(int be=0;be<IdBear;be++)
         {
         if (Close[i+be]-Open[i+be]<=0.0000)
         bear = bear+(Close[i+be]-Open[i+be]); 
         }
         ExtMapBuffer4[i]=NormalizeDouble(bear,Digits);
   i--; //уменьшение значения индекса
   }
//----------------------------------------------------- SMA 
      //--- MW5 БУФЕР  SMA от СУММАРНОЙ аккумуляции 
      for(i=0; i<limit; i++) {
        ExtMapBuffer5[i] = NormalizeDouble(iMAOnArray(ExtMapBuffer2,0,IdArray,0,MODE_SMA,i),Digits);
        ExtMapBuffer6[i] = NormalizeDouble(iMAOnArray(ExtMapBuffer3,0,IdArray,0,MODE_SMA,i),Digits);
        ExtMapBuffer7[i] = NormalizeDouble(iMAOnArray(ExtMapBuffer4,0,IdArray,0,MODE_SMA,i),Digits);
      }
      
//----------------------------------------------------- разности SMA и расчетных данных 
      //--- MW0 БУФЕР "Бычье Давление"
      //"СИЛА БЫКОВ" принимает "сильную" форму со знаком "+"
      //при значении со знаком "-" имеет обратную форму "СЛАБОСТЬ")
      //определяется посредством сложения и/или вычитания текущих аккумуляций и их СМА "по рынку" за выбранный период
      for(i=0; i<limit; i++) {
        ExtMapBuffer[i] = ExtMapBuffer3[i]-ExtMapBuffer6[i];
        ExtMapBuffer1[i] = ExtMapBuffer4[i]-ExtMapBuffer7[i];
      }
      //--- MW1 БУФЕР "Медвежье Давление"
      //"СИЛА МЕДВЕДЕЙ" принимает "сильную" форму со знаком "-"
      //при значении со знаком "+" имеет обратную форму "СЛАБОСТЬ")
      //определяется посредством сложения и/или вычитания текущих аккумуляций и их СМА "по рынку" за выбранный период      
//----
   return(0);
  }
//+------------------------------------------------------------------+
Причина обращения: