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

 
Kedrov #:

Привет всем!

Интересен индикатор, показывающий MAX MIN за 3 предыдущих дня.

MAX MIN не каждого дня в отдельности, а за интервал – 3 предыдущих дня.

Может быть попадался в инете или в кладовых завалялся…

Сам искал, честно, - но не нашел…

Может запрос писал неправильно, может что ещё не так, но не нашел. Хотя запросы пробовал писать по разному…

Помогите, пожалуйста!

С уважением

Это в коде сделать вообще не проблема. Тут даже индикатор не нужен - можно просто скриптом обойтись. Как он должен отрисовываться? Как Вы себе это представляете?

К этому посту я приложил 2 скрипта. Скрипт Lines_3_Days создаёт 2 горизонтальные линии и устанавливает их на уровень максимальной и минимальной цены три предшествующие дня. ВНИМАНИЕ! Поскольку скрипт берёт данные с таймфрейма Д1, то перед использованием скрипта нужно открыть таймфрейм Д1 (обновить данные), затем можно кидать скрипт на любой таймфрейм. Если так получилось, что Вы видите, что скрипт установил линии не туда, куда надо, значит Вы забылись и не обновили Д1. Откройте Д1, переключитесь на свой таймфрейм, затем киньте скрипт на график повторно - скрипт подвинет куда надо линии сам. То же самое касается последующег дня. Вчера Вы кинули скрипт на график - он отрисовал линии. Завтра утром у Вас нет нужды удалять вчерашние линии - просто обновитесь по Д1, затем киньте скрипт на график. Скрипт сам переместит линии куда надо.

Скрипт Lines_Delete удаляет линии, созданные предыдущим скриптом.

Файлы:
 
Vitaly Murlenko #:

Это в коде сделать вообще не проблема. Тут даже индикатор не нужен - можно просто скриптом обойтись. Как он должен отрисовываться? Как Вы себе это представляете?

К этому посту я приложил 2 скрипта. Скрипт Lines_3_Days создаёт 2 горизонтальные линии и устанавливает их на уровень максимальной и минимальной цены три предшествующие дня. ВНИМАНИЕ! Поскольку скрипт берёт данные с таймфрейма Д1, то перед использованием скрипта нужно открыть таймфрейм Д1 (обновить данные), затем можно кидать скрипт на любой таймфрейм. Если так получилось, что Вы видите, что скрипт установил линии не туда, куда надо, значит Вы забылись и не обновили Д1. Откройте Д1, переключитесь на свой таймфрейм, затем киньте скрипт на график повторно - скрипт подвинет куда надо линии сам. То же самое касается последующег дня. Вчера Вы кинули скрипт на график - он отрисовал линии. Завтра утром у Вас нет нужды удалять вчерашние линии - просто обновитесь по Д1, затем киньте скрипт на график. Скрипт сам переместит линии куда надо.

Скрипт Lines_Delete удаляет линии, созданные предыдущим скриптом.

Виталий, я не понял почему надо переключать график на D1. Чушь какая-то…

Почему вы так заполняете массивы

        int Hi,Lw;
        double High3[3],Low3[3];
        High3[0]=iHigh(SMB,PERIOD_D1,1);
        High3[1]=iHigh(SMB,PERIOD_D1,2);
        High3[2]=iHigh(SMB,PERIOD_D1,3);
        Low3[0]=iLow(SMB,PERIOD_D1,1);
        Low3[1]=iLow(SMB,PERIOD_D1,2);
        Low3[2]=iLow(SMB,PERIOD_D1,3);
        Hi=ArrayMaximum(High3,WHOLE_ARRAY,0);
        Lw=ArrayMinimum(Low3,WHOLE_ARRAY,0);

Разве не проще будет так

        int Hi,Lw;
        double High3[3],Low3[3];
        CopyHigh(SMB,PERIOD_D1,1,3,High3);
        CopyLow(SMB,PERIOD_D1,1,3,Low3);
        Hi=ArrayMaximum(High3,WHOLE_ARRAY,0);
        Lw=ArrayMinimum(Low3,WHOLE_ARRAY,0);

И самое главное… Пора уже давно забыть, как страшный сон, функцию int start()… Пора уже научиться пользоваться правильными именами функций…

 
Vitaly Murlenko #:

Это в коде сделать вообще не проблема. Тут даже индикатор не нужен - можно просто скриптом обойтись. Как он должен отрисовываться? Как Вы себе это представляете?

К этому посту я приложил 2 скрипта. Скрипт Lines_3_Days создаёт 2 горизонтальные линии и устанавливает их на уровень максимальной и минимальной цены три предшествующие дня. ВНИМАНИЕ! Поскольку скрипт берёт данные с таймфрейма Д1, то перед использованием скрипта нужно открыть таймфрейм Д1 (обновить данные), затем можно кидать скрипт на любой таймфрейм. Если так получилось, что Вы видите, что скрипт установил линии не туда, куда надо, значит Вы забылись и не обновили Д1. Откройте Д1, переключитесь на свой таймфрейм, затем киньте скрипт на график повторно - скрипт подвинет куда надо линии сам. То же самое касается последующег дня. Вчера Вы кинули скрипт на график - он отрисовал линии. Завтра утром у Вас нет нужды удалять вчерашние линии - просто обновитесь по Д1, затем киньте скрипт на график. Скрипт сам переместит линии куда надо.

