Вопросы новичка в MQL5. Профи не проходите мимо. - страница 8

 

Помогите получить тикет единственного отложенного ордера. Вот так не работает:

      Print("количество ордеров ",OrdersTotal());
      if(OrderGetTicket(1))
     {
      Print("тикет ",OrderGetInteger(ORDER_POSITION_ID)); 
     }
 
ascerdfg:

Помогите получить тикет единственного отложенного ордера. Вот так не работает:

Нумерация списка ордеров начинается с нуля, а не единицы.
 
Vasiliy Pushkaryov:
Нумерация списка ордеров начинается с нуля, а не единицы.

Я ноль тоже пробовал.

 
ascerdfg:

Помогите получить тикет единственного отложенного ордера. Вот так не работает:

А почему не проводите проверку, что именно Вы получили?

Запустите пример из справки OrderGetTicket - это скрипт:

void OnStart() 
  { 
//--- переменные для получения значений из свойств ордера 
   ulong    ticket; 
   double   open_price; 
   double   initial_volume; 
   datetime time_setup; 
   string   symbol; 
   string   type; 
   long     order_magic; 
   long     positionID; 
//--- количество текущих отложенных ордеров 
   uint     total=OrdersTotal(); 
//--- пройдем в цикле по всем ордерам 
   for(uint i=0;i<total;i++) 
     { 
      //--- получим тикет ордера по его позиции в списке 
      if((ticket=OrderGetTicket(i))>0) 
        { 
         //--- получим свойства ордера 
         open_price    =OrderGetDouble(ORDER_PRICE_OPEN); 
         time_setup    =(datetime)OrderGetInteger(ORDER_TIME_SETUP); 
         symbol        =OrderGetString(ORDER_SYMBOL); 
         order_magic   =OrderGetInteger(ORDER_MAGIC); 
         positionID    =OrderGetInteger(ORDER_POSITION_ID); 
         initial_volume=OrderGetDouble(ORDER_VOLUME_INITIAL); 
         type          =EnumToString(ENUM_ORDER_TYPE(OrderGetInteger(ORDER_TYPE))); 
         //--- подготовим и выведем информацию об ордере 
         printf("#ticket %d %s %G %s at %G was set up at %s", 
                ticket,                 // тикет ордера 
                type,                   // тип 
                initial_volume,         // выставленный объем 
                symbol,                 // символ, по которому выставили 
                open_price,             // указанная цена открытия 
                TimeToString(time_setup)// время установки ордера 
                ); 
        } 
     } 
//--- 
  }
 
Print("тикет ",OrderGetTicket(0));
Вот так заработало!
 

Добрый день! Хочу получить значение встроенного индекса в МТ5. Скажите, пожалуйста, почему при таком коде я получаю не текущее значение индекса, а просто "10" и это значение не меняется со временем. Менял входные данные, но всё тоже самое ... 

void OnTick()
{
   double dblMA = iMA ( "EuZ3" , PERIOD_M1 , 12 , 0 , MODE_SMA , PRICE_MEDIAN ) ; 
   Comment( "\n  Значение МАшки: ", DoubleToString ( dblMA , _Digits ) ) ; 
}
Файлы:
wffadt_gd.png  161 kb
 
Александр #:

Добрый день! Хочу получить значение встроенного индекса в МТ5. Скажите, пожалуйста, почему при таком коде я получаю не текущее значение индекса, а просто "10" и это значение не меняется со временем. Менял входные данные, но всё тоже самое ... 

Вам скопипастить раздел документации сюда или просто послать в документацию?

 
Alexey Viktorov #:

Вам скопипастить раздел документации сюда или просто послать в документацию?

Будьте добры нужный раздел. Я просто не понимаю в чём ошибка.

И своими словами тоже было бы здорово ) 

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

Запустил пример из справочника. Он также не даёт значение, только число обновлений этого значения. 

 
Александр #:

Будьте добры нужный раздел. Я просто не понимаю в чём ошибка.

И своими словами тоже было бы здорово ) 

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

Читайте внимательно…

Возвращает хэндл индикатора скользящего среднего.

10 это хендл индикатора, а значение можно получить функцией CopyBuffer
Документация по MQL5: Доступ к таймсериям и индикаторам / CopyBuffer
Документация по MQL5: Доступ к таймсериям и индикаторам / CopyBuffer
  • www.mql5.com
CopyBuffer - Доступ к таймсериям и индикаторам - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Alexey Viktorov #:

Читайте внимательно…

10 это хендл индикатора, а значение можно получить функцией CopyBuffer
Благодарю, Алексей! Всё заработало ))) 
Причина обращения: