Вот краткий сборник статей по MQL5, который может быть полезен:
- Начало
- Вот мы и получили долгожданные MetaTrader 5 и MQL5
- Новые возможности с MetaTrader 5
- Быстрое погружение в MQL5
- MetaTrader 5 - больше, чем можно представить!
- Индикаторы
- Переход на новые рельсы: пользовательские индикаторы в MQL5
- Пользовательские индикаторы в MQL5 для начинающих
- Как написать индикатор в MQL5
- Индикатор от индикатора в MQL5
- Как написать индикатор на основе другого индикатора
- Способы вызова индикаторов в MQL5
- MQL5 для "чайников": Получение значений технических индикаторов в своих экспертах
- Стили рисования в MQL5
- Цветные индикаторы - создание и применение
- Создание тиковых индикаторов
- Эксперты (Торговые роботы)
- Ордерa, позиции и сделки в MetaTrader 5
- Торговые события в MetaTrader 5
- Знакомство с MQL5: написание простого советника и индикатора
- Пошаговое руководство по написанию MQL5-советников для начинающих
- Ограничения и проверки в экспертах
- Мастер MQL5: Новая версия
- Торговые операции на MQL5 - это просто
- Функции для управления капиталом в экспертах
- Обработка торговых событий в эксперте при помощи функции OnTrade()
- Ордерные стратегии. Универсальный автомат
- Создай торговый робот за 6 шагов!
- Графические элементы
- Создай свои графические панели на MQL5
- Пользовательские графические элементы управления. Часть 1. Создание простого элемента управления
- Пользовательские графические элементы управления. Часть 2. Библиотека элементов управления
- Пользовательские графические элементы управления. Часть 3. Формы
- Создание информационных табло с использованием классов из Стандартной библиотеки и Google Chart API
- Объектно-ориентированный подход к построению мультитаймфреймовых и мультивалютных панелей
- Тестирование и оптимизация
- Основы тестирования в MetaTrader 5
- MQL5: Руководство по тестированию и оптимизации советников
- Создание собственных критериев оптимизации параметров эксперта
- MQL5 Cloud Network ускоряет расчеты
- Визуализируй стратегию в тестере MetaTrader 5
- Торговые системы
- Как создать торгового робота и не потерять время
- Прототип торгового робота
- Как создать свой Trailing Stop
- Прибыльные алгоритмы на трейлинг стопах
- Несколько способов определения тренда на MQL5
- 20 торговых сигналов на MQL5
- Простейшие торговые системы с использованием семафорных индикаторов
- Оценка торговых систем - эффективности входа, выхода и сделок
- Адаптивные торговые системы и их использование в терминале MetaTrader 5
- Индикаторы и торговые системы Уильяма Блау на MQL5. Часть 1: Индикаторы
- Торговый эксперт по книге Б. Вильямса "Новые измерения в биржевой торговле"
- Язык MQL5
Смотрите, критикуйте, предлагайте.
Так что для Вас важнее: научится самому, или систематизировать всё то, с чем пришлось столкнуться?
Большое спасибо Rosh за оперативный ответ и наглядный каталог статей! Буду изучать, когда же накопится некоторый набор знаний начну задавать предметные вопросы и высказывать разного рода измышления. Пока рано критиковать и предлагать, так как совсем ламерские вопросы и утверждения могут вызвать праведный гнев у профи))
Так что для Вас важнее: научится самому, или систематизировать всё то, с чем пришлось столкнуться?
Безусловно научиться самому главная доминта. Систематизация нужна как своего рода маяк, ориентировка в так сказать "пространстве научения", не секрет что обучение одному и тому же, может разительно отличаться как по скорости, так и по качеству, не говоря уже о субъективных компонентах, таких как степень "интересности" и удовлетворения процессом. Причем отличия могут быть величинами значительными, в порядки раз, а это может быть большим акселератором или препятствием продвижения в мире где время главное богатство.
Поэтому нужна "карта" информационного пространства, которое планируется к освоению. Она нужна в первую очередь для экономии ресурсов мозга, для быстрого доступа к её содержимому по только "адресу", без необходимости запоминания всего объёма, который быстро усвоить на мой взгляд, не только мммм.. сложно, но и неразумно. Некоторый "каркас" всё равно необходимо впитать, это без сомнений, суть в поиске золотой середины, а для этого информационный каркас должен быть максимально иерархично структурирован и очищен от избыточности, или хотя бы с указанием где таковая есть.
От общего к частностям, другими словами. Например хочется избежать на начальных этапах, тратить время на изучение множества способов получения одного и того же, это безусловно интересно, но менее приоритетно по сравнению с получением разных результатов разными способами. Проводя аналогию с деревом, можно сказать, что для начала хочется изучить ствол, затем крупные ветки, мельче и потом процедуру отыскания совсем мелких веток, но не последовательно перечислять и запоминать, каждую веточьку произвольной величины, в хаотичном порядке. Возможно людям с сверх памятью перечисление и подойдет, но у меня уклон скорее в логику, за счет к сожалению убытка памяти(( А в справочнике 3515 страниц! И это лаконичная информация а не художественный роман, чтобы запомнить и проанализировать такой объём, нужны многие годы если действовать в лоб...
Потому и вопрошаю форумчан по теме как они картируют местность знаний.
Тогда предлагаю отложить вопросы систематизации материала в дальнюю папку. Ибо для систематизации материала требуется его понимание, а из тех, кто понимает материал, пока никто не взялся за систематизацию.
У каждого здесь, конечно, своё видение вопроса, но предлагаю свой вариант: если Вы взялись за изучение языка, значит, уже представляете себе немного область его применения. Вот и попробуйте самостоятельно, с нуля, нарисовать свой первый простенький индикатор. Пусть даже это будет просто линия, соединяющая цены закрытия баров. Дальше можно будет попробовать какой-нибудь осциллятор в отдельном окне, затем - ленты Боллинджера, например. Потом появится наглость попробовать написать свой первый советник, и т.д.
А статьи, которые придётся прочитать, перечислены выше. Лично мне в своё время хватило для начала одной из этих:
Удачи! Ну и форум в помощь.
Тогда предлагаю отложить вопросы систематизации материала в дальнюю папку. Ибо для систематизации материала требуется его понимание, а из тех, кто понимает материал, пока никто не взялся за систематизацию.
У каждого здесь, конечно, своё видение вопроса, но предлагаю свой вариант: если Вы взялись за изучение языка, значит, уже представляете себе немного область его применения. Вот и попробуйте самостоятельно, с нуля, нарисовать свой первый простенький индикатор. Пусть даже это будет просто линия, соединяющая цены закрытия баров. Дальше можно будет попробовать какой-нибудь осциллятор в отдельном окне, затем - ленты Боллинджера, например. Потом появится наглость попробовать написать свой первый советник, и т.д.
А статьи, которые придётся прочитать, перечислены выше. Лично мне в своё время хватило для начала одной из этих:
Удачи! Ну и форум в помощь.
Спасибо Yedelkin ! Примерно так я и предполагал действовать и собственно действую)) в отсутствии более общего алгоритма добычи знаний. То есть дочитал вот уже "Основы языка" в справочнике , несколько статей указанных выше с данного замечательного ресурса, и теперь экспериментирую с простейшими советниками, совсем простейщими... Пока что цель так сказать прочувствовать систему с самого основания. А так как mql5 это не С++ и Print("Hello World") нельзя назвать первым шагом, но
input float lotSize = 0.1; #include <Trade\Trade.mqh> int OnInit() { CTrade trade; trade.Buy(lotSize); return(0); }
вполне можно назвать элементарным характерным "стерильным" началом))
До возникновения новых эвристик по поводу добычи знаний, буду почитывать статейки из списка предоставленного уважаемым Rosh, делать из примеров предложенных в них собственные модификации и выкладывать в этой ветке. Конечно же сопровождая каждый шаг комментариями, что сделано, почему и для чего, иногда возможно даже будут уходы в философствование и довольно не обычные метафоры, за что заранее пардон, но я новичок мне такое простительно))
В итоге получится(вероятней всего), наглядный пример развития навыков с самого нуля до надеюсь приемлемых результатов, сосредоточенных в одной ветке, что возможно будет полезно в будущем для таких же нубов как я сейчас.
Везёт Вам! Сразу с классов начали.
Интересная идея - создать азбуку на основании собственного опыта обучения. ..Стилизатор кода: " Ctrl+, ".
Вот краткий сборник статей по MQL5, который может быть полезен:
- Начало
- Вот мы и получили долгожданные MetaTrader 5 и MQL5
- Новые возможности с MetaTrader 5
- Быстрое погружение в MQL5
- MetaTrader 5 - больше, чем можно представить!
- Индикаторы
- Переход на новые рельсы: пользовательские индикаторы в MQL5
- Пользовательские индикаторы в MQL5 для начинающих
- Как написать индикатор в MQL5
- Индикатор от индикатора в MQL5
- Как написать индикатор на основе другого индикатора
- Способы вызова индикаторов в MQL5
- MQL5 для "чайников": Получение значений технических индикаторов в своих экспертах
- Стили рисования в MQL5
- Цветные индикаторы - создание и применение
- Создание тиковых индикаторов
- Эксперты (Торговые роботы)
- Ордерa, позиции и сделки в MetaTrader 5
- Торговые события в MetaTrader 5
- Знакомство с MQL5: написание простого советника и индикатора
- Пошаговое руководство по написанию MQL5-советников для начинающих
- Ограничения и проверки в экспертах
- Мастер MQL5: Новая версия
- Торговые операции на MQL5 - это просто
- Функции для управления капиталом в экспертах
- Обработка торговых событий в эксперте при помощи функции OnTrade()
- Ордерные стратегии. Универсальный автомат
- Создай торговый робот за 6 шагов!
- Графические элементы
- Создай свои графические панели на MQL5
- Пользовательские графические элементы управления. Часть 1. Создание простого элемента управления
- Пользовательские графические элементы управления. Часть 2. Библиотека элементов управления
- Пользовательские графические элементы управления. Часть 3. Формы
- Создание информационных табло с использованием классов из Стандартной библиотеки и Google Chart API
- Объектно-ориентированный подход к построению мультитаймфреймовых и мультивалютных панелей
- Тестирование и оптимизация
- Основы тестирования в MetaTrader 5
- MQL5: Руководство по тестированию и оптимизации советников
- Создание собственных критериев оптимизации параметров эксперта
- MQL5 Cloud Network ускоряет расчеты
- Визуализируй стратегию в тестере MetaTrader 5
- Торговые системы
- Как создать торгового робота и не потерять время
- Прототип торгового робота
- Как создать свой Trailing Stop
- Прибыльные алгоритмы на трейлинг стопах
- Несколько способов определения тренда на MQL5
- 20 торговых сигналов на MQL5
- Простейшие торговые системы с использованием семафорных индикаторов
- Оценка торговых систем - эффективности входа, выхода и сделок
- Адаптивные торговые системы и их использование в терминале MetaTrader 5
- Торговый эксперт по книге Б. Вильямса "Новые измерения в биржевой торговле"
- Язык MQL5
Смотрите, критикуйте, предлагайте.
Все это похоже на содержание книги не находите Roch ?? Об этом - электронной книге как то раз писал Renat.
Может вам заняться к раз таки !
... Вот и попробуйте самостоятельно, с нуля, нарисовать свой первый простенький индикатор. Пусть даже это будет просто линия, соединяющая цены закрытия баров. Дальше можно будет попробовать какой-нибудь осциллятор ...
Задача построения линии соединяющих клосы баров оказалась тривиальной если использовать визард. Суть в том чтобы приравнять индикаторный буфер к нужной величине бара (open[],high[],low[],close[],tick_volume[],volume[],spread[] или price[])
Код получился такой:
#property indicator_chart_window #property indicator_buffers 1 #property indicator_plots 1 #property indicator_label1 "Label1" #property indicator_type1 DRAW_LINE #property indicator_color1 clrRed #property indicator_style1 STYLE_SOLID #property indicator_width1 1 double Label1Buffer[]; //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ int OnInit() { SetIndexBuffer(0,Label1Buffer,INDICATOR_DATA); //--- return(0); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ int OnCalculate(const int rates_total, const int prev_calculated, const datetime &time[], const double &open[], const double &high[], const double &low[], const double &close[], const long &tick_volume[], const long &volume[], const int &spread[] ) { for(int i=0; i<=rates_total; i++) { Label1Buffer[i]=close[i]; } return(rates_total); } //+------------------------------------------------------------------+
Вся главная суть в цикле
for(int i=0; i<=rates_total; i++) { Label1Buffer[i]=close[i]; }
Сразу возникли мысли по поводу реализации чего то более осмысленного, а именно получить производную от простой скользящей средней, первую и вторую. Вроде как простая производная от значения индикатора мне не встречалась как индикатор, а по идее это может оказаться важным индикатором, как никак первая производная от МА может показывать скорость тренда, а вторая его ускорение, которое есть вероятный признак разворота, что по идее замечательно. То есть нужно вычислить разность (iМА(bar) - iMA(bar-1))/timestep. То есть массив скользящей средней в цикле перебрать и записать в буфер разность соседних элементов, всё без ошибок вроде как в коде, но на графике фигня(((( не могу понять в чем баг пока...
#property indicator_separate_window #property indicator_minimum -1 #property indicator_maximum 1 #property indicator_buffers 3 #property indicator_plots 1 //--- plot Label1 #property indicator_label1 "Label1" #property indicator_type1 DRAW_HISTOGRAM #property indicator_color1 clrRed #property indicator_style1 STYLE_SOLID #property indicator_width1 1 //--- indicator buffers input int MAPeriod= 10; input int MAShift = 0; double ExtLineBuffer[]; double MA[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ void OnInit() { SetIndexBuffer(0,ExtLineBuffer,INDICATOR_DATA); SetIndexBuffer(1,MA,INDICATOR_DATA); PlotIndexSetInteger(0,PLOT_SHIFT,MAShift); PlotIndexSetInteger(0,PLOT_DRAW_BEGIN,MAPeriod-1); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int OnCalculate(const int rates_total,const int prev_calculated,const int begin,const double &price[]) { if(rates_total<MAPeriod-1) return(0); int first,bar,iii; double Sum,SMA; if(prev_calculated==0) first=MAPeriod-1+begin; else first=prev_calculated-1; for(bar=first; bar<rates_total; bar++) { Sum=0.0; for(iii=0; iii<MAPeriod; iii++) Sum+=price[bar-iii]; SMA=Sum/MAPeriod; MA[bar]=SMA; } //Производная for(int i=0; i<=rates_total; i++) { ExtLineBuffer[i]=MA[i]-MA[i-1]; } return(rates_total); } //+------------------------------------------------------------------+
ПЭ сэ...
Везёт Вам! Сразу с классов начали.
Интересная идея - создать азбуку на основании собственного опыта обучения. ..Стилизатор кода: " Ctrl+, ".
Великолепный трюк! Спасибо!
Сразу возникли мысли по поводу реализации чего то более осмысленного, а именно получить производную от простой скользящей средней, первую и вторую. ...
- 2011.04.22
- Andrey N. Bolkonsky
- www.mql5.com
Значения МА и её "производной" могут оказаться совершенно разного порядка. И с трудом помещаться на один график (в одном окне). Выводить график "производной" в отдельное окно не пробовали?
А вот это
int first,bar,iii; double Sum,SMA;можно вообще вынести на глобальный уровень программы.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Здравствуйте господа. Прошу помощи в указании эффективного пути изучения MQL5. Хочется наметить структуру этого пути и ему следовать, отдавая себе отчет в темпе продвижения и перспективах. Тему завожу потому как на данный момент "общая картина" пока не вырисовалась и возникают сомнения относительно выбора эффективного алгоритма из всего пространства возможных алгоритмов обучения.
В данный момент читаются Справочник MQL5 и хаотично статьи с данного ресурса такие как Быстрый старт или краткий курс для начинающих, Мастер MQL5: Создание эксперта без программирования , Пошаговое руководство по написанию MQL5-советников для начинающих, Создай торговый робот за 6 шагов!, Прототип торгового робота, Написание советника в MQL5 с использованием объектно-ориентированного подхода и тд.
Некоторые статьи перевариваются легко другие порождают ряд вопросов. Я понимаю что это нормальный процесс, вот только хочется сделать некоторый набросок общего пути, до скажем так, "среднего уровня", какой объём информации нужно поглотить и переварить для этого и какого рода практические задания сделать и осмыслить. Иными словами я говорю о "метаобучении", если так можно выразиться... Алгоритме обучения писать торговые системы на mql5.
Очень хотелось бы классифицировать существующие статьи на данном ресурсе в порядке следования усложнения, возможные пересечения(дублирование) материала в статьях и необходимый минимум для старта. То есть сделать виртуальный учебник из последовательности статей сайта. Это бы очень помогло новичкам. таким как я, которых часто сбивает с толку колоссальный объём информации и не очевидная её структурность и иерархичность.
По справочнику, предполагаю что из него нужно в обязательном порядке прочесть и осмыслить как минимум раздел "Основы языка", и просмотреть содержание остальных частей для того чтобы в случае необходимости знать где искать и вообще о существовании некоторой темы, функции, класса и тп. Или я не верно мыслю и есть разделы которые христоматичьны также как "Основы языка" в справочнике?
Заранее прошу прощения за возможно протёртую до дыр тему... но для меня это важно и пока не нашел последовательности поглощения материала, а хаотично кушать вредно для здоровья)))
Спасибо за внимание.