Скрипт Lines_Delete удаляет линии, созданные предыдущим скриптом.

Большое спасибо, Виталий, за отзывчивость и скорость реакции!

Как то в наше время -  неожиданно!

Тем более ценно!

Спасибо!

«Как он должен отрисовываться? Как Вы себе это представляете?».

Как я представляю его отрисовку:

·         Это не линия, а ОТРЕЗОК  – т.к. линии захламляют ВЕСЬ график.

·         Это не линия, а ОТРЕЗОК с продлением на 1 день после 3-х прошедших дней. Получается отрезок на 4 дня. Я должен видеть пересечение этих максимумов-минимумов сегодня. А это уже 4-й день по отношению к 3 предыдущим.


«Завтра утром у Вас нет нужды удалять вчерашние линии - просто обновитесь по Д1, затем киньте скрипт на график.»

Как представляется, «завтра кидать» индикатор на график нет нужды. А скрипт – надо. Поэтому хотелось бы индикатор, конечно. Суеты и так хватает перед открытием рынка!

С уважением и благодарностью!

 

Kedrov #:

Поэтому хотелось бы индикатор, конечно. Суеты и так хватает перед открытием рынка!

С уважением и благодарностью!

Пробуйте

Файлы:
 
Tretyakov Rostyslav #:

Пробуйте

Чудо Рождественское!

Попросил помощи – и вот, пожалуйста!

Получите и распишитесь!

Спасибо всему сообществу за то, что у Вас столь замечательные люди!

Спасибо Vitaly Murlenko и Tretyakov Rostyslav за их неравнодушие, что не отмахнулись… А взяли и помогли! Им, конечно, отдельное и большое спасибо!

Что вообще меня поразило – так и индикатор в исходнике подарили, а не в ex4., как сейчас принято.

Попробовал, это именно то, что и надо было!

Спасибо!

С уважением

Tretyakov Rostyslav
Tretyakov Rostyslav
  • 2022.03.09
  • www.mql5.com
Профиль трейдера
 

Ну вот, опять к Вам!

Оказалось, что данный индикатор страшно грузит ПК.

Сначала сделал шаблон с другими индикаторами – смотрю зависает.

Провел эксперимент – в шаблон забил ТОЛЬКО этот индикатор.  ОДИН! На 13 графике ПК, практически, завис.

Поставил другой шаблон, без этого индикатора, но с другими индикаторами в количестве 6 шт. и ПК при 35 графиках на 2-х мониторах (валюты и индексы), с этим шаблоном -  ожил и стал «летать», как он и раньше «летал».

Большущая просьба – посмотрите, пожалуйста код – что то там не так. Ведь задача то, на мой взгляд «чайника», не трудная – MAX MIN 3-х предыдущих дней. И всё!

Спасибо!

Файлы:
 

Всем Доброго времени суток! Вопрос по МТ4.Я тестирую советника паре GBPUSD,M1 на демосчете в МТ4 от Альпари. Котировки с сервера Demo Europe 11:1119

Непонятки со свечой которая открывается в 23 - 00 по пятницам. Например в 2021 году в 47 неделях из 52   23 часовая свеча есть а в 5 неделях ее нет, хотя остальные свечи есть. И так по всем годам есть пятницы в которые нет 23 часовой свечи, хотя остальные свечи есть  ... и именно по пятницам.

В то же время в Торговых условия Альпари написано 

  • Торговля по всем инструментам, кроме CFD на криптовалюты, открывается в 00:05 EET понедельника и закрывается в 23:55 EET пятницы. Торговля в пределах данного временного периода регулируется соответствующими параметрами спецификации контрактов.

ВОПРОС 1. Почему нет 23 часовой свечи по некоторым пятницам в моих котировках ? 2. 23 часовые свечи по некоторым пятницам отсутствуют так же и на реальной торговле?
Спасибо за помощь.

 
Kedrov #:

Ну вот, опять к Вам!


Большущая просьба – посмотрите, пожалуйста код – что то там не так. Ведь задача то, на мой взгляд «чайника», не трудная – MAX MIN 3-х предыдущих дней. И всё!

Спасибо!

Проверяйте

Файлы:
 
Tretyakov Rostyslav #:

Проверяйте

А че екзешник без кода? Не по правилам вроде)))

 
Valeriy Yastremskiy #:

А че екзешник без кода? Не по правилам вроде)))

Если не будет тормозить-дам исходник.

И где в правилах это запрещено?

Причина обращения: