0ll Опубликовано 8 декабря, 2017 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 8 декабря, 2017 Господа программисты, при определенном размере массива если он полностью заполнен и поступает новое значение - выдаст ошибку или перепишет самое старое?Какой индекс укажете туда и запишет, если индекс выйдет из размера массива - не запишет. Автоматом, как в индикаторах, в сове размерность не увеличивается и индексация не сдвигается - надо ручками прописывать. 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
mrJack Опубликовано 8 декабря, 2017 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 8 декабря, 2017 Если параметр текстовый, то советник читает сайт с заданной периодичностью, находит параметр и отображает.Если графический, то сложнее, но тоже возможно. Необходим текстовый - без всяких наворотов. Считывание - каждые пол часа. Этот индикатор необходим для общего представления, чтобы не открывать множество различных сайтов для сбора информации для анализа ситуации. Ссылка на сообщение Поделиться на другие сайты More sharing options...
vitek01 Опубликовано 9 декабря, 2017 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 9 декабря, 2017 здраствуйте. при созданий обьекта (ObjectCreate ("TREND_TEXT", OBJ_LABEL, 0, 0, 0) ),редактирование ( ObjectSet ("TREND_TEXT", OBJPROP_FONT,"Times New Roman")) наткнулся на непонятную вещь, может кто знающий прокоментирует, что это глюк или я ошибся?выскакивает предупреждение. глюк.jpg Изменено 9 декабря, 2017 пользователем vitek01 Ссылка на сообщение Поделиться на другие сайты More sharing options...
machine Опубликовано 9 декабря, 2017 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 9 декабря, 2017 ObjectSetString 2 Ссылка на сообщение Поделиться на другие сайты More sharing options...
Сергей Попов Опубликовано 12 декабря, 2017 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 12 декабря, 2017 Добрый день!Подскажите мне, можно ли какой то функцией советника, включить стандартный TS в MT4? Я понимаю, что его можно включить руками, но когда много сделок, и очень резкие движения цены, то это просто не возможно.У меня в советнике есть кнопка на экране, специально для этого, но программный TrailingStop только включается(выставляет SL) но не тралит. Изменено 12 декабря, 2017 пользователем Сергей Попов Ссылка на сообщение Поделиться на другие сайты More sharing options...
pavlus777 Опубликовано 17 декабря, 2017 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 17 декабря, 2017 Свежий урок:http://tradelikeapro.ru/pishem-ea-dlya-forex-tester/ 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
4er58 Опубликовано 21 декабря, 2017 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 21 декабря, 2017 Ребят , скажите , возможно ли с кода страницы сайта https://ru.investing.com/economic-calendar/ найти ссылки на прямые источники , которые обновляют экономические данные ? Просил сделать урок по написанию индюка или совы Экономического календаря , но ничего подобного ни делают ., админ это очень сложно , в чем проблема ? Добавлено: 21-12-2017 21:32:40Тут наверное потребуются также знание PHP языка ? Изменено 21 декабря, 2017 пользователем 4er58 Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 22 декабря, 2017 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 22 декабря, 2017 4er58 нет там источника. Источников полно в инете, новостные индюки тоже есть, даже в исходном коде. Ссылка на сообщение Поделиться на другие сайты More sharing options...
4er58 Опубликовано 22 декабря, 2017 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 22 декабря, 2017 4er58 нет там источника. Источников полно в инете, новостные индюки тоже есть, даже в исходном коде. Ни одного нормально быстрого новостного индикатора в сети нету , если есть то показывают архив или дату выхода новостей , а быстро обновляемых фактических данных нету , один хлам в сети . Поэтому и просил сделать урок на основе сайта Инвестинг. Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 23 декабря, 2017 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 23 декабря, 2017 Ни одного нормально быстрого новостного индикатора в сети нету , если есть то показывают архив или дату выхода новостей , а быстро обновляемых фактических данных нету , один хлам в сети . Поэтому и просил сделать урок на основе сайта Инвестинг. Чтобы реализовать Ваше желание создайте тему с обзором новостных источников и доступных индюков. Я думаю найдутся желающие подправить код какого-нибудь индюка на получение новостей с инвестинг. Просто нужно красиво расписать проблему. Ссылка на сообщение Поделиться на другие сайты More sharing options...
4er58 Опубликовано 23 декабря, 2017 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 23 декабря, 2017 Ни одного нормально быстрого новостного индикатора в сети нету , если есть то показывают архив или дату выхода новостей , а быстро обновляемых фактических данных нету , один хлам в сети . Поэтому и просил сделать урок на основе сайта Инвестинг. Чтобы реализовать Ваше желание создайте тему с обзором новостных источников и доступных индюков. Я думаю найдутся желающие подправить код какого-нибудь индюка на получение новостей с инвестинг. Просто нужно красиво расписать проблему. Я ведь просил эту тему сделать в виде урока , чтобы что то подобное можно было самому писать . Да и такая тема с уроком хорошо бы развила дополнительные возможности программирования . Павел вроде говорил что эта тема в разработке , но смущает тишина , может вы у него спросите , что бы быть в курсе событий , вы же все там начальство друг друга знаете :) Можете узнать , будет урок или нет , чтобы ни терять время и обращаться к фрилансерам ? Изменено 23 декабря, 2017 пользователем 4er58 Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 23 декабря, 2017 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 23 декабря, 2017 4er58 я исхожу из того, что Вы погружены в новостную тему и для форума Ваш обзор новостных ресурсов и индюков был-бы очень полезен, может быть всё-таки сделаете?По поводу урока - задайте Павлу или Сергею в личку. Я их знаю так-же как и Вас. Ссылка на сообщение Поделиться на другие сайты More sharing options...
4er58 Опубликовано 23 декабря, 2017 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 23 декабря, 2017 4er58 я исхожу из того, что Вы погружены в новостную тему и для форума Ваш обзор новостных ресурсов и индюков был-бы очень полезен, может быть всё-таки сделаете?По поводу урока - задайте Павлу или Сергею в личку. Я их знаю так-же как и Вас. Сергей ссылается на Павла , а Павел сказал что тема в разработке :) , если заводить новую тему , то урока мне не видать , если даже ребята напишут сей девайс , то без тщательного разбора кода я ничего не пойму , я смотрел аналогичные , для меня темный лес . Спрошу у Павлика еще раз .Добавлено: 24-12-2017 13:42:07 Изменено 25 декабря, 2017 пользователем 4er58 Ссылка на сообщение Поделиться на другие сайты More sharing options...
1STX1 Опубликовано 24 декабря, 2017 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 24 декабря, 2017 Ребята как в mql4 в редакторе добавить текст и чтобы при компиляции в советнике выходил мой текст?Хочу сделать Баланс: , просадку и тп. Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 25 декабря, 2017 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 25 декабря, 2017 Ребята как в mql4 в редакторе добавить текст и чтобы при компиляции в советнике выходил мой текст?Хочу сделать Баланс: , просадку и тп.Вы хотите увидеть некие параметры торговли на экране? Самое простое с помощью Comment("Баланс = ", AccountBalans())Есть вариант через Label, но он посложнее Ссылка на сообщение Поделиться на другие сайты More sharing options...
viper710 Опубликовано 25 декабря, 2017 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 25 декабря, 2017 ObjectSetText(), в справке посмотрите. Ссылка на сообщение Поделиться на другие сайты More sharing options...
Stepkondr Опубликовано 29 декабря, 2017 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 29 декабря, 2017 Помогите пожалуйста!!! Как мне в переменную x вставить значение котировки с которой началась торговая сессия? Screenshot_13.png Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 29 декабря, 2017 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 29 декабря, 2017 Помогите пожалуйста!!! Как мне в переменную x вставить значение котировки с которой началась торговая сессия?Вы хотите при запуске совы в настройках увидеть актуальную цену? Я не знаю как это сделать программно, только ручками.Всех форумчан с наступающим! Меня не будет неделю - поеду в Россию сыну снег показывать. :) 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
zhab3r Опубликовано 31 декабря, 2017 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 31 декабря, 2017 Помогите пожалуйста!!! Как мне в переменную x вставить значение котировки с которой началась торговая сессия? Как то так (CSym::TodayOpenPrice()):class CDT{public: CDT() {} ~CDT() {} static ENUM_DAY_OF_WEEK DayOfWeek(const datetime time) { CDateTime dt; dt.DateTime(time); return(ENUM_DAY_OF_WEEK(dt.day_of_week)); } static ENUM_DAY_OF_WEEK DayOfWeek(void) { return(DayOfWeek(TimeCurrent())); } static datetime DayStartTime(const datetime time) { CDateTime dt; dt.DateTime(time); dt.hour=0; dt.min=0; dt.sec=0; return(dt.DateTime()); } static datetime DayStartTime(void) { return(DayStartTime(TimeCurrent())); }} class CSym{public: CSym() {} ~CSym() {} static string GetSymbol(const string symbol) { return(symbol == "" || symbol == NULL ? _Symbol : symbol); } static datetime TodayOpenTime(const string symbol=NULL); static double TodayOpenPrice(const string symbol=NULL);}//+------------------------------------------------------------------+datetime CSym::TodayOpenTime(const string symbol=NULL){ datetime ses_open, ses_close; if (!SymbolInfoSessionQuote(GetSymbol(symbol),CDT::DayOfWeek(),0,ses_open,ses_close)) _WL("eS","Unble to get session open/close info",0,return(0)) return(CDT::DayStartTime()+ses_open);}//+------------------------------------------------------------------+double CSym::TodayOpenPrice(const string symbol=NULL){ double price_buf[]; ENUM_TIMEFRAMES tf=(ENUM_TIMEFRAMES)_Period; tf=tf > PERIOD_D1 ? PERIOD_D1 : tf; if (CopyOpen(GetSymbol(symbol),tf,TodayOpenTime(symbol),1,price_buf) != 1) _WL("eS","",USR_GET_RATES_UNEXP_CNT,return(0)) return(price_buf[0]);} 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
4er58 Опубликовано 2 января, 2018 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 2 января, 2018 Павел , или кто может , помогите пожалуйста декомпильнуть 2 новостных ex4 , первый индиктор IceFX.NewsInfo.v2.6.1 , он должен показывать актуальные данные но не хочет , второй сделан демо советником , показывает почти все что нужно . IceFX.NewsInfo.v2.6.1.zipinvesting.ex4 Ссылка на сообщение Поделиться на другие сайты More sharing options...
Александр_F Опубликовано 9 января, 2018 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 9 января, 2018 Здравствуйте, подскажите пожалуйста. Как написать советник на базе стрелочного индикатора?(его код прикрепляю чуть ниже). Дело в том что, я не могу придумать логику, по которой должна работать данная сова, заранее спасибо. P.S. Советник не перерисовывает Спойлер #property indicator_chart_window#property indicator_buffers 2#property indicator_color1 Blue#property indicator_color2 Red//---- input parametersextern int NumBars=500;extern string SoundFilename1="alert.wav";extern string SoundFilename2="alert.wav";//---- buffersdouble ExtMapBuffer1[];double ExtMapBuffer2[];double spread;//+------------------------------------------------------------------+//| Custom indicator initialization function |//+------------------------------------------------------------------+int init() {//---- indicators SetIndexStyle(0,DRAW_ARROW); SetIndexBuffer(0,ExtMapBuffer1); SetIndexArrow(0,233); SetIndexStyle(1,DRAW_ARROW); SetIndexBuffer(1,ExtMapBuffer2); SetIndexArrow(1,234); spread=MarketInfo(Symbol(),MODE_SPREAD)*Point;//---- return(0); }//+------------------------------------------------------------------+//| Custor indicator deinitialization function |//+------------------------------------------------------------------+int deinit() {//---- //---- return(0); }//+------------------------------------------------------------------+//| Custom indicator iteration function |//+------------------------------------------------------------------+int start() { int counted_bars=IndicatorCounted(); //---- int artp=7; double dartp=7.0; double cecf=0.7; int satb=0; int Shift=0; bool river=True; double Emaxtra=0; double widcha=0; double TR=0; double Values[100]; int glava=0; double ATR=0; int J=0; double Weight=0; double r=0; double r1=0; int p=0; int Curr=0; double Range1=0; double s=2; double f=10; double val1=0; double val2=0; double h11=0; double h12=0; double h13=0; double const=0; double orig=0; double st=0; double h2=0; double h1=0; double h10=0; double sxs=0; double sms=0; double temp=0; double h5=0; double r1s=0; double r2s=0; double r3s=0; double r4s=0; double pt=0; double pts=0; double r2=0; double r3=0; double r4=0; double tt=0; if( Bars if( Close[satb - 2] > Close[satb - 1]) river = True; else river = False; Emaxtra = Close[satb - 2]; Shift=satb-3; while(Shift>=0) { TR = spread+ High[Shift] - Low[Shift]; if( MathAbs(spread+ High[Shift] - Close[Shift + 1]) > TR ) TR = MathAbs(spread+ High[Shift] - Close[Shift + 1]); if( MathAbs(Low[Shift] - Close[Shift + 1]) > TR) TR = MathAbs(Low[Shift] - Close[Shift + 1]); if (Shift == satb - 3 ) { for(J=0;Shift Values[J] = TR; } } Values[glava] = TR; ATR = 0; Weight = artp; Curr = glava; for (J = 0;J ATR += Values[Curr] * Weight; Weight -= 1.0; Curr--; if (Curr == -1) Curr = artp - 1; } ATR = 2.0 * ATR / (dartp * (dartp + 1.0)); glava++; if (glava == artp) glava = 0; widcha = cecf * ATR; if (river && Low[Shift] river = False; Emaxtra = spread+ High[Shift]; } if (!river && spread+ High[Shift] > Emaxtra + widcha) { river = True; Emaxtra = Low[Shift]; } if (river && Low[Shift] > Emaxtra) { Emaxtra = Low[Shift]; } if (!river && spread+ High[Shift] Emaxtra = spread+ High[Shift]; } Range1 = iATR(NULL,0,10,Shift); val1 = 0; val2 = 0; if (river) { if (p != 1) r1 = Low[Shift] - Range1 * s / 3.0; if (p == 1) r1 = -1.0; if (r1 > 0) { val1 = r1; val2 = 0; } else { val1 = 0; val2 = 0; } ExtMapBuffer1[Shift]=val1; p = 1; } else { if (p != 2) r1 = spread+ High[Shift] + Range1 * s / 3.0; if (p == 2) r1 = -1.0; if (r1 > 0) { val1 = 0; val2 = r1; } else { val1 = 0; val2 = 0; } ExtMapBuffer2[Shift]=val2; p = 2; } Shift--; }//---- return(0); }//+------------------------------------------------------------------+ Изменено 10 января, 2018 пользователем 0ll Ссылка на сообщение Поделиться на другие сайты More sharing options...
11bish Опубликовано 10 января, 2018 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 10 января, 2018 Народ, всех приветствую! Что-то никак не приходит учебник из первого поста на ящик. Так должно быть? Если что-то пропустил - сильно не пинать! Так понимаю, он ушел на доработку и не вернулся? >D-b Ссылка на сообщение Поделиться на другие сайты More sharing options...
Evendx Опубликовано 20 января, 2018 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 20 января, 2018 Здравствуйте. Пишу себе советник по уровнях и вот хочу узнать как можно вытащить значения экстремумов из индикатора "ZigZag" и провести по ним уровни. Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 20 января, 2018 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 20 января, 2018 Evendx есть разные зигзаги с 1 и 2 буферами, но суть одна - в буферах содержатся "0" между экстремумами, а когда он сформировался, то записывается цена. Сложность заключается в том, то это происходит не на 0 или 1 свече, а зависит от настроек зигзага и может быть 3, 5 и т.д. Т.е. надо вычислить номер свечи на которой появляется вершина зигзага, типа: int n = (int)(zzSize / 2) + 1;Затем в советнике по закрытии свечи проверять наличие вершины, типа: if ( newBar() ) newV = iCustom("ZigZag",..., n)if ( newV > 0 ) // Здесь код пересчёта уровняИмейте в виду - в одно-буферном Зигзаге верх и низ вершины строго чередуются.Более простой для понимания вариант - это искать в цикле на каждом новом баре 2 верхних и 2 нижних вершины и строить уровни... 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
Evendx Опубликовано 20 января, 2018 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 20 января, 2018 Evendx есть разные зигзаги с 1 и 2 буферами, но суть одна - в буферах содержатся "0" между экстремумами, а когда он сформировался, то записывается цена. Сложность заключается в том, то это происходит не на 0 или 1 свече, а зависит от настроек зигзага и может быть 3, 5 и т.д. Т.е. надо вычислить номер свечи на которой появляется вершина зигзага, типа: int n = (int)(zzSize / 2) + 1;Затем в советнике по закрытии свечи проверять наличие вершины, типа: if ( newBar() ) newV = iCustom("ZigZag",..., n)if ( newV > 0 ) // Здесь код пересчёта уровняИмейте в виду - в одно-буферном Зигзаге верх и низ вершины строго чередуются.Более простой для понимания вариант - это искать в цикле на каждом новом баре 2 верхних и 2 нижних вершины и строить уровни... А вы можете пожалуйста написать этот цикл кодом для Однобуферного ЗигЗага чтоб на выходе я мог получить отдельно все High экстремумы и Low экстремумы за последние 500 баров? Ссылка на сообщение Поделиться на другие сайты More sharing options...
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти