Dimasyok Опубликовано 12 июля, 2013 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 12 июля, 2013 В уроках ведь рассматривали как делать подсчет ордеров.int CountBuy(){ int count = 0; for (int trade = OrdersTotal()-1; trade >= 0; trade --) { OrderSelect(trade, SELECT_BY_POS); if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic) count++; }return (count);} Ссылка на сообщение Поделиться на другие сайты More sharing options...
ar7319 Опубликовано 12 июля, 2013 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 12 июля, 2013 Все правильно. Это функция расчета количества уже открытых ордеров.А надо обнулить переменную количества ордеров ПОСЛЕ закрытия. Как это сделать -- х.з. Ссылка на сообщение Поделиться на другие сайты More sharing options...
Dimasyok Опубликовано 12 июля, 2013 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 12 июля, 2013 Все правильно. Это функция расчета количества уже открытых ордеров.А надо обнулить переменную количества ордеров ПОСЛЕ закрытия. Как это сделать -- х.з. int count = 0;Вот это и есть обнуление. Ты сперва присваеваешь 0 потом уже считаешь, если ордера есть, то будет 1, если нет то так и останется 0. Ссылка на сообщение Поделиться на другие сайты More sharing options...
Vorchunozavr Опубликовано 12 июля, 2013 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 12 июля, 2013 ar7319 Цитата А надо обнулить переменную количества ордеров ПОСЛЕ закрытия. Дык, переменная обнуляется при каждом вызове функции. Только надо исправить: Цитата int Count = 0; на Цитата int count = 0; Ссылка на сообщение Поделиться на другие сайты More sharing options...
ar7319 Опубликовано 12 июля, 2013 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 12 июля, 2013 Спасибо огромное! Заработало! Да, внимательность в этом деле не на последнем месте. Еще раз спасибо!!! Ссылка на сообщение Поделиться на другие сайты More sharing options...
samuliak Опубликовано 15 июля, 2013 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 15 июля, 2013 Всем привет!Ребята, у меня возник вопрос: как сделать, что бы советник брал во внимание старшие таймы. Например входит на М15, но тренд по МА смотрит на Н1, Д1 и дальше. Как то так.... буду очень благодарен! Ссылка на сообщение Поделиться на другие сайты More sharing options...
bizforex Опубликовано 16 июля, 2013 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 16 июля, 2013 Всем привет!Ребята, у меня возник вопрос: как сделать, что бы советник брал во внимание старшие таймы. Например входит на М15, но тренд по МА смотрит на Н1, Д1 и дальше. Как то так.... буду очень благодарен! для МА можно увеличить период во столько на сколько большее высшей тф твоего, т.е. с тф м15 ты хочешь посмотреть ма на h1 с периодом 10, тф h1 больше м15 на 4, нужно период (10) умножить на 4. Ссылка на сообщение Поделиться на другие сайты More sharing options...
Romhacker Опубликовано 17 июля, 2013 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 17 июля, 2013 Всем привет!Ребята, у меня возник вопрос: как сделать, что бы советник брал во внимание старшие таймы. Например входит на М15, но тренд по МА смотрит на Н1, Д1 и дальше. Как то так.... буду очень благодарен! Нужно просто указать функции нужный таймфрейм:double ma_h1 = iMA(NULL, PERIOD_H1,..);double ma_d1 = iMA(NULL, PERIOD_D1,..); Ссылка на сообщение Поделиться на другие сайты More sharing options...
Виктор333 Опубликовано 18 июля, 2013 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 18 июля, 2013 Приветствую, а скажите пожалуйста, почему файл MQL4 Source File невозможно декомпильнуть, в чем может быть причина? заранее спасибо. Ссылка на сообщение Поделиться на другие сайты More sharing options...
sven003 Опубликовано 18 июля, 2013 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 18 июля, 2013 спасибо за ветку. Очень наглядно все выходит. Хотя предпочитаю сам торговать без советников, но после прочтения ветки загорелся написание своего советника Ссылка на сообщение Поделиться на другие сайты More sharing options...
Anvan Опубликовано 19 июля, 2013 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 19 июля, 2013 Приветствую, а скажите пожалуйста, почему файл MQL4 Source File невозможно декомпильнуть, в чем может быть причина? заранее спасибо. Что значит "MQL4 Source File"? С расширением *.mq4 или *.ex4?Если это файл *.ex4 , то проблема может быть в новом билде терминала.Декомпайлер возможно не поддерживает последние билды.А лучше выложить скрин с ошибкой :) Ссылка на сообщение Поделиться на другие сайты More sharing options...
Виктор333 Опубликовано 19 июля, 2013 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 19 июля, 2013 А вот сам файл,. @-) Добавлено: 19-07-2013 12:13:37у кого получилось компильнуть его, поделитесь, просто я в этом деле чайник, мягко говоря :-sUltimate_Market_Harmonics.mq4 Изменено 19 июля, 2013 пользователем Виктор333 Ссылка на сообщение Поделиться на другие сайты More sharing options...
Cerebellum Опубликовано 19 июля, 2013 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 19 июля, 2013 Привет всем. Вот решил испытать свои силы и написать первый советник.Советник по этой стратегии.Сам советник вроде получился и работает, только профит примерно равен нулю.Заметил, что много профитных сделок закрываются раньше времени, и решил прикрутить ступенчатый трейлинг.При компиляции ошибок нет, но трейлинг не работает.Помогите разобраться.P.S. Стратегия изначально рассчитана на золото, но я тестил на евробаксе Н1, т.к. с золотом какие-то заморочки. Gold.mq4 Ссылка на сообщение Поделиться на другие сайты More sharing options...
Azirel Опубликовано 19 июля, 2013 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 19 июля, 2013 Всем привет.Есть проблема с использованием значений индикаторов в советнике.И так, нужные мне индикаторы для советника - ExtremeTMALine, TMASlope.v1.5 Normalized, Heiken Ashi.С первым, вроде как, всё понятно - #property indicator_color2 White - верхняя граница (Индекс линии индикатора - 1) #property indicator_color3 White - нижняя граница (Индекс линии индикатора - 2)А вот с остальными двумя что-то непонятное.TMASlope и Heiken Ashi, по идее, должны выдавать только одно дробное значение на каждый тик, а вот параметров подобных ExtremeTMALine у каждого индикатора несколько.Если с Heiken Ashi ещё можно поиграться с цветами и кое как вкурить о чем там(чем щас и занят). То с TMASlope не понятно вообще какой именно индекс линии индикатора надо ставить в iCustom для получения значения TMASlope на каждом тике?Если вкратце, то помогите определить индексы линий индикатора для TMASlope и Heiken Ashi для получения их значения на каждом тике.UPD. С TMASlope и Heiken Ashi, вроде как, разобрался, пока на истории показывают правильные результаты, точнее можно будет проверить когда рынок снова затикает(выдрал формулы из ExtremeTMAInfo).А вот с ExtremeTMALine всё оказалось наоборот, работают с 0 по 3-й индексы линий, но не один из них не соответствует линиям(уровням) которые этот индикатор рисует в окне инструмента. HELP SOMEONE, HELP! Изменено 21 июля, 2013 пользователем Azirel Ссылка на сообщение Поделиться на другие сайты More sharing options...
Vorchunozavr Опубликовано 20 июля, 2013 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 20 июля, 2013 Добрый день.В новом уроке, первый трейлинг не тралит Sell-ордера. Цитата if (OrderStopLoss() > Ask + (TrailingStop + TrailingStep)*Point) Если стопа нет, значит OrderStopLoss() == 0. xbms, специально так сделал, чтобы думать учились?Я чуть голову не сломал :) Ссылка на сообщение Поделиться на другие сайты More sharing options...
Cerebellum Опубликовано 20 июля, 2013 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 20 июля, 2013 Вопрос такой. Есть два отдельных советника - один торгует, другой тралит. Если их поставить на одну валютную пару, но в разные окна и передать magic торгующего советника в трал. Будет работать? Добавлено: 20-07-2013 16:04:32Еще вопрос. С 3-х и 5-значным брокером понятно. А если в данном инструменте (например, золото) два знака после запятой, как тогда быть? Чтобы все правильно обрабатывалось. Изменено 20 июля, 2013 пользователем Cerebellum Ссылка на сообщение Поделиться на другие сайты More sharing options...
Vorchunozavr Опубликовано 21 июля, 2013 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 21 июля, 2013 Cerebellum1. Да.2. Если советник тралит только символ на который установлен, то на золоте, достаточно выставить адекватные TrailingStop и TrailingStep. Если трал универсальный (тралит все ордера по всем парам), для золота можно вписать проверку Цитата if (OrderSymbol() == "XAUUSD") { TrailingStop *= x; TrailingStep *= x; StopLoss *= x; Slippage *= x; } x - вынести во внешние переменные. Ссылка на сообщение Поделиться на другие сайты More sharing options...
Cerebellum Опубликовано 21 июля, 2013 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 21 июля, 2013 x - вынести во внешние переменные. И чему равно Х? Я все-таки не понял нужно ли что-то менять, если 2 знака после запятой?На 3- и 5-знаках умножаем на 10. А если 2 знака? Ссылка на сообщение Поделиться на другие сайты More sharing options...
Vorchunozavr Опубликовано 21 июля, 2013 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 21 июля, 2013 Cerebellum Цитата И чему равно Х? Золотом не торгую. Теоретически 30 - 100. Цитата На 3- и 5-знаках умножаем на 10. А если 2 знака? Не умножаем.Проверка на количество знаков котировок брокера - это вторично. Это сделано для универсальности, если для четырёхзначного SL будет 50 пунктов, то для пятизначного советник автоматически поставит 500. Для себя это можно вообще не писать, ИМХО. Здесь важно понять, для чего нужна Point (размер пункта текущего инструмента в валюте котировки). Умножая наш SL в 50 пунктов на Point, получаем (4-х знаке) 0,0050 (теперь его можно вычитать из цены, или прибавлять). На золоте мы получим 0,50. Просто для золота 50 пунктов - это, обычно, меньше чем спред, то TrailingStop = 1000, а TrailingStep = 400.Как-то так ;)ДЗ Parabolic:SAR_Trailing_0001.mq4 Изменено 21 июля, 2013 пользователем Vorchunozavr Ссылка на сообщение Поделиться на другие сайты More sharing options...
ar7319 Опубликовано 24 июля, 2013 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 24 июля, 2013 Здравствуйте!Немного переделал советник по ТМА. Идея такая: он открывает ордера на границах канала и плюс еще лимитный ордер.При срабатывании лимитника открывается новый лимитный ордер и т.д.Закрытие ордеров на противоположных границах. Вот только работает он как-то криво. Лимитники строчит на каждом тике. В чем ошибка?Скрин и советник во вложении.С уважением. 123.JPGTest_TMA_Limit.mq4 Ссылка на сообщение Поделиться на другие сайты More sharing options...
bizforex Опубликовано 25 июля, 2013 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 25 июля, 2013 Здравствуйте!Немного переделал советник по ТМА. Идея такая: он открывает ордера на границах канала и плюс еще лимитный ордер.При срабатывании лимитника открывается новый лимитный ордер и т.д.Закрытие ордеров на противоположных границах. Вот только работает он как-то криво. Лимитники строчит на каждом тике. В чем ошибка?Скрин и советник во вложении.С уважением. Цитата if(Bid >= PriceHigh && CountSellLimit() == 0) OT = NormalizeDouble(Bid + Otstup*Point, Digits); OrderSend(Symbol(), OP_SELLLIMIT, Lots, OT, Slippage, 0, 0, comment, Magic, 0, Red); нет скобок после if, поэтому условие описанное в этом операторе не ограничивает открытие ордера. на бай таж фигня.Добавлено: 25-07-2013 04:57:00Помогите разобраться с вопросом в этом посте:http://tlap.com/forum/ugolok-programmista/13/obuchenie-yazyku-mql4-pod-metatrader-4/4034/?do=findComment&comment=81313 Изменено 25 июля, 2013 пользователем bizforex Ссылка на сообщение Поделиться на другие сайты More sharing options...
ar7319 Опубликовано 25 июля, 2013 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 25 июля, 2013 BIZFOREX, большое спасибо. Все заработало как надо. С уважением. Ссылка на сообщение Поделиться на другие сайты More sharing options...
talliy Опубликовано 27 июля, 2013 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 27 июля, 2013 Ребят подскажите как в массивы снять данные файла истории котировок? Ссылка на сообщение Поделиться на другие сайты More sharing options...
loopsider Опубликовано 27 июля, 2013 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 27 июля, 2013 Ребят подскажите как в массивы снять данные файла истории котировок? double array1[][6]; ArrayCopyRates(array1,"EURUSD", PERIOD_H1); Print("Current bar ",TimeToStr(array1[0][0]),"Open", array1[0][1]); Ссылка на сообщение Поделиться на другие сайты More sharing options...
talliy Опубликовано 27 июля, 2013 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 27 июля, 2013 double array1[][6]; ArrayCopyRates(array1,"EURUSD", PERIOD_H1); Print("Current bar ",TimeToStr(array1[0][0]),"Open", array1[0][1]); Не, надо как раз с файла .hst и передать в архив данные лоу, хейдж, макс, мин.... с графика можно забрать, только не в этой ситуации Ссылка на сообщение Поделиться на другие сайты More sharing options...
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти