Сегодня мы напишем довольно простой советник, который поможет нам с исследованиями рынка. Наверняка многим не очень нравится пользоваться стандартным metaeditor для программирования ваших советников, скриптов и индикаторов. Сегодня мы поговорим о том, как увеличить производительность и удобство при программировании. Теперь скрипт не будет выполняться сразу после добавления его на график, а откроет окно параметров, подобно советнику или индикатору.
- Напечатаем в журнал числа от 1 до 5 и от 5 до 1 одновременно в одном цикле.
- Мы видим, что функция возвратила в переменную MovedPoint рассчитанные значения, но при этом переменная P, переданная в функцию в качестве аргумента, не изменилась.
- В нашем примере выделение высот в отдельную структуру избыточно и сделано лишь для демонстрации вложенных структур.
- Давайте сначала разберёмся, что представляет собой стратегия «Пирамидинг», насколько она эффективна и какие подводные камни таит в себе.
Мне он понравился тем, что можно одновременно получать данные из нескольких источников. Кроме того, в рамках написания этой статьи я немного протестировал визуально этот индикатор, и результат показался мне многообещающим. И сегодня мы поработаем с этим индикатором, чтобы использовать его данные в своем советнике. После этого вы можете полноценно пользоваться системой контроля версий git и писать ваши mql программы в одной из самых удобных IDE для программирования. Весь вышеописанный процесс подробно описан в видео к этому уроку.
Функция GetSignal()
Давайте немного «отодвинем» уровни перепроданности и перекупленности в настройках индикатора, установим параметр StochasticLevelDn на 10 вместо 20. Надо сразу отметить, что пирамидинг не является самостоятельной торговой системой. Правильнее назвать его методом увеличения прибыли при торговле по тренду. Основная идея пирамидинга заключается в так называемых «доливках», когда при наличии ярко выраженного тренда открываются новые позиции на откатах или в момент выхода из очередной консолидации.
Схема подобных действий напоминает ступенчатую пирамиду, отсюда и название – «пирамидинг». Строго говоря, в нашем случае такая инициализация некорректна, так как элемент time имеет тип datetime, а значение 100 – это сто секунд с первого января 1970 года. Поэтому при подобной инициализации структур необходимо учитывать особенности неявного приведения типов. Не так давно на сайте появился индикатор открытых позиций трейдеров.
Введение в Объектно ориентированное Программирование, структуры
Отложенные ордера такого типа активируются в направлении движения цены, а значит, именно они подходят для трендовой торговли. В данной секции устанавливаются параметры ордеров и всей сетки в целом. Сам же механизм построения пирамид по тренду, сопровождения рыночных ордеров и фиксации прибыли достаточно полно раскрыт в нашем советнике.
Цикл do while
После того, как мы научились определять локальные ценовые экстремумы с помощью фракталов, можно приступать к основной задаче нашего урока, а именно автоматическому поиску дивергенций индикатора RSI с ценой. В широком смысле дивергенция – это расхождение линии индикатора с графиком цены. В эту функцию, помимо индекса бара, передаются по ссылке две логические переменные, которые затем можно проанализировать afd forex брокер в вызвавшем функцию коде. Одна переменная получает значение true, если на указанном индексе сформирован фрактал вверх, а другая переменная – если фрактал вниз. Мы напишем скрипт, который будет делать разметку фракталов на исторических данных, подобно тому, как это делает встроенный индикатор Fractals. В сегодняшнем уроке мы разберем, как можно автоматизировать средствами MQL4 один из самых сильных и надежных паттернов – дивергенцию.
Только мы будем сортировать не какой-то массив структур, а информацию об открытых ордерах, даже не копируя её в массив. Структуры в MQL4 представляют собой наборы данных, которые называют элементами структуры или полями. В отличие от массивов, которые содержат элементы только одного типа, структуры могут состоять из элементов разных типов. Таким образом, первым и основным назначением структур является возможность группировать переменные по какому-то признаку. Структура – это пользовательский тип данных, а значит, можно объявлять переменные этого типа. К каждому элементу структуры можно обращаться и изменять его напрямую, как и обычную переменную.
В этом уроке мы узнали, как средствами языка MQL4 можно осуществлять анализ потока цен с помощью баров. Мы научились находить простые пятибарные формации – так называемые фракталы Билла Вильяма – и использовать их для определения локальных экстремумов. В итоге мы написали скрипт для автоматического поиска дивергенции цены и осциллятора RSI.
В результате функция изменила оба элемента структуры, что можно увидеть, распечатав в журнал эти значения до и после вызова функции. Обратите внимание, что нумерация элементов в массиве начинается с нуля, а не с единицы. Это обстоятельство часто служит причиной ошибок и вызывает вопросы, особенно у начинающих программистов. Массив, как и обычная переменная, – это область памяти, имеющая своё начало – адрес. В случае с массивами доступ к каждому элементу по индексу задаётся как смещение от начала.