Индикатор без графиков

 

Здравствуйте! Очень долго искал по документации интересующую информацию, но так и не разобрался. 

Подскажите, пожалуйста, где посмотреть следующую информацию:

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

https://www.mql5.com/ru/articles/100 - это пошаговая инструкция для написания советника. Проблема возникает сразу - нужен свой индикатор, а не уже существующий.

2. Я примерно понимаю как писать условия для советника (если индикатор больше указанного значения, то покупаем, если меньше - продаем). Но совсем не понимаю откуда брать исходные значения (нужны только стоимости акций и временные отрезки).

Знания по программированию отсутствуют, но есть желание разобраться хотя бы в самом элементарном.

 

Текущая цена это Bid и Ask 

например текущая цена текущего бара еще можно так: Close[0]

предыдущая цена цена какая? их 4 или предыдущая, всмысле прошлая предпоследняя? 

Open[]Close[]Low[]High[] 

тогда так:

  1. создаем переменную прошлой цены
  2. опрашиваем текущую цену,
  3. записываем в прошлую,
  4. делим 

 

double lastPrice=1;

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

  {

double currentPrice=Bid;

double Result= currentPrice/lastPrice;

lastPrice= currentPrice;

   return(rates_total);



}
 
Vit4zzz:

Здравствуйте! Очень долго искал по документации интересующую информацию, но так и не разобрался. 

Подскажите, пожалуйста, где посмотреть следующую информацию:

1. Как написать свой индикатор?

Статьи по MQL5: Индикаторы
Статьи по MQL5: Индикаторы
  • www.mql5.com
Статьи по программированию на языке MQL5
 
Vladislav Andruschenko:


предыдущая цена цена какая? их 4 или предыдущая, всмысле прошлая предпоследняя? 

double currentPrice=Bid;

 

Да, я имел в виду цену закрытия.


попробовал, выдал ошибку 'Bid' - undeclared identifier. Почитал, написано, что это из-за того, что Ваш код для mql4. Где я могу почитать про перенос этого кода в mql5?

 

Или лучше сначала на mql4 научиться? 


 
Vit4zzz:

Да, я имел в виду цену закрытия.


попробовал, выдал ошибку 'Bid' - undeclared identifier. Почитал, написано, что это из-за того, что Ваш код для mql4. Где я могу почитать про перенос этого кода в mql5?

 

Или лучше сначала на mql4 научиться? 


Нужно сразу учить MQL5. Здесь даже без вариантов.

Сразу уточните - что такое "... предыдущая цена ..."? 

 
Vit4zzz:

Да, я имел в виду цену закрытия.


попробовал, выдал ошибку 'Bid' - undeclared identifier. Почитал, написано, что это из-за того, что Ваш код для mql4. Где я могу почитать про перенос этого кода в mql5?

 

Или лучше сначала на mql4 научиться? 


Не надо MQL4, он умирает.

На MQL5 проще всего работать через готовые классы стандартной библиотеки

Раз пишете, что в программировании вы ноль, просто копируйте и все, потом поймете

#include <trade\SymbolInfo.mqh>
CSymbolInfo si;

//где-то в индюке
si.Name("EURUSD"); // задали символ
// или так задали текущий символ на чарте
si.Name(_Symbol);
si.RefreshRates(); // обновили информацию о символе
double Bid = si.Bid();
double Ask = si.Ask();

//**************************

Или можно просто через функцию, см. в справке
SymbolInfoTick

Возвращает текущие цены  для указанного символа в переменной типа MqlTick.

bool  SymbolInfoTick(
   string    symbol,     // символ
   MqlTick&  tick        // ссылка на структуру
   );


 ***

 
Vit4zzz:

Да, я имел в виду цену закрытия.


попробовал, выдал ошибку 'Bid' - undeclared identifier. Почитал, написано, что это из-за того, что Ваш код для mql4. Где я могу почитать про перенос этого кода в mql5?

 

Или лучше сначала на mql4 научиться? 


Bid он и в Африке и в 7 метатрейдере будет Bid  ,  просто в мт5 его надо вызывать по другому. 

При чем тут мт4 код и он умирает?  Цена закрытия бара, цена спроса и деление будет работать в любом языке.