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

 
Boris.45:
  Добрый день.   Написал советник на МТ5, который хотел использовать для автоматического поиска нужных  паттернов и ручного открытия позиций. Т.е. в советнике нет торговых функций. Моя проблемма в том, что я не могу установить этот советник на график.   В советнике нет обращений к индикаторам. Все индикаторы написаны в программе. Произвел компиляцию, а затем прогнал в тестере стратегий. Все без проблем. Ставлю советник на график, даю разрешение на торговлю на мониторе, в настройках и в появляющемся окошке самого советника. На ценовом графике вместо смайлика с рожицей появляется иконка советника, а на ней зеленый кружок, внутри которого  белый треугольничек. Пробовал эту процедуру несколько раз, результаты прежние. Менял на ценовом графике периоды, на мониторе появляется сообщение из функции OnDeinit(), т.е. одна свеча обрабатывается в программе и работа прекращается.

   Заглянул в журнал:

              -  при одной из попыток установки советника программа выдала сообщение о смене  Профиля;

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

С профилями я когда-то работал: увеличивал число профилей, на каждом профиле устанавливал свои графики. Если что-то и нарушил там, то этого я, к сожалению, не знаю. Не знаю и что там надо нарушить, чтобы пограмма выдала сообщение о смене профиля. Хотя может быть сбой идет и по другой причине. Мне это не понятно.

   Сегодня ради пробы  создал новый советник (шаблон),  в функциях OnInit(), OnDeinit(const int reason),  OnTick() ничего не записал и попробовал поставить этот советник на график и разрешить торговлю.

Получилась прежняя ситуация.

     Помогите пож. разобраться с ситуацией.      Спасибо !!!!!!

Давайте по порядку. Вот шаблон: 

//+------------------------------------------------------------------+
//|                                                         Test.mq5 |
//|                              Copyright © 2016, Vladimir Karputov |
//|                                           http://wmua.ru/slesar/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2016, Vladimir Karputov"
#property link      "http://wmua.ru/slesar/"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   
  }
//+------------------------------------------------------------------+
//| Trade function                                                   |
//+------------------------------------------------------------------+
void OnTrade()
  {
//---
   
  }
//+------------------------------------------------------------------+

Прикрепите его на график и скриншот графика в студию, а также записи из вкладок "Журнал" и "Советники" (если они там появятся). 

Файлы:
Test.mq5  2 kb
 
тут я так понимаю тоже профессионалы отсутствуют. жаль......
 
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:

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

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