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

 
Karputov Vladimir:

Перенесено:

Георгий:

Подскажите, пожалуйста, такой момент:

1. Работает советник + индикатор

2. Разрывается связь с сервером и вся отрисовка индикатора пропадает, непосредственно данные, которые он предоставляет, остаются.

Не могли бы подсказать, где про это можно почитать и/или что происходит при потери соединения, почему отрисовка пропадает, а данные остаются. Можно ли отрисовку еще раз прорисовать?

Заранее спасибо! 

Начните с индикатора - а  именно, с того, что происходит в функции OnCalculate(), когда параметр "rates_total" равен "0":

Первый параметр rates_total содержит количество баров, доступных индикатору для расчета, и соответствует количеству баров, доступных на графике.

Необходимо отметить связь между значением, возвращаемым функцией OnCalculate() и вторым входным параметром prev_calculated. Параметр prev_calculated при вызове функции содержит значение, которое вернула функция OnCalculate() на предыдущем вызове. Это позволяет реализовать экономные алгоритмы расчета пользовательского индикатора с тем, чтобы избежать повторных расчетов для тех баров, которые не изменились с предыдущего запуска этой функции.

Для этого обычно достаточно вернуть значение параметра rates_total, которое содержит количество баров при текущем вызове функции. Если с момента последнего вызова функции OnCalculate() ценовые данные были изменены (подкачана более глубокая история или были заполнены пропуски истории), то значение входного параметра prev_calculated будет установлено в нулевое значение самим терминалом. 

[Удален]  
Karputov Vladimir:

Если про кнопки - то вот пример из справки:

 Обратите внимание: кнопки "Button1" и "Button2" - не фиксируемые, а вот кнопка "Button3" - фиксируемая.

Не совсем удачный пример:

1 потому что библиотеки

2 потому что сделано панелью

3 потому что не пониме.   

Вот я набросал две кнопки одна фиксируется , а другую надо  расфиксировать - " Добавить" которую надо расколдовать 

//+------------------------------------------------------------------+
//|                                                         0000.mq5 |
//|                        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"
bool stop_trading; 
 
