0ll Опубликовано 4 марта, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 4 марта, 2016 Второй скрипт понятнее. в первом ну очень сложные вычисления. У Вас в обе стороны сова торгует? тогда Вам надо 2 уровня для бай и селл? Ссылка на сообщение Поделиться на другие сайты More sharing options...
Rever27 Опубликовано 4 марта, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 4 марта, 2016 Rever27 пробуй так: mytime = TimeCurrent() - Seconds(); Действительно, просто и красиво. Спасибо, коллега ;) Ссылка на сообщение Поделиться на другие сайты More sharing options...
dermitay Опубликовано 4 марта, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 4 марта, 2016 я подкину тебе, ну так вот по секрету между нами девочками, лишь упрощенный код вычисления БУ линии. без учета свопов и комиссий. дальше, я надеюсь, ты дотанцуешь сам. Спойлер double avgPrice = 0; double sumLots = 0; for (int order=OrdersTotal()-1; order >= 0; order--) { if(!OrderSelect(order, SELECT_BY_POS, MODE_TRADES))continue; if (OrderSymbol()==sym && OrderMagicNumber()==Magic && OrderType() == orderType) { avgPrice += OrderOpenPrice()*OrderLots(); sumLots += OrderLots(); } } double newTakeProfit=avgPrice/sumLots; newTakeProfit=NormalizeDouble(newTakeProfit,(int)MarketInfo(sym,MODE_DIGITS)); это код для одной стороны. если тебе надо для двусторонней торговли, то код немногим усложняется, а именно - нужно вычислить куда смотрит вся сеть(например у нас общая лотность на бай больше чем на селл) ордеров, и дальше вычесть из лотности бай лотность селл и играть уже с этой разницей лотности - от этой цифры уже и дальше вычисляй где линии БУ этой ВСЕЙ кучи ордеров.для линии с учетом спредов и комиссии код намного сложнее, но ты с этим пока разберись, если что, позже объясню как вычислить с учетом всего.ЗЫ: а ты не вставляй циклы в цикл. вызывай свою рукописную функцию вычисления линии БУ однократно там где тебе надо, ловкость рук и никакого мошенничества >:d Изменено 4 марта, 2016 пользователем dermitay 3 Ссылка на сообщение Поделиться на другие сайты More sharing options...
Dimakya Опубликовано 5 марта, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 5 марта, 2016 В одно время бот торгует только в одну сторону, так что сильно усложнять не нужно.Ок, спасибо, буду пробовать, смогу ли хоть что-то упрощенное ставить сам :) Ссылка на сообщение Поделиться на другие сайты More sharing options...
Nicole White Опубликовано 6 марта, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 6 марта, 2016 Изучаю урок - советник на мартингейле. Уже 10 раз все перепроверила, все как на видео, но компилятор ругается. Выручайте! Во вложении полный код. А это функция в которую все уперлось. Ошибка в строке с последней закрывающейся скобкой - '}' - not all control paths return a value int FindLastOrderType(){ for (int i = OrdersTotal()-1; i>=0; i--) { if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) { if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic) return (OrderType()); } return(-1); }} Martin4.mq4 Ссылка на сообщение Поделиться на другие сайты More sharing options...
mobidik Опубликовано 6 марта, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 6 марта, 2016 Спойлер Изучаю урок - советник на мартингейле. Уже 10 раз все перепроверила, все как на видео, но компилятор ругается. Выручайте! Во вложении полный код. А это функция в которую все уперлось. Ошибка в строке с последней закрывающейся скобкой - '}' - not all control paths return a value int FindLastOrderType(){ for (int i = OrdersTotal()-1; i>=0; i--) { if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) { if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic) return (OrderType()); } return(-1); }} Переместите return(-1); через одну скобку вниз. 2 Ссылка на сообщение Поделиться на другие сайты More sharing options...
Nicole White Опубликовано 6 марта, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 6 марта, 2016 Переместите return(-1); через одну скобку вниз. Ооо, спасибище, добрый человек! Ссылка на сообщение Поделиться на другие сайты More sharing options...
pavlus777 Опубликовано 9 марта, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 9 марта, 2016 Обновленный урок по написанию скриптов:http://tradelikeapro.ru/izuchaem-mql-skriptyi/ 3 Ссылка на сообщение Поделиться на другие сайты More sharing options...
Starker Опубликовано 9 марта, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 9 марта, 2016 Парни! Есть такой же скрипт, который считает цену маржинкола или стопаута, применительно к сетке? Или новую тему создать? Ссылка на сообщение Поделиться на другие сайты More sharing options...
Kadett Опубликовано 9 марта, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 9 марта, 2016 Здравствуйте! xbms, огромное спасибо за обновлённые видеоуроки!Я полнейший чайник.100 лет назад с бэйсиком знакомился чуть. Смотрю уроки,вникаю,как могу.Пишу следом за Сергеем,коменты в коде подписываю,потом осмысливаю.Извините за профанский вопрос.По уроку про советник по Мартину:всё написал в коде,скомпилировал.Ошибок,предупреждений нет.Начинаю в тестере запускать.Делаю всё как Сергей.Открывает один-два ордера и дальше пишет :" Ошибка модификации ордеров!" и ниже: "OrderModify error 1"Котировки перезагрузил.Проверил на двух терминалах-везде так.Подскажите причину,плз. Test4.Martin_EMA.mq4 Изменено 9 марта, 2016 пользователем Kadett Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 9 марта, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 9 марта, 2016 Парни! Есть такой же скрипт, который считает цену маржинкола или стопаута, применительно к сетке?Да поищи у Павла в сборниках. Там был по-моему индюк, который показывал цену БУ и стоп-аута. 2 Ссылка на сообщение Поделиться на другие сайты More sharing options...
voffka85 Опубликовано 10 марта, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 10 марта, 2016 Здравствуйте! xbms, огромное спасибо за обновлённые видеоуроки!Я полнейший чайник.100 лет назад с бэйсиком знакомился чуть. Смотрю уроки,вникаю,как могу.Пишу следом за Сергеем,коменты в коде подписываю,потом осмысливаю.Извините за профанский вопрос.По уроку про советник по Мартину:всё написал в коде,скомпилировал.Ошибок,предупреждений нет.Начинаю в тестере запускать.Делаю всё как Сергей.Открывает один-два ордера и дальше пишет :" Ошибка модификации ордеров!" и ниже: "OrderModify error 1"Котировки перезагрузил.Проверил на двух терминалах-везде так.Подскажите причину,плз. Исходя из урока проверка открытия ордера идет по iRSI в коде идет проверка iMA, сейчас для интереса поставил на демо счет пока открыл один ордер, ждем что будет далее )) После того как цена прошла против направления открытия ордера советник отрыл 50+ ордеров того же направления с шагом 1 старый пункт Изменено 10 марта, 2016 пользователем voffka85 Ссылка на сообщение Поделиться на другие сайты More sharing options...
mobidik Опубликовано 10 марта, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 10 марта, 2016 Подскажите, как на истории отфильтровать убыточные ордера от вывода средств? Т.е., советник ведет контроль/подсчет убытка за день и если убыток превышает заданное значение за торговый день - торговля останавливается. Вывод средств у меня попадает сейчас как убыток. Вопрос: как его, вывод, отделить от ордеров?И еще вопрос: есть параметр для типа ордеров - "6" //OrderType() == 6//. Документация молчит о нем, кто знает, растолкуйте как с ним работать. Где-то читал, что его параметры у каждого брокера свои, как их определять? Ссылка на сообщение Поделиться на другие сайты More sharing options...
Kadett Опубликовано 10 марта, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 10 марта, 2016 Здравствуйте! xbms, огромное спасибо за обновлённые видеоуроки!Я полнейший чайник.100 лет назад с бэйсиком знакомился чуть. Смотрю уроки,вникаю,как могу.Пишу следом за Сергеем,коменты в коде подписываю,потом осмысливаю.Извините за профанский вопрос.По уроку про советник по Мартину:всё написал в коде,скомпилировал.Ошибок,предупреждений нет.Начинаю в тестере запускать.Делаю всё как Сергей.Открывает один-два ордера и дальше пишет :" Ошибка модификации ордеров!" и ниже: "OrderModify error 1"Котировки перезагрузил.Проверил на двух терминалах-везде так.Подскажите причину,плз. Исходя из урока проверка открытия ордера идет по iRSI в коде идет проверка iMA, сейчас для интереса поставил на демо счет пока открыл один ордер, ждем что будет далее )) После того как цена прошла против направления открытия ордера советник отрыл 50+ ордеров того же направления с шагом 1 старый пункт Да нет,в уроке проверка по iMA.(11-я минута видео) Ссылка на сообщение Поделиться на другие сайты More sharing options...
NickWelder Опубликовано 10 марта, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 10 марта, 2016 Здравствуйте. Возможно ли средствами MQL преобразовать число с плавающей точкой из Unicode в ANSI? Если нет, подскажите, в каком направлении копать. Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 10 марта, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 10 марта, 2016 mobidik считать просадку надо не по депозиту, а путём пересчёта ордеров с фильтром типа:if ( OrderOpenTime ( ) > Segodna ) sumPL += OrderProfit()+OrderCommission()+OrderSwap();Тип ордера 6 и выше это не для МТ4 (имхо) Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 10 марта, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 10 марта, 2016 Вы имеете в виду преобразование числа в строку? Сейчас всё в Unicode для ANSII смотри функцию StringToCharArray 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
fx2015 Опубликовано 11 марта, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 11 марта, 2016 Нашел на просторах интернета рабочую софтину, которая делает вполне корректную разметку по Elliott Wave. Проблема в том, что индикатор (код открытый) который выводит разметку на график при компиляции выдает ошибку. Ребята, посмотрите кто дружит с кодом, может получиться подправить. Инструкция и индикаторы в архиве. ScanWave_v.0.2.zipsw1.pngsw5.pngScanWave_v.0.2.png Ссылка на сообщение Поделиться на другие сайты More sharing options...
NickWelder Опубликовано 11 марта, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 11 марта, 2016 0ll, извиняюсь, наверное надо было поподробнее расписать. Имелось ввиду преобразование числа с плавающей точкой в Unicode в число с плавающей точкой в ANSI. Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 11 марта, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 11 марта, 2016 0ll, извиняюсь, наверное надо было поподробнее расписать. Имелось ввиду преобразование числа с плавающей точкой в Unicode в число с плавающей точкой в ANSI. NickWelder хоть убей меня - не пойму какое отношение имеет кодировка символов к числу с плавающей точкой...Кодировка это просто некая условность - с помощью какой цифры представить некую букву или графический символ. Число никак к этому отношения не имеет - только если преобразовать в символы.Чтоб понять как Вам помочь, видимо надо узнать задачу целиком - как возник в Вашей голове столь затейливый вопрос? Ссылка на сообщение Поделиться на другие сайты More sharing options...
NickWelder Опубликовано 11 марта, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 11 марта, 2016 Пишу советник, использующий в своей работе нейронную сеть. Советник реализуется с использованием MQL4, нейронка с использованием Fann 2.2 и Fann2MQL - её оболочки для MQL4. При обучении и тестах нейросеть отрабатывала отлично, а вот при её использовании в советнике на выходе она выдавала всякую ересь. Запускал нейронку через FannTool и давал ей на вход абсолютно те же самые данные - она отрабатывала их так, как должна. При обучении нейросети обучающую выборку ей пришлось давать в txt-файле в ANSI кодировке, так как при подаче файла в Unicode программа просто висла и отказывалась работать. Поэтому и подумал, что дело может быть в этом. 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
nixxer Опубликовано 11 марта, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 11 марта, 2016 NickWelder, StringToCharArray, как было сказано выше. Либо же переписать библиотеку под уникод, что не всегда бывает возможно. 2 Ссылка на сообщение Поделиться на другие сайты More sharing options...
dzennn2 Опубликовано 11 марта, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 11 марта, 2016 Исправил , компилируются..Но при работе требует какой-то файл2016.03.11 12:55:56.399 ScanWave Indicator v.0.2 USDCHF,H1: файл ResultAnalysisUSDCHF60.csv не обнаружен ошибка 5004Дальше не разбирался ScanWave_Indicator_v.0.2_fix.mq4ScanWave_Indicator_v.0.2.1_fix.mq4ScanWave_Indicator_v.0.2.2_fix.mq4 3 Ссылка на сообщение Поделиться на другие сайты More sharing options...
fx2015 Опубликовано 11 марта, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 11 марта, 2016 Исправил , компилируются..Но при работе требует какой-то файл2016.03.11 12:55:56.399 ScanWave Indicator v.0.2 USDCHF,H1: файл ResultAnalysisUSDCHF60.csv не обнаружен ошибка 5004Дальше не разбирался Спасибо! Отчет который создала программа называется ResultAnalysisEURUSD, его нужно переименовать руками ResultAnalysisEURUSD60. При условии, что вы открыли H1 на паре EURUSD.Вечером буду разбираться, так-то вроде разметка появилась. :)updateВсе корректно работает, нужно только правильно экспортировать котировки из терминала. 2016-03-11.png Изменено 11 марта, 2016 пользователем fx2015 3 Ссылка на сообщение Поделиться на другие сайты More sharing options...
voffka85 Опубликовано 11 марта, 2016 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 11 марта, 2016 Здравствуйте! xbms, огромное спасибо за обновлённые видеоуроки!Я полнейший чайник.100 лет назад с бэйсиком знакомился чуть. Смотрю уроки,вникаю,как могу.Пишу следом за Сергеем,коменты в коде подписываю,потом осмысливаю.Извините за профанский вопрос.По уроку про советник по Мартину:всё написал в коде,скомпилировал.Ошибок,предупреждений нет.Начинаю в тестере запускать.Делаю всё как Сергей.Открывает один-два ордера и дальше пишет :" Ошибка модификации ордеров!" и ниже: "OrderModify error 1"Котировки перезагрузил.Проверил на двух терминалах-везде так.Подскажите причину,плз. Исходя из урока проверка открытия ордера идет по iRSI в коде идет проверка iMA, сейчас для интереса поставил на демо счет пока открыл один ордер, ждем что будет далее )) После того как цена прошла против направления открытия ордера советник отрыл 50+ ордеров того же направления с шагом 1 старый пункт выкладываю детализацию с демосчета в итоге слился, погубило то что не открывал ордера на продажу, почти за сутки заработал 25 000 тысяч с депозита 10 000DetailedStatement.zip Ссылка на сообщение Поделиться на другие сайты More sharing options...
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти