Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Ооо, огромное спасибо, с таким колличеством информации можно столько дел наворотить...
Как раз уезжаю в командировку, думаю посильнее углубиться в данные мне материалы, ну а кодить... Можно и на листе, думаю будет неплохая тренировка...
С уважением, Роман
Это мизерная часть того, что необходимо знать, можно сказать - песчинка в море програмнного кода. Но и этого мало, нужно ещё понимать, что применять, где применять и когда применять!
Если же исходить из самого названия темы "Создание робота", то прежде всего, Вам нужно иметь безубыточную (прибыльную, как хотите назовите) стратегию торговли, а уже затем заниматься изучением языка программирования MQL5.
Кстати, в MetaEditor терминала МТ5 имеется Мастер MQL5 с помощью которого можно без особых проблем, не зная языка программирования, получить код готового советника, используя Модули торговых сигналов, которые в свою очередь были созданы на основе популярных индикаторов. С помощью Мастера MQL5 можно, как говорится на коленке, быстро собрать советника и протестировать свою стратегию, если она у Вас основана только на индикаторах. Вот ссылка на статью о создании торгового робота при помощи Мастера MQL5: https://www.mql5.com/ru/articles/171
С уважением, Владимир.
57 с небольшим. А ответ на Ваш вопрос про путь уже знаете, цитирую:
"Роман Жилин:Нет, во фрилансе нет того процесса, который есть в составлении своего детища, который сам можешь развивать как тебе надобно. И в своих ошибках буду виноват лишь я сам, а не сторонний програмист. Поэтому, учится, учиться, кодить, спотыкаться, совершенствовать свои стратегии, и снова учиться"
С уважением, Владимир.
Хорошая подборка, спасибо.
Напомнило завещание Ленина :) , но это правильно, учиться никогда не поздно.
Одна из проблем это нехватка времени, перелапатить гигабайты литературы занимает много времени, другая и в большинстве случаев основная оказывается стратегия по сравнению с которой написание советника оказывается ерундой, над этим то и надо начать работать в первую очередь, чтобы иметь чёткое представление какой именно нужен советник.
Добавил ещё две кнопки для закрытия позиции
.. до сих пор не пойму смысл постоянно встречающейся фразы, начинающейся со слова "Возвращает".
Кто возвращает, кому возвращает, куда возвращет, зачем возвращает? До сих пор толком так и не могу разобраться...
Возможно, у меня получится пояснить.
Допустим, что у вас в данный момент на экране колеблются котировки инструмента(символа, он же, например EUR/USD), а также работает программа/советник/робот в терминале. Робот исполняет код, который вы в него забили. И в этом коде есть такие строки:
"orderSelect" - это торговая функция, она выбирает уже открытый ордер для дальнейшей работы с ним.//В данном примере, если выбрать ордер не удалось (...==false), то дальнейшее выполнение функции " if " прерывается командой "break".
Далее. Ордер у нас выбран торговой функцией OrderSelect. Теперь мы работаем с ним, с конкретным ордером. Для простоты восприятия примем условие, что у нас открыто всего два ордера.
Далее по коду мы вводим переменную OpenPrice [double типа] и присваиваем ей значение цены, по которой был открыт выбранный нами ордер (участок кода OpenPrice=OrderOpenPrice(); )
ТАК ВОТ ТУТ как раз объяснение для вас, что значит ВОЗВРАЩЕНИЕ параметра. Торговая функция OrderOpenPrice возвращает значение текущей цены инструмента. То есть, после того, как программа обратилась на сервер с запросом текущей цены, она вернула вам значение этой цены и присвоила это значение переменной.
Добавил Индикатор MACD
Добавил Индикатор MACD
Самое основное есть - теперь всё за Вами
Возможно, у меня получится пояснить.
Допустим, что у вас в данный момент на экране колеблются котировки инструмента(символа, он же, например EUR/USD), а также работает программа/советник/робот в терминале. Робот исполняет код, который вы в него забили. И в этом коде есть такие строки:
"orderSelect" - это торговая функция, она выбирает уже открытый ордер для дальнейшей работы с ним.//В данном примере, если выбрать ордер не удалось (...==false), то дальнейшее выполнение функции " if " прерывается командой "break".
Далее. Ордер у нас выбран торговой функцией OrderSelect. Теперь мы работаем с ним, с конкретным ордером. Для простоты восприятия примем условие, что у нас открыто всего два ордера.
Далее по коду мы вводим переменную OpenPrice [double типа] и присваиваем ей значение цены, по которой был открыт выбранный нами ордер (участок кода OpenPrice=OrderOpenPrice(); )
ТАК ВОТ ТУТ как раз объяснение для вас, что значит ВОЗВРАЩЕНИЕ параметра. Торговая функция OrderOpenPrice возвращает значение текущей цены инструмента. То есть, после того, как программа обратилась на сервер с запросом текущей цены, она вернула вам значение этой цены и присвоила это значение переменной.
Спасибо Вам за разъяснение. Надеюсь, что оно также поможет Роману в освоении языка программирования.
С уважением, Владимир.
Здравствуйте! Ну может кто-нибудь и мне поможет...
Сейчас разбираюсь с механизмами открытия/закрытия ордеров и столкнулся с проблемой закрытия открытых позиций.
Код простой. Суть алгоритма - на графике рисуется МА (скользящая средняя) с периодом 100. Если предыдущая свеча [1] открылась выше MA, а закрылась ниже МА , то со следующей свечи [0] открывается SELL-ордер на продажу.
//(Условия для покупки противоположны. Я их не расписываю)
Для закрытия ордера следующие условия - текущая цена прошла от цены открытия ордера устанавливаемое значение пунктов, например 40.
Пример: открылся шот на Bid=1.20045, закрыться он должен на Ask= 1.20005.
Ну и короче не работает у меня что-то..(( Код открытия и закрытия запакованы в 2 соответствующие функции, которые в свою очередь вызываются функцией OnTick(). По идее с каждым тиком должно проверяться условие закрытие, но по факту цена может опуститься ниже заданного уровня (уровня закрытия), а ордер при этом не закроется. Скрины и код прилагаю.
Здравствуйте! Ну может кто-нибудь и мне поможет...
Сейчас разбираюсь с механизмами открытия/закрытия ордеров и столкнулся с проблемой закрытия открытых позиций.
Код простой. Суть алгоритма - на графике рисуется МА (скользящая средняя) с периодом 100. Если предыдущая свеча [1] открылась выше MA, а закрылась ниже МА , то со следующей свечи [0] открывается SELL-ордер на продажу.
//(Условия для покупки противоположны. Я их не расписываю)
Для закрытия ордера следующие условия - текущая цена прошла от цены открытия ордера устанавливаемое значение пунктов, например 40.
Пример: открылся шот на Bid=1.20045, закрыться он должен на Ask= 1.20005.
Ну и короче не работает у меня что-то..(( Код открытия и закрытия запакованы в 2 соответствующие функции, которые в свою очередь вызываются функцией OnTick(). По идее с каждым тиком должно проверяться условие закрытие, но по факту цена может опуститься ниже заданного уровня (уровня закрытия), а ордер при этом не закроется. Скрины и код прилагаю.
На форуме есть ветка по ссылке https://www.mql5.com/ru/forum/160683/page767#comment_10725713
Там Вы быстрее получите помощь.
С уважением, Владимир.