int OnInit()
{//--- Создание Фиксированной кнопки "Старт-Стоп"
  if( !ObjectCreate( 0, "stop_button", OBJ_BUTTON, 0, 0, 0 ) )
  { MessageBox( "Кнопка 'Старт-стоп' не создана!", "Ошибка", MB_OK | MB_ICONHAND );return( INIT_FAILED );}
  else
  {ObjectSetInteger( 0, "stop_button", OBJPROP_CORNER, CORNER_RIGHT_LOWER );
  ObjectSetInteger( 0, "stop_button", OBJPROP_XDISTANCE, 60 );
  ObjectSetInteger( 0, "stop_button", OBJPROP_YDISTANCE, 20 );
  ObjectSetInteger( 0, "stop_button", OBJPROP_XSIZE, 60 );
  ObjectSetInteger( 0, "stop_button", OBJPROP_YSIZE, 20 );
  if ( stop_trading )
    {ObjectSetInteger( 0, "stop_button", OBJPROP_BGCOLOR,clrMagenta);
    ObjectSetInteger( 0, "stop_button", OBJPROP_STATE, true );
    ObjectSetString( 0, "stop_button", OBJPROP_TEXT, "Старт" );}
    else
    {ObjectSetInteger( 0, "stop_button", OBJPROP_BGCOLOR, clrMediumSeaGreen);
    ObjectSetInteger( 0, "stop_button", OBJPROP_STATE, false );
    ObjectSetString( 0, "stop_button", OBJPROP_TEXT, "Стоп" );}  } 

 //--- Создание Нефиксированной кнопки "Добавить 
  if( !ObjectCreate( 0, "Add", OBJ_BUTTON, 0, 0, 0 ) ) 
  {   Print( "Кнопка 'Добавить' не создана!" );return( INIT_FAILED ); } 
  { 
    ObjectSetInteger( 0, "Add", OBJPROP_CORNER, CORNER_RIGHT_LOWER );
    ObjectSetInteger( 0, "Add", OBJPROP_XDISTANCE, 140 );         //--- установим координаты кнопки            
    ObjectSetInteger( 0, "Add", OBJPROP_YDISTANCE, 20 );
    ObjectSetInteger( 0, "Add", OBJPROP_XSIZE,80);                //--- установим размер кнопки
    ObjectSetInteger( 0, "Add", OBJPROP_YSIZE, 20); 
   //---
    ObjectSetInteger( 0, "Add", OBJPROP_BGCOLOR, clrWhite );      //--- установим цвет фона
    ObjectSetInteger( 0, "Add", OBJPROP_STATE, false );            //--- переведем кнопку в состояние false
    ObjectSetString( 0, "Add", OBJPROP_TEXT, "Добавить" );        //--- установим текст  
    
     
  }  
  return( INIT_SUCCEEDED );
}
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit( const int reason )
{
//--- Удаление кнопки старт-стоп
  ObjectDelete( 0, "stop_button"  ); 
//--- Удаление кнопки Добавить
  ObjectDelete( 0, "Add" );  
}
//+------------------------------------------------------------------+
//| Expert Chart event function                                      |
//+------------------------------------------------------------------+
void OnChartEvent( const int id, const long& lparam, const double& dparam, const string& sparam )
{
  long b_state; 
  long f_state;
//---  
  if( id == CHARTEVENT_OBJECT_CLICK )
  {
    if ( sparam == "stop_button" )
    {
      if ( ObjectGetInteger( 0, "stop_button", OBJPROP_STATE, 0, b_state ) )
      {
        if ( b_state == 1 ) 
        {
          stop_trading = true;
          ObjectSetInteger( 0, "stop_button", OBJPROP_BGCOLOR, clrMagenta);
          ObjectSetString( 0, "stop_button", OBJPROP_TEXT, "Старт" );
        }
        else
        {
          stop_trading = false;
          ObjectSetInteger( 0, "stop_button", OBJPROP_BGCOLOR,clrMediumSeaGreen );
          ObjectSetString( 0, "stop_button", OBJPROP_TEXT, "Стоп" );
        }
      }
      
    }
     
  }
  
  ChartRedraw(ChartID());

   //--Создание Нефиксированной кнопки "Добавить
    
 if(id==CHARTEVENT_OBJECT_CLICK) // НАЖАТ ГРАФИЧЕСКИЙ ОБЪЕКТ       
         if ( sparam == "Add" )// Нажата кнопка
         {
      if ( ObjectGetInteger( 0, "Add", OBJPROP_STATE, 0, f_state ) ) 
      {
        if (f_state == 1 ) 
        
        {
         // то, что то =true; здесь можно выбирать цвет /текст и т.д до нажатия
         //---
          ObjectSetInteger( 0, "Add", OBJPROP_BGCOLOR,clrWhite ); //цвет кнопки
          ObjectSetString( 0, "Add", OBJPROP_TEXT, "Добавить" );  // текст кнопки          
        }
         else
        {
          // то ,что то равно false;
          //---здесь можно изменять цвет /текст  и т.д после нажатия 
         // ObjectSetInteger( 0, "Add", OBJPROP_BGCOLOR,clrMediumSeaGreen );//цвет кнопки
        //  ObjectSetString( 0, "Add", OBJPROP_TEXT, "Добавить" ); // текст кнопки  
        
        }
 ChartRedraw(ChartID());

   }
  
}
 return;  
  
} 
 
как присоединиться к управляющему?
 
coon:
как присоединиться к управляющему?
Вот инструкция: Как подписаться на сигналы
 

мммм, есть управляющий, вижу эффективность его работы, хочу "вложиться".

 пс - сори, я-чайник. 

 
coon:

мммм, есть управляющий, вижу эффективность его работы, хочу "вложиться".

 пс - сори, я-чайник. 

 

Благодарю, изучу.

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

А так хотелось....

Есть варианты? Сделал заявку на присоединение, заполнил доки, внес $ и все? 

 
coon:

Благодарю, изучу.

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

А так хотелось....

Есть варианты? Сделал заявку на присоединение, заполнил доки, внес $ и все? 

Посмотрите обучающее видео: Смотри обучающее видео по сигналам на YouTube

Для оформления платной подписки нужно вносить деньги на MQL5.аккаунт. Подробнее о сигналах в теме: FAQ по сервису Сигналы

Витрина торговых сигналов в MetaTrader 4/5
Витрина торговых сигналов в MetaTrader 4/5
  • 2015.03.09
  • www.youtube.com
Как выбрать торговый сигнал в платформе MetaTrader и подписаться на него за пару кликов? Очень просто, смотри наше видео и ты узнаешь все о торговых сигналах.
[Удален]  

Ах. Шалите мальчишки! Ах. Как шалите.

Роботы, тестеры, автоматические стратегии. Автоматические торговые системы. На конец.

Предположим есть они у Вас! Вы к ним подключились или они к Вам. Не важно. Ну если они здесь! У Вас! То как вы этим система сможете объяснить, чего Вы хотите??? Ну там желания. Ах. Как Хочууу!!! Или, к примеру люблю я роботов контролировать. Да задание. Пускай работает когда я в сети! Ах.

[Удален]  

Или? Прикажете роботу. Продавать если цена достигла 1,01235? Наверное тогда Вы уже управляете системой, как робот?

Или как система? Зачем тогда робот? Ах как хочу Робота. Маленького, не капризного. Что б спал со мной, а утром кофе в постель!!!