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

 
Alexey Viktorov #:
Было совершенно наоборот. В OnDeInit() циклом не успевал советник удалить все объекты. Это обсуждалось здесь на форуме. Решение однозначно, удалять все по префиксу…

А по префиксу разве без цикла?

 
Valeriy Yastremskiy #:

А по префиксу разве без цикла?

int  ObjectsDeleteAll( 
   long           chart_id,   // идентификатор графика 
   const string     prefix,   // префикс имени объекта 
   int       sub_window=-1,   // индекс окна 
   int      object_type=-1    // тип объекта для удаления 
   );
ObjectsDeleteAll - Графические объекты - Справочник MQL4
ObjectsDeleteAll - Графические объекты - Справочник MQL4
  • docs.mql4.com
ObjectsDeleteAll - Графические объекты - Справочник MQL4
 
Alexey Viktorov #:

Вот блин... бывает проруха на старуху.

Да, так же делаю. Как правило хорошего тона, ничего лишнего не удалить, только свое)

 
Alexey Viktorov #:
Было совершенно наоборот. В OnDeInit() циклом не успевал советник удалить все объекты. Это обсуждалось здесь на форуме. Решение однозначно, удалять все по префиксу…

именно что было наоборот, ObjectsDeleteAll не успевал всё удалить потому как его прерывал деинит)

а простой цикл удаляет все - терминал ждет программу.


пс. ObjectsDeleteAll - это тот же самый цикл, ничем не отличается от пользовательского.

 
Как работать с файлом в mql5 программе, не записывая файл на диск, а работать только в оперативной памяти, для ускорения. Я хочу из mql5 программы передать данные, программе на своём компьютере.
 
pribludilsa #:
Как работать с файлом в mql5 программе, не записывая файл на диск, а работать только в оперативной памяти, для ускорения. Я хочу из mql5 программы передать данные, программе на своём компьютере.

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

 
Alexey Viktorov #:

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

спасибо.
 
Valeriy Yastremskiy #:

Лучше сразу причину указывать, про смещение, хорошо дочитал, хотел написать) 

На то и рассчитывал - либо человек сам захочет подумать о причине, либо кто-либо ещё второй (третий, пятый) раз скажет человеку - оно так доходчивей (особенно, если человек сам захочет разобраться, проявит интерес)

 
Artyom Trishkin #:

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

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

Это из-за того что объекты системно хранятся в массиве?

Если удалять каждую группу объектов циклом отдельно (ArrowDown и ArrowUp), то с графика удаляются корректно.

for(ushort i=0; i < n_arrow_down ; i++) {
      Print("ObjectName ",ObjectName(i),", i-down = ",i);
      ObjectDelete("ArrowDown"+IntegerToString(i, 4, '0'));
    }
    for(ushort i=0; i < n_arrow_up ; i++) {
      Print("ObjectName ",ObjectName(i),", i-up = ",i);
      ObjectDelete("ArrowUp"+IntegerToString(i, 4, '0'));
    }
Притом что вывод работы циклов такой же как в первом случае:
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName , i-up = 21
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName , i-up = 20
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName , i-up = 19
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName , i-up = 18
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName , i-up = 17
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName , i-up = 16
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName , i-up = 15
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName , i-up = 14
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName , i-up = 13
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName , i-up = 12
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName , i-up = 11
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowUp0020, i-up = 10
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowUp0018, i-up = 9
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowUp0016, i-up = 8
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowUp0014, i-up = 7
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowUp0012, i-up = 6
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowUp0010, i-up = 5
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowUp0008, i-up = 4
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowUp0006, i-up = 3
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowUp0004, i-up = 2
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowUp0002, i-up = 1
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowUp0000, i-up = 0
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowUp0017, i-down = 18
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowUp0015, i-down = 17
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowUp0013, i-down = 16
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowUp0011, i-down = 15
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowUp0009, i-down = 14
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowUp0007, i-down = 13
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowUp0005, i-down = 12
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowUp0003, i-down = 11
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowUp0001, i-down = 10
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowDown0018, i-down = 9
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowDown0016, i-down = 8
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowDown0014, i-down = 7
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowDown0012, i-down = 6
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowDown0010, i-down = 5
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowDown0008, i-down = 4
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowDown0006, i-down = 3
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowDown0004, i-down = 2
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowDown0002, i-down = 1
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowDown0000, i-down = 0
 
MakarFX #:
А зачем тебе удаление через цикл?
Не знал что есть ObjectsDeleteAll, а теперь хочу докопаться до истины.
Причина обращения: