Перейти к содержанию
pavlus777

Обучение языку MQL5 под MetaTrader 5

Рекомендуемые сообщения



Здравствуйте, друзья юные программисты!
В этой ветке предлагаю обсуждать все возникающие вопросы в процессе освоения тонкостей языка MQL5.

В настоящий момент мы записываем цикл уроков по MQL5, пока доступны уроки:

MQL5: Работа с ордерами

MQL5: Пишем первый советник


P.S. Тема про обучение MQL4 => Обучение языку MQL под MetaTrader 4 Изменено пользователем pavlus777

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Нечеловеческое спасибо за тему >0< >0< >0<

ЧИТАЕМ В ПЕРВУЮ ОЧЕРЕДЬ

ПОЛНАЯ ДОКУМЕНТАЦИЯ ПО MQL5, ОНЛАЙН, БЕСПЛАТНО И БЕЗ СМС

Руководство по интерфейсу // Алгоритимеческий трейдинг на MQL5 // Описание тестера стратегий // Новости по MQL5 // Статистика комунны

Примеры кода: Советников // Индикаторов // Скриптов // Библиотеки для MQL5

Скачать документацию по MQL5 в PDF // CHF


Старые видео от RoboForex по MQL5
Видео 2016 года по MQL5 (осторожно, не русские)
Старое видео по MQL5 Wizard (Создание своего советника без программирования)






Скачать мультиброкерный MetaTrader 5, последней версии <:-p




Фрагмент книги "Язык программирования MQL5: Продвинутое использование торговой платформы MetaTrader 5" из 4го ответа приложена к посту

Книга_по_MQL5.rar

Изменено пользователем Alexander.Yar

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Доброго времени суток всем :)

Уже давно не интересовался FX в силу не очень хороших условий для алгоритмической торговли. Возможно, что-то изменилось, или тогда не совсем разобрался? Рынок-то хороший, особенно в плане частного доверительного управления...

К сути. Есть ли возможность (в MT4 или MT5) получать данные по запросу в коде своего приложения, на C# (такие как котировки, историю, счета, и т.д.) и отправлять ордера из того же приложения?

То есть, забить на MQL и писать в своем. (если интересно, что-то вроде специализированного терминала с базой данных и дата майнингом, на детском конструкторе "MQL" это не получилось бы)

Возможно, кто-то пробовал писать самостоятельные приложения для форекса?
Понимаю, что тут по-простому не получится, скорее всего, т.к. на сайте метатрейдера для разработки предлагается только их велосипед, но может умные люди нашли способ?

Добавлено: 01-08-2016 19:58:22

Натыкался на американские сайты-продажники с библиотеками для "коннекта" к МТ, но как-то доверия мало, будет ли это именно то, что надо...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Добрый день!!! Вопрос по "MQL5: Пишем первый советник".
Написал все как в видео (вроде)
Спойлер


#property copyright "Copyright 2016, MetaQuotes Software Corp."
#property link "https://www.mql5.com"
#property version "1.00"

#include

input double Lot = 0.1;
input int TakeProfit = 10;
input int StopLoss = 65;

int TP,SL;

CTrade trader;

bool Inverter=true;
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
TP = TakeProfit;
SL = StopLoss;

if(_Digits==3 || _Digits==5)
{
TP *= 10;
SL *= 10;
}

return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{

}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
double points;
if(!PositionSelect(_Symbol))
{
if(Inverter)
trader.Buy(Lot);
else trader.Sell(Lot);
}
else
{
if(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_BUY)
{
points=SymbolInfoDouble(_Symbol,SYMBOL_BID)-PositionGetDouble(POSITION_PRICE_OPEN)/_Point;
if(points >= TP)
{
trader.PositionClose(_Symbol);
Inverter=true;
}

if(points<=-SL)
{
trader.PositionClose(_Symbol);
Inverter=false;
}
}
if(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_SELL)
{
points=(PositionGetDouble(POSITION_PRICE_OPEN)-SymbolInfoDouble(_Symbol,SYMBOL_ASK))/_Point;
if(points>=TP)
{
trader.PositionClose(_Symbol);
Inverter=true;
}
if(points<=-SL)
{
trader.PositionClose(_Symbol);
Inverter=false;
}
}
}
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+

//+------------------------------------------------------------------+



