Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 1634

 
makssub #:

Напишите пример, а то уже немного запутался. Если не сложно. Спасибо

в цикле перебора ордеров:

if (OrderOpenPrice()<previous_value)
   {
   previous_value=OrderOpenPrice();
   nearest_order=OrderTicket();
   }

перед циклом инициализируем previous_value=DBL_MAX a nearest_order=0

 
Taras Slobodyanik #:

в цикле перебора ордеров:

перед циклом инициализируем previous_value=DBL_MAX a nearest_order=0

Точно. Спасибо. Работает

 
Taras Slobodyanik #:

в цикле перебора ордеров:

перед циклом инициализируем previous_value=DBL_MAX a nearest_order=0

DBL_MAX категорично так.)
 
Valeriy Yastremskiy #:
DBL_MAX категорично так.)

Главное работает)

Как найти OP_BUY с максимальным OrderOpenPrice и определить его  OrderProfit. 
Ни как не могу сложить их вместе, все работает через жо... Если можно сразу пример) Спасибо)

 
makssub #:

Главное работает)

Как найти OP_BUY с максимальным OrderOpenPrice и определить его  OrderProfit. 
Ни как не могу сложить их вместе, все работает через жо... Если можно сразу пример) Спасибо)

previous_value=0;

if (OrderOpenPrice()>previous_value)
   {
   previous_value=OrderOpenPrice();
   profit_order=OrderProfit();
   }
 
MakarFX #:

Только хотел отписать, что все сделал.

Но у Вас все по компактнее получилось. Беру Ваш вариант)

Спасибо

 
Как работать с файлом в mql5 программе, не записывая файл на диск, а работать только в оперативной памяти, для ускорения. Я хочу из mql5 программы передать данные, программе на своём компьютере. Без сетевых функций можно как то? Не обязательно файл, массив или переменная можно, даже так лучше. Я знаю только два способа, модуль интеграции питон и веб сокет, а еще можно как то?
 

Удаляю в OnDeInit() все объекты циклом (стрелки обозначающие сигнальные бары и одну кнопку):

const int obj_total=ObjectsTotal();

Print("ObjectsTotal ",obj_total);

for(int i=0 ; i < obj_total ; i++){
 Print("ObjectName ",ObjectName(i),", i = ",i);
 ObjectDelete(ObjectName(i));
}

Я в курсе что есть ObjectsDeleteAll(), но все же если делать через цикл, то удаляется только половина объектов через один. Собственно вот работа цикла и я не пойму почему так происходит:

2021.09.30 04:47:30.462    2021.01.04 03:56:45  test EURUSD,M1: ObjectName , i = 20
2021.09.30 04:47:30.462    2021.01.04 03:56:45  test EURUSD,M1: ObjectName , i = 19
2021.09.30 04:47:30.462    2021.01.04 03:56:45  test EURUSD,M1: ObjectName , i = 18
2021.09.30 04:47:30.462    2021.01.04 03:56:45  test EURUSD,M1: ObjectName , i = 17
2021.09.30 04:47:30.462    2021.01.04 03:56:45  test EURUSD,M1: ObjectName , i = 16
2021.09.30 04:47:30.462    2021.01.04 03:56:45  test EURUSD,M1: ObjectName , i = 15
2021.09.30 04:47:30.462    2021.01.04 03:56:45  test EURUSD,M1: ObjectName , i = 14
2021.09.30 04:47:30.462    2021.01.04 03:56:45  test EURUSD,M1: ObjectName , i = 13
2021.09.30 04:47:30.462    2021.01.04 03:56:45  test EURUSD,M1: ObjectName , i = 12
2021.09.30 04:47:30.462    2021.01.04 03:56:45  test EURUSD,M1: ObjectName , i = 11
2021.09.30 04:47:30.462    2021.01.04 03:56:45  test EURUSD,M1: ObjectName button1, i = 10
2021.09.30 04:47:30.462    2021.01.04 03:56:45  test EURUSD,M1: ObjectName ArrowUp0008, i = 9
2021.09.30 04:47:30.462    2021.01.04 03:56:45  test EURUSD,M1: ObjectName ArrowUp0006, i = 8
2021.09.30 04:47:30.462    2021.01.04 03:56:45  test EURUSD,M1: ObjectName ArrowUp0004, i = 7
2021.09.30 04:47:30.462    2021.01.04 03:56:45  test EURUSD,M1: ObjectName ArrowUp0002, i = 6
2021.09.30 04:47:30.462    2021.01.04 03:56:45  test EURUSD,M1: ObjectName ArrowUp0000, i = 5
2021.09.30 04:47:30.462    2021.01.04 03:56:45  test EURUSD,M1: ObjectName ArrowDown0008, i = 4
2021.09.30 04:47:30.462    2021.01.04 03:56:45  test EURUSD,M1: ObjectName ArrowDown0006, i = 3
2021.09.30 04:47:30.462    2021.01.04 03:56:45  test EURUSD,M1: ObjectName ArrowDown0004, i = 2
2021.09.30 04:47:30.462    2021.01.04 03:56:45  test EURUSD,M1: ObjectName ArrowDown0002, i = 1
2021.09.30 04:47:30.462    2021.01.04 03:56:45  test EURUSD,M1: ObjectName ArrowDown0000, i = 0
2021.09.30 04:47:30.462    2021.01.04 03:56:45  test EURUSD,M1: ObjectsTotal 21
 
Nerd Trader #:

Удаляю в OnDeInit() все объекты циклом (стрелки обозначающие сигнальные бары и одну кнопку):

Я в курсе что есть ObjectsDeleteAll(), но все же если делать через цикл, то удаляется только половина объектов через один. Собственно вот работа цикла и я не пойму почему так происходит:

Цикл при удалении должен быть обратным:

for(int i=obj_total-1; i>=0; i--)

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

 
Nerd Trader #:

Удаляю в OnDeInit() все объекты циклом (стрелки обозначающие сигнальные бары и одну кнопку):

Я в курсе что есть ObjectsDeleteAll(), но все же если делать через цикл, то удаляется только половина объектов через один. Собственно вот работа цикла и я не пойму почему так происходит:

а если так попробовать - только вам нужно, все имена вписать  

string   m_name[]= {"button1","ArrowUp0008","ArrowDown0008","ArrowUp0006","ArrowDown0006"};
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   for(int i=0; i<ArraySize(m_name); i++)
     {
      ObjectDelete(0,m_name[i]);
     }
//---
  }
//+------------------------------------------------------------------+
Причина обращения: