Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 572

 
Mihail Marchukajtes:
тут я так понимаю тоже профессионалы отсутствуют. жаль......
Так распринтуйте значения моментума с чужого графика в тестере
 
Artyom Trishkin:
Так распринтуйте значения моментума с чужого графика в тестере
Принт показывает то что рисует буфер. Информации ноль. Может кто ни будь дать толковый ответ???? А не непонятные предположения....
 
Mihail Marchukajtes:
Принт показывает то что рисует буфер. Информации ноль. Может кто ни будь дать толковый ответ???? А не непонятные предположения....
Так и вы даёте информации ноль. Где ваш код? Или тут все экстрасенсы что-ли? Тогда вам на форум магов в десятом колене...
 

Коллеги, подскажите, как в заданном диапазоне сравнить параметры свечей??

Как вычислить Максимальную или минимальную величину, я понял.  

Вот код:

void OnTick()

 {

  double H = 0;

    for ( shift = Search_Period; shift >0; shift--) 

  {    

 if (High[shift] > H)

    {  H = High[shift];    }

       Alert (H);  

 Но проблема в том, что он перезаписывает значение переменной.

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

Но как это сделать не представляю (( 

 
Andrey Koldorkin:

Коллеги, подскажите, как в заданном диапазоне сравнить параметры свечей??

Как вычислить Максимальную или минимальную величину, я понял.  

Вот код:

...............

 
Но проблема в том, что он перезаписывает значение переменной.

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

Но как это сделать не представляю (( 

Примерно так:

//+------------------------------------------------------------------+
//|                                                     TestCopy.mq4 |
//|              Copyright 2016, Artem A. Trishkin, Skype artmedia70 |
//|                       https://login.mql5.com/ru/users/artmedia70 |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, Artem A. Trishkin, Skype artmedia70"
#property link      "https://login.mql5.com/ru/users/artmedia70"
#property version   "1.00"
#property strict
#property script_show_inputs
//--- input parameters
input int Search_Period=100;  // Количество копируемых High
int searchPeriod=(Search_Period<1)?1:Search_Period;
double mass_high[][2];        // массив значений High и их времени
MqlRates array[];             // Массив для копирования Open, High, Low, Close, Time
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   int copy_bars=(int)fmin(Search_Period,Bars(Symbol(),Period()));
   if(CopyRates(Symbol(),PERIOD_CURRENT,1,copy_bars,array)>0) {
      double H=0;
      int size_h=0;
      for(int i=0; i<copy_bars; i++) {
         if(array[i].high>H) {
            H=array[i].high;
            size_h++;
            ArrayResize(mass_high,size_h);
            mass_high[size_h-1][0]=H;
            mass_high[size_h-1][1]=(int)array[i].time;
            }
         }
      }
   for(int i=0; i<ArrayRange(mass_high,0); i++) {
      printf("Время: %s, High: %.5f",TimeToString((int)mass_high[i][1],TIME_DATE|TIME_MINUTES),mass_high[i][0]);
      }
  }
//+------------------------------------------------------------------+
 
как записать два разных советника в один?
 
Сергей Зырянов:
как записать два разных советника в один?
с какой целью интересуетесь? А так копируете код из одного советника в другой, только нужно правильно скопировать, если не понимаете как это сделать, закажите во фрилансе.
 
Artyom Trishkin:

Примерно так:

Попробую разобраться. Спасибо.

 
Andrey Koldorkin:

Попробую разобраться. Спасибо.

Не за что. Просто сохраняются в массив все high, а потом в цикле распечатываются в журнале все сохранённые в массиве данные.

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

 
Artyom Trishkin:

Не за что. Просто сохраняются в массив все high, а потом в цикле распечатываются в журнале все сохранённые в массиве данные.

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

я именно это и искал. Мне нужно, было чтобы как-то сохранить данные в массив за тот период, который я выбираю. Эту часть я у вас понял.

Теперь у меня стоит вопрос, КАК обратиться к записанным данным в массиве и сравнить их между собой?

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

Нужно объявить новый счет итераций? и уже как-то извлекать данные и сравнивать их? Но это опять куда-то записывать результаты и ... все в итоге повторяется.

Грубо, если период сравнения 5-7 свечей, то у нас 1я должна быть сравнена с другими 6ю, потом 2я и т.д....  И если из них две или более имеют равную величину High, то нужно во-первых, вычислить этот High, во вторых, их этих свечек найти ту, у которой минимальный Low.  Т.е. нужно обращение к конкретным свечам в итоге, чтобы все их параметры извлечь.

 Можно ли вообще такое сделать.