http://fxpics.ru/image/hQgJ

В итоге открывается сделка, сразу закрывается и открывается в другую сторону. В чем причина?


Добавлено: 02-08-2016 06:04:17

Вопрос снят!!!!! Скобки забыл поставить ))))

Test.mq5
Без_имени-3.jpg

Изменено пользователем rom_kaxxx

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты


Вопрос снят!!!!! Скобки забыл поставить ))))


Выложи правильный текст со скобками, пожалуйста!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Уважаемые коллеги, добавлю от себя...
По ссылке полный справочник по функциям MQL5, с примерами, который вы можете скачать себе локально.
Хорошая штука, рекомендую :)

https://yadi.sk/d/BBFYJw_-trnbN

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
1. MQL5
2. Импорт DLL: C++ обертка + C# код
3. В импортированных ф-циях - доступ к SQL Server, отправка рыночных данных, чтение сигналов для действий из созданной для этого таблицы
4. В приложении - подписка на события из БД (чтобы данные в приложении обновлялись сразу при обновлении в БД. Анализ полученных данных, отправка строк в таблицу, которая читается в MQL.
5. Оптимизация быстродействия.
6. Никто не кодит короч.
-----------------------------
Ну... Это, конечно, не идеальный вариант, особенно если SQL не используется для других целей(к счастью, у меня используется).
Однако, не самый плохой, если вспомнить способы экспорта и импорта в квике x_x

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты


Если не секрет, что именно вы хотите делать, чего нельзя сделать силами MQL?


Я экспериментирую с дата майнингом - нейронные сети и статистический анализ. Тут не только C#, но и R.
Также думаю, буду писать стратегию статистического арбитража в ближайшее время. Есть пара идей для улучшения уже существующей идеи стратегии(или того, что они делают не так :) ), но это может привести к увеличению вычислительных затрат, помимо того, что тут уже подразумевается расчет наиболее интересных на данный момент арбитражных пар.
Очень помогает SQL сервер. Не только для более удобной модели данных, доступной для многих приложений как своих, так и готовых, но и производительности. Пробовал изначально котировки в файлах хранить, но на достаточно активных инструментах просто не хватало скорости обработки. Задействовал SQL Server - проблема решена чудеса сиквела плюс многопоточность без шаманства. Это все было нужно для фондовой биржи, где помимо свечек есть еще полноценный стакан и лента(таблица всех сделок по инструменту) - количество данных существенно вырастает и без распараллеливания предварительной обработки и СУБД система просто встаёт...

Также при этом данные могут использоваться одновременно несколькими приложениями и распределенно с разных компьютеров локальной сети.

Второе - универсальность. Созданную этими средствами систему я могу использовать на любом рынке, у любого брокера, вне зависимости от обновлений и изменений. Например, мосбиржа, сша, и теперь FX. Единственное, что требуется - это "коннектор".

Третье - это скорее вопрос того, что может дать MQL5, что не может дать C++ и Visual Studio?
То, что я вижу, это просто попытка зачем-то сделать свою Visual Studio и C++, вот только очевидно, что не дотягивает ни среда разработки, ни сам язык. Хотя я поизучаю, конечно. Изменено пользователем JcJet

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Книга "Язык программирования MQL5: Продвинутое использование торговой платформы MetaTrader 5"
https://www.ozon.ru/context/detail/id/137330014/

После прочтения документации.
Тут еще можно рекомендовать интересную и приятную для чтения книгу по c++ от его создателя, Бьёрна Страуструпа.
т.к. документация MQL очень сложная, если не знать c++, т.к. не понятен смысл, почему одно сделано так, а не этак, многие вещи не описываются подробно, и применяются разные темины(сначала говорим о дескрипторах, а потом про описатели, и т.п.)
Но я понимаю, что бизнесмены такие "кирпичи" не любят :))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Коллеги, приветствую!

Потому мы и записываем видео с конкретными примерами, что официальная документация несколько сложна для понимания.
Страуструп тоже для новичка не айс я бы сказал, когда-то начинал его читать... давно это было, правда...
Главное - всё-таки практика и ещё раз практика, ну и конечно же желание, иначе никак.
Ну и не стесняйтесь писать на форум, задавать вопросы, понимающих, разбирающихся людей хватает... помогут!
А основы мы рассматривали тут: http://tradelikeapro.ru/mql-nachalo/
Знаю лично нескольких коллег, которые начинали именно с этих уроков...



