помогите написать простой индикатор , по свечам типа MACD

 

помогите написать простой индикатор , по свечам , на вид который должен быть похож на индикатор MACD, минутный и часовой

все очень просто если свеча медвежья то -1 , если бычья то +1 , и суммирование значений, пример графика сделал в экселе

пример

свечарезультатсумма
 бык   1   1
 мишка  -1    0
 мишка  -1  -1
бык   1   0

 

 

 примерный график

 
jacksson2012yan:

помогите написать простой индикатор , по свечам , на вид который должен быть похож на индикатор MACD, минутный и часовой

все очень просто если свеча медвежья то -1 , если бычья то +1 , и суммирование значений, пример графика сделал в экселе

пример

свечарезультатсумма
 бык   1   1
 мишка  -1    0
 мишка  -1  -1
бык   1   0

 

 

 

Если именно помочь, значит Вы уже сами пытались что-то сделать и не смогли. Выкладывайте свои труды сюда, посмотрим.
 
Karputov Vladimir:
Если именно помочь, значит Вы уже сами пытались что-то сделать и не смогли. Выкладывайте свои труды сюда, посмотрим.

вы правильно подметили , да - не могу понять какие функции использовать, мало опыта , почти нет, можете описать примерно ? допустим:

  • определение вида свечи ( цена открытия - цена закрытия)
  • сбор этих данным в определенное место
  • вычисления
  • суммирование
  • построение графика 

                  

 
jacksson2012yan:

вы правильно подметили , да - не могу понять какие функции использовать, мало опыта , почти нет, можете описать примерно ? допустим:

  • определение вида свечи ( цена открытия - цена закрытия)
  • сбор этих данным в определенное место
  • вычисления
  • суммирование
  • построение графика 

Сначала по шагам:

  1. Нужно создать новый индикатор в "MQL5 Wizard".
  2. В самом индикаторе нужен будет только один буфер со стилем рисования DRAW_HISTOGRAM. 
  3. ...

 
jacksson2012yan:

вы правильно подметили , да - не могу понять какие функции использовать, мало опыта , почти нет, можете описать примерно ? допустим:

  • определение вида свечи ( цена открытия - цена закрытия)
  • сбор этих данным в определенное место
  • вычисления
  • суммирование
  • построение графика 

                  

Вот кусочек кода, для примера, из моего класса работающего со свечками.

int CCandles::GetType(int Index=0)
{
   double _Delta= (COpen(Index)-CClose(Index))/Smb.QPoint();
   if (MathAbs(_Delta)>1)
   {  
      if (_Delta>0) return(CTYPE_BEARS);
      if (_Delta<0) return(CTYPE_BULLS);
      if (_Delta==0) return(CTYPE_DOJI);
   }else
   {
      return(CTYPE_DOJI);
   }
   return(CTYPE_DOJI); 
}

 COpen() - возвращает цену открытия. CClose() - цену закрытия. Index - порядковый номер свечи, 0 - текущая 1 - предыдущая и т.д.

Smb.QPoint() - функция другого моего вспомогательного  класса (код приводить не буду, там ни чего в ней особенного нет) возвращает точность котирования аналог Point() но с учетом 4-х или 5 значной точности котирования. То есть если Digits() 4 знака то функция вернет 0.0001 если 5-ть то 0.00001.

Пояснения к коду:

Если разница между открытием и закрытием больше 1-го пункта то считаем что это  свеча не доджи иначе это доджи.

Если разница больше нуля то это медвежья свеча. Если меньше нуля то бычья. Равна нулю - доджи. 

 
Karputov Vladimir:

Сначала по шагам:

  1. Нужно создать новый индикатор в "MQL5 Wizard".
  2. В самом индикаторе нужен будет только один буфер со стилем рисования DRAW_HISTOGRAM. 
  3. ...

 

//+------------------------------------------------------------------+
//|                                                            1.mq4 |
//|                        Copyright 2016, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
#property indicator_chart_window
#property indicator_buffers 1
#property indicator_plots   1
//--- plot DRAW_HISTOGRAM
#property indicator_label1  "DRAW_HISTOGRAM"
#property indicator_type1   DRAW_LINE
#property indicator_color1  clrRed
#property indicator_style1  STYLE_SOLID
#property indicator_width1  1
//--- input parameters
input int      DRAW_HISTOGRAM;
//--- indicator buffers
double         DRAW_HISTOGRAMBuffer[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   SetIndexBuffer(0,DRAW_HISTOGRAMBuffer);
   
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
//---
   
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+

создал, далее... 


Автоматический трейдинг и тестирование торговых стратегий
Автоматический трейдинг и тестирование торговых стратегий
  • www.mql5.com
MQL5: язык торговых стратегий для MetaTrader 5, позволяет писать собственные торговые роботы, технические индикаторы, скрипты и библиотеки функций
 

Код нужно вставлять в сообщения на форуме правильно: Правильно вставляем код на форуме - так улучшается читабельность (исправьте, пожалуйста своё сообщение).

Далее, у индикатора два основных состояния работы:

  1. Первоначальная загрузка или когда изменилась история (история могла изменится на сервере или подкачались новые данные) - при этом параметр OnCalculate=0;
  2. Обычная работа - когда все бары просчитаны и нужно только пересчитать самый свежий бар
А теперь самое интересное - Вы пишите на MQL4 - но в "4" нет такого стиля "DRAW_HISTOGRAM". Этот стиль доступен только тем, кто пишет на MQL5. Поэтому исправляйте своё сообщение выше (вставьте код правильно) и пишите на MQL5.
 
jacksson2012yan:

помогите написать простой индикатор , по свечам , на вид который должен быть похож на индикатор MACD, минутный и часовой

все очень просто если свеча медвежья то -1 , если бычья то +1 , и суммирование значений, пример графика сделал в экселе

пример

свечарезультатсумма
 бык   1   1
 мишка  -1    0
 мишка  -1  -1
бык   1   0

 

 

 

то есть вы хотите складывать показатели часовых и минутных свечек..дело благое, да вот только

пока свеча не закрылась, она какая  - бычья или медвежья?

 
jacksson2012yan:

 


создал, далее... 


Это пустой шаблон. Вам помощь нужна или что бы за вас все написали?