Всем привет, есть здесь темы по интеграции Python в MetaTrader 5 ?
Есть пару статей только по анализу рынка =(
НО НИКАКОЙ инфы о том как можно интегрировать торговую стратегию в терминал MetaTrader5 =(
Есть идеи ????
От pavlus777, 1 августа, 2016 в Уголок Программиста
Всем привет, есть здесь темы по интеграции Python в MetaTrader 5 ?
Есть пару статей только по анализу рынка =(
НО НИКАКОЙ инфы о том как можно интегрировать торговую стратегию в терминал MetaTrader5 =(
Есть идеи ????
@Yurkka посмотрите эту статью на хабре
21 час назад, 0ll сказал:@Yurkka посмотрите эту статью на хабре
спасибо помогло немного дальше ![]()
Всем добрый день. Может кто помочь? Посмотрел обучающий урок "Как написать советник для Metatrader 5" не получается добавить в него что бы он каждый раз при закрытие по SL добавлял определенное количество лотов. И как будет TP возвращался обратно к исходному лоту.
#property copyright "Copyright 2019, MetaQuotes Software Corp." #property link "https://www.mql5.com" #property version "1.00" #include <Trade\Trade.mqh> input double Lot=1; input int TakeProfit = 400; input int Stoploss = 600; int TP; int SL; CTrade trader; bool Invertor; //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { TP = TakeProfit; SL = Stoploss; return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { double points; if(!PositionSelect(_Symbol)) { if(Invertor) 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); Invertor=true; } if(points<=-SL) { trader.PositionClose(_Symbol); Invertor=false; } } if(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_SELL) { points=(PositionGetDouble(POSITION_PRICE_OPEN)-SymbolInfoDouble(_Symbol,SYMBOL_ASK))/_Point; if(points>=TP) { trader.PositionClose(_Symbol); Invertor=false; } if(points<=-SL) { trader.PositionClose(_Symbol); Invertor=true; } } }
Изменено 3 октября, 2019 пользователем 0ll
Чего сложного то? Есть блок закрытия позиций по стопу, так в нем увеличиваете лот. Есть блок закрытия позиций по профиту, в нем ставим лот тот который нам нужен.
до int TP; int SL; после int TP; int SL; double lo;
//--- после TP = TakeProfit; SL = Stoploss; lo = Lot;
//--- до trader.Buy(Lot); //--- после trader.Buy(lo);
с Sell аналогично
if(points >= TP) { trader.PositionClose(_Symbol); Invertor = true; lo *= 2;//увеличиваем лот на сколоко нам нужно } if(points <= -SL) { trader.PositionClose(_Symbol); Invertor = false; lo = 1;//востанавливаем лот }
для Sell аналогично
Здравствуйте! Я взял из Стандартной библиотеки MQL5 шаблон создания "Текстовой метки"(Стандартная библиотека ->
Панели и диалоги -> CLabel). Подскажите, пожалуйста, как сделать так, чтобы при изменении торгового счета
сделал кое какие расчеты(на основе счета, текущей цены, входных параметров программы) и передал результаты
в "Текстовую метку"? Такой же вопрос при создании "Кнопки", также, из Стандартной библиотеки, и передачи
результатов для открытия ордеров при нажатии кнопки. Спасибо!
Здравствуйте.
У меня вопосы по 7 уроку. По функции TradeSignal
void TradeSignal(int Number, string Symbol_, bool Trade, int period, ENUM_APPLIED_PRICE APrice, ENUM_MA_METHOD MaMethod, bool &SignalBuy[], bool &SignalSell[]) { if (!Trade) return; int Size_ = 0; int Handle[]; int Recount[], MinBars[]; double SMA[], dsma1, dsma2; if (Number+1 > Size_) { Size_ = Number + 1; ArrayResize(Handle, Size_); ArrayResize(Recount, Size_); ArrayResize(MinBars, Size_); ArrayInitialize(Handle, 0); ArrayInitialize(Recount, 0); ArrayInitialize(MinBars, 0); MinBars[Number] = 3*period; SignalBuy[Number] = false; SignalSell[Number] = false; ArraySetAsSeries(SMA, true); Handle[Number] = iMA(Symbol_, 0, period, 0, MaMethod, APrice); if (IsNewBar(Number, Symbol_, 0) || Recount[Number]) { SignalBuy[Number] = false; SignalSell[Number] = false; if (CopyBuffer(Handle[Number], 0, 0, 4, SMA) < 0) { Recount[Number] = true; return; } } Recount[Number] = false; dsma1 = NormalizeDouble(SMA[1] - SMA[2], _Digits); dsma2 = NormalizeDouble(SMA[2] - SMA[3], _Digits); if (dsma2 > 0 && dsma1 > 0) SignalSell[Number] = true; if (dsma2 < 0 && dsma1 < 0) SignalBuy[Number] = true; } }
Непонятно назначение следующих массивов
int Recount[], MinBars[];
1) Recount[] мы сначала обнуляем при каждом вызове функции, а потом зачем-то идет проверка
if (IsNewBar(Number, Symbol_, 0) || Recount[Number])
Смысл в этом, если Recount[Number] всегда = 0?
2)MinBars[] зачем то рассчитывается, а потом никак не используется.
Изменено 13 ноября, 2019 пользователем 0ll
Здравствуйте уважаемые программисты MQL5. Задался вопросом о расчете лотности при депо в % риска. Искал информацию на форумах и гуглах. Находил только ответ на MQL4 при помощи функции MarketInfo(); но к сожалению такой функции в MQL5 нет.
Кто сможет поделится опытом и знаниями, как при помочи переменной % риска на депо, и размер стоп лоста рассчитать правильную лотность на форексах. Буду вам очень благодарен.
Добрый вечер. Заполнил заявку на получение курса уроков на почту. Прошло уже более 5 часов, ответа нет. Подскажите плиз, каков статус заявки ??? Ящик 121267@mail.ru
Прошу помощи.
Нужен простой скрипт (или советник), который открывает два ордера по разным инструментам одновременно (mql5)
Заранее спасибо!
В 09.04.2020 в 19:19, yasd810 сказал:Прошу помощи.
Нужен простой скрипт (или советник), который открывает два ордера по разным инструментам одновременно (mql5)
Заранее спасибо!
Если сопровождение открытых ордеров не планируется, то проще скрипт
Приветствую, внимательно изучил урок по созданию информационной панели: http://tlap.io/mql5-infopanel/
Но так и не понял, каким образом в ней обновляется информация, если объекты удаляются только внутри OnDeinit?
Как обновляются переменные с данными - понятно. Но каким образом эта информация попадает в свойства объектов?
MT5 Expert.zipПриветствую! Недавно смотрел видео на вашем youtube канале https://www.youtube.com/watch?v=fEuwE6WgYTc как написать советника по мартингейлу на основе МА MQL5
Пробую написать иду за автором строка в строку, но при компиляции все равно выдает 2 ошибки , указывает на фигурную скобку С момента записи видео и по сегодня в метаэдиторе произошли изменения может как то это связано с ошибками Можете посмотреть код? , Заранее благодарен
Изменено 8 мая, 2020 пользователем Ramirez1978
@Ramirez1978 @Ramirez1978 Ошибку исправил, но не уверен, что советник будет работать - код плохо структуирован, много вложенных условий. В таком коде легко пропустить логическую ошибку.
Советую хотя-бы открытие ордера вынести в отдельную функцию.
Что то я так и не дождался на почту ссылок на уроки MQ5.
17 часов назад, Nox сказал:Что то я так и не дождался на почту ссылок на уроки MQ5.
Напишите на mail@tlap.io
Ну или просто смотрите по тэгу:
В 02.08.2016 в 23:59, xbms сказал:Уважаемые коллеги, добавлю от себя...
По ссылке полный справочник по функциям MQL5, с примерами, который вы можете скачать себе локально.
Хорошая штука, рекомендую
https://yadi.sk/d/BBFYJw_-trnbN
Сергей, ссылка уже не рабочая, можно еще раз выложить материал?!
В 02.10.2020 в 22:24, Capricorn сказал:Сергей, ссылка уже не рабочая, можно еще раз выложить материал?!
Добрый день! Плз.обновите ссылку, так как не работает. Заранее благодарен!
Добрый день! Может у кого есть модуль или кто может написать модуль на mql5 для открытия 2 ордеров одновременно в одном направлении (2 ордера для хеджинга или 1 с частичным закрытием для нетинга) с выставлением стоп лоса по этим двум позициям и перевод в безубыток при срабатывании тейк-профита первого ордера и тралом 2 ордера. Заранее спасибо.
Изменено 21 октября, 2020 пользователем Alex12345
Коллеги, все доброго дня и крепкого здравия!
У меня еще очень мало опыта.
Пока только учусь.
Написал индикатор АТR.
Принцип работы следующий.
1. Измеряем величину движения цены от дневного максимума до дневного минимума за каждый из последних пяти дней.
2. Находим среднее арифметическое.
3. Измеряем в текущем дне движение от максимума до минимума и вычисляем процент от среднего арифметического.
Проблема в том, что при измерении вручную получаю одни величины, а индикатор дает немного другие.
Не могу понять где ошибка.
Прошу помощи у мэтров программирования.
Индикатор и скрин прилагаю.
3 часа назад, apologietest сказал:Написал индикатор АТR.
глобально в логике нет ошибок.
Я убрал преобразование из double в int на каждом шаге- возможно у Вас там накапливается ошибка расчета...
На рассчитывать среднее значение на каждом тике.. это, мягко говоря, мазохизм...
Добавьте проверку хотя бы на каждой свече.. И то- это будет не оптимально..
Далее... для получения исторических данных в mql5 есть такая штука, как CopyRates();
Как минимум- это работает быстрее, чем цикл...
А если уже заморачиваться с усреднением, то смотрите в сторону встроенных классов стандартных индикаторов..
Но это совсем на любителя
Благодарю за подсказку!
Но у меня ничего не получилось. Оставил как есть.
Посмотрел, что один-два %% на погоду не влияют. ))
Для публикации сообщений создайте учётную запись или авторизуйтесь
Перейти к списку тем