Книга "Язык программирования MQL5: Продвинутое использование торговой платформы MetaTrader 5"
https://www.ozon.ru/context/detail/id/137330014/

После прочтения документации.
Тут еще можно рекомендовать интересную и приятную для чтения книгу по c++ от его создателя, Бьёрна Страуструпа.
т.к. документация MQL очень сложная, если не знать c++, т.к. не понятен смысл, почему одно сделано так, а не этак, многие вещи не описываются подробно, и применяются разные темины(сначала говорим о дескрипторах, а потом про описатели, и т.п.)
Но я понимаю, что бизнесмены такие "кирпичи" не любят :))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
По моему, єта игра не стоит свечь, всегда можно откріть любой терминал другой, и грузить его по полной программе данніми, а через сервис сигналі, открівать сделки на своем рабочем терминале, не вижу прикола... И из mql совсем не труно управлять компьютером и получать данные из интернета, мне совершенно непонятно зачем заточеный язык менять на непонятно что, а конструктор он потому как все функции уже написанны отрепетированны, и хранятся в 2-х 3-х словах, а вам придецца все это расписывать в целые мемуары, по моему это лишнее, да и походу вы пишите не про арбитраж, а про парный трейдинг, арбитраж это когда "стоимость актива на одном рынке, отличается от стоимости актива на другом рынке", это дело уже прикрыли в принципе.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Здравствуйте! подскажите пожалуйста как посчитать в цикле количество сделок в открытой позиции?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
было бы неплохо видео или общую инструкцию по различиям, чтобы переделывать самостоятельно индикаторы из mt4 в mt5

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты


Спасибо,
видео по написанию индикатора будет?



Приветствую!

Да, в своё время будет. :)


Добавлено: 20-08-2016 18:45:44


Здравствуйте! подскажите пожалуйста как посчитать в цикле количество сделок в открытой позиции?



Для MQL5 позиция всегда одна.
Для одной валютной пары не может быть несколько разнонаправленных сделок.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Можно как-то отловить событие открытия нового бара? хотелось бы делать обработку не потиково а побарам.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты


Можно как-то отловить событие открытия нового бара? хотелось бы делать обработку не потиково а побарам.



Всем привет! Я определяю новый бар с помощью следующего метода (приложение).

NewBar.mq5

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Здравствуйте коллеги. Изучаю MQL5. В процессе обучения хочу создать советник, например, мультивалютный сеточник. Буду двигаться от простого к сложному и по мере профессионального роста выкладывать версии советника.

Просмотрел уроки по MQL5 _http://tradelikeapro.ru/mql5-pishem-pervyiy-sovetnik/.
Набросал шаблон (Expert v1), заодно и домашнее задание сделал. Советник открывает позицию по тренду на одном ФИ, устанавливает стоплосс и тейкпрофит. Пока все понятно, изучаю справочник MQL5.

Exp_v1.png
Exp_v1_balance.png
Expert_v1.mq5

Изменено пользователем SilverKZ

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Добрый день, я изучаю mql5. Надо посмотреть описание советника для оценки своих возможностей. Хорошо бы скрин с условиями входа и выхода.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
я вот тоже только изучаю.


Добавлено: 31-08-2016 11:46:41

вот почти написал
только не пойму что вот его нужно доделать

7.jpg
4ema.mq5

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
В схеме TSlab разобрался, суть понял. Давайте покажу как я пишу советники по шагам от простого к сложному. Пару часов есть свободных.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Да тс лаб 1.2
фьючерс ртс
вот параметр подогнанные под историю,на них можно проверить по дате и времени правильно ли советник работает.
Можете мой советник доделать.Если нужно вот скрипт тс лаб

8.jpg
скрипт_тс_лаб_для_советника_мт5.zip

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Дорабатывать тяжелее, для меня легче с нуля делать.
На первом шаге самое важное получить верные данные с индикаторов. Дохожу до стадии получения данных и проверяю что получил. Минимум всего, советник уже запускается и выводит полученные с индикаторов данные. Для вывода использую Comment (EMA_Slow_2_price[1]), можно принт.

ema4.mq5

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.


×
×
  • Создать...