Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 2401

 
Andrei Sokolov #:

Но на более малом тф в это время то-же есть цены открытия. Я бы еще понял если бы не работало когда наоборот, но когда наоборот работает.

Промежуточные бары - это будут тики, а их нет по условиям настройки оптимизатора. Просто выбирайте подходящий Вам режим, согласно задумкам разработчиков :)

 
Как найти угол между ценой N назад и текущей ценой? 
 
Ivan Butko #:
Как найти угол между ценой N назад и текущей ценой? 

https://www.mql5.com/ru/forum/49141/page4

Как определить угол наклона прямой? - Используйте инструмент, о котором речь на скриншоте.
Как определить угол наклона прямой? - Используйте инструмент, о котором речь на скриншоте.
  • 2022.11.24
  • trader6_1
  • www.mql5.com
Где здесь Оставляю в стороне вопрос квадратности пикселов - далеко не всегда это так И я с критиками совершенно согласен. то можно нарисовать или добавить с координатами нужной линии. затем выделить и на крайние узловые точки веера нанести квадрат
 
Ivan Butko #:
Как найти угол между ценой N назад и текущей ценой? 

никак. углов нет

 
Ivan Butko #:
Как найти угол между ценой N назад и текущей ценой? 


atan(текущая цена - N_цена) / N_баров)*180/M_PI
 
Tretyakov Rostyslav #:


Благодарю
 
Ivan Butko #:
Благодарю

Без масштабирования Вас результат наверное не устроит.

Сам недавно с этим боролся.

 
Tretyakov Rostyslav #:

Без масштабирования Вас результат наверное не устроит.

Сам недавно с этим боролся.

Мне главное уложить получаемые числа в живенький диапазон, чтобы скормить нейросети
 
#property indicator_buffers 1  // кол-во буферов
#property indicator_plots   1  // кол-во графических серий
#property indicator_label1  "iMDMS-6" //метка индикатора
#property indicator_type1   DRAW_LINE // Вид графического построения
#property indicator_color1  clrChocolate // цвета для графического построения
#property indicator_style1  STYLE_SOLID //стиль линии отрисовки
#property indicator_width1  2 //толщина отрисовки
#property indicator_level1        0

input int                 iPeriod     = 10;

double  cBufferCandleUp[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {

   SetIndexBuffer(0, cBufferCandleUp, INDICATOR_DATA);

   PlotIndexSetInteger(0,PLOT_DRAW_BEGIN,iPeriod);

   ArraySetAsSeries(cBufferCandleUp, false);

   ArrayInitialize(cBufferCandleUp, 0);

   ResetLastError();

   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[]
               )
  {

   for(int i=rates_total-1; i>iPeriod; i--)
     {
      double calc = 0;

      for(int j = 0; j<=iPeriod; j++)
         calc += (close[i]-open[i])/(close[i-iPeriod]-open[i-iPeriod]);
      //---
      cBufferCandleUp[i] = calc/iPeriod*10000;
     }
   return(rates_total);
  }
//+------------------------------------------------------------------+

//+------------------------------------------------------------------+

Уважаемые Гуру-программирования в MQL! Помогите разобраться, в чем моя ошибка!

Выше приведен код выдуманного индикатора. Сам код вроде бы работает, но при добавлении на данный индикатор скользящей средней в терминале МТ5 - MA кажет совершенно не понятные значения.


 

При изменении в нижеследующем вычислении оператора  с "/" на " * " ,  или " + " ,    или " - "  - все работает.

 

calc += (close[i]-open[i])/(close[i-iPeriod]-open[i-iPeriod]);

 Кто подскажет в чем причина ?