Ваши вопросы по языку MQL4

35aleks

Активный участник
может кто подсказать как сделать что бы запоминал 5 последних уровней и при появлении новых перезаписывал оставляя в работе только 5.
и как потом их вытаскивать при подходе цены
 

Ugar

Гуру форума
может кто подсказать как сделать что бы запоминал 5 последних уровней и при появлении новых перезаписывал оставляя в работе только 5.
и как потом их вытаскивать при подходе цены
static double bid[5];
ArrayCopy(bid,bid,1,0,4);
bid[0]=Bid;

Последняя цена будет в 0 элементе массива bid, предпоследняя в 1, пред предпоследняя в 2...
 

35aleks

Активный участник
static double bid[5];
ArrayCopy(bid,bid,1,0,4);
bid[0]=Bid;

Последняя цена будет в 0 элементе массива bid, предпоследняя в 1, пред предпоследняя в 2...

ArrayCopy(bid,bid,1,0,4);
можете расшифровать все пять значений бид, бид, 1, 0, 4
первая строка что будет массив из 5 значений
а третья что последние значения переписываем
 

Ugar

Гуру форума
ArrayCopy(bid,bid,1,0,4);
можете расшифровать все пять значений бид, бид, 1, 0, 4
первая строка что будет массив из 5 значений
а третья что последние значения переписываем
ArrayCopy(bid,bid,1,0,4);
Это функция копирования данных из массива в массив
bid - Имя массива приёмника
bid - Имя массива источника
1 - начальный индекс массива приёмника
0 - начальный индекс массива источника
4 - количество элементов массива.
Получается сдвиговый регистр. Информация в 4 ячейках массива сдвигается на 1 элемент.
Что было в 0 элементе копируется в 1, что было в 1 копируется в 2, что было в 2 копируется в 3, что было в 3 копируется в 4.
 

AlexeyVik

Программист mql4 mql5
ArrayCopy(bid,bid,1,0,4);
можете расшифровать все пять значений бид, бид, 1, 0, 4
первая строка что будет массив из 5 значений
а третья что последние значения переписываем
А в документации всё красиво расписано. Наступи крыской на ArrayCopy и нажми F1
 
  • Like
Реакции: Ugar

35aleks

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

Walle2323

Активный участник
Здравствуйте, проверьте пожалуйста код.
PHP:
void QWERT()
  {


   for(int i=0; i<=500; i++)
     {
      Print("Номер = ",i);
     }

  }
У меня не все значения переменной i выводит.
При отладке все ОК.
o_o
 
Последнее редактирование:

RoboMaks

Элитный участник
Подскажите как вывести и увидеть все значения.

Интересненький ребус... :) До 200 выводит начальные правильно, с нуля.
Выше 200 - начинает съедать начальные. И то - с условием что задаём не просто int, а static int. При простом int выдаёт всё вперемешку, при статичном - порядок правильный. Не приходилось сталкиваться... :)
Очередной глюк МТ ? И так же он и ордера считает ( или ещё какие-нибудь нужные параметры в коде ??? Интярессненнько...:laugh:
 

_SERG_

Активный участник
Но ведь до 200 идёт правильно ( и то - при статичном) ? При простом инт и 100 перемешивает... Даже 10 выше 200 задай - уже режет...
Допиши ведение лога в свой код, потом прочешем.

(Ну, типа, открыть файл, записать в него,(указатель перед следующей записью предвинуть.) закрыть, а потом глазами посмотреть и в сознании понять.)

RoboMaks, а про глюки ты с Ренатом перетрёшь.
Или с их сервисдеском.

PS
А то, что программист, хорошо.
 
Последнее редактирование:

Walle2323

Активный участник
Интересненький ребус... :) До 200 выводит начальные правильно, с нуля.
Выше 200 - начинает съедать начальные. И то - с условием что задаём не просто int, а static int. При простом int выдаёт всё вперемешку, при статичном - порядок правильный. Не приходилось сталкиваться... :)
Очередной глюк МТ ? И так же он и ордера считает ( или ещё какие-нибудь нужные параметры в коде ??? Интярессненнько...:laugh:
Вот и я о том же.;)
 

djasper

Интересующийся
Здарова ребята. Помогите закодить элементарную функцию для совы с такими условиями:
если минимумы последних N свечей равны или отличаются на 3 пункта -- то true, если условие не соблюдается то false.
 

Ugar

Гуру форума
Здарова ребята. Помогите закодить элементарную функцию для совы с такими условиями:
если минимумы последних N свечей равны или отличаются на 3 пункта -- то true, если условие не соблюдается то false.
Перебирай в цикле N баров и сравнивай их минимумы.
Только, для начала, определись от минимума какой из N свечей надо отмерять 3 пункта.
 

djasper

Интересующийся
Перебирай в цикле N баров и сравнивай их минимумы.
Только, для начала, определись от минимума какой из N свечей надо отмерять 3 пункта.
В теории я представляю как делать, но вот на практике никак не допру. Мне бы шаблончик или пример.
 

поручик

Гость
Глянь этот код
 

Вложения

  • USDCHFM30нг6кр.png
    USDCHFM30нг6кр.png
    42,7 КБ · Просмотры: 30
  • 3 Candles E= HL.mq4
    2,4 КБ · Просмотры: 29
Верх