zened Опубликовано 20 августа, 2019 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 20 августа, 2019 Здравствуйте. Только начал постигать азы программирования на 4-ке. Никак не могу осилить код формулы процентной разницы двух чисел -- процентная разница = | (a — b) / [ (a + b) / 2 ] | * 100 %. Как она будет выглядеть в коде исключающим деление на ноль? Заранее признателен за помощь. Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 20 августа, 2019 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 20 августа, 2019 @zened придётся делать проверку, только надо определиться с конечным результатом при (a+b) = 0, например так: double res = 0; // 0 - результат по умолчанию, можно заменить на другой if ( a+b != 0 ) { res = MathMod( (a-b) / ( (a+b) / 2 ) ) * 100; } Ссылка на сообщение Поделиться на другие сайты More sharing options...
batmanuyga Опубликовано 22 августа, 2019 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 22 августа, 2019 Приветствую. Ребята подскажите , как в сове индикатор выводить на другой таймфрейм. Например рабочий М5 , а выводить визуально нужно Стохастик М15. И можно ли в одном окне его вывести вместе с Стохастик М5 ? Ссылка на сообщение Поделиться на другие сайты More sharing options...
usver73 Опубликовано 22 августа, 2019 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 22 августа, 2019 4 часа назад, batmanuyga сказал: И можно ли в одном окне его вывести вместе с Стохастик М5 ? посмотрите любой MTF- индикатор. На этом же портале в разделе Классические индикаторы их море... Ссылка на сообщение Поделиться на другие сайты More sharing options...
vitek01 Опубликовано 27 августа, 2019 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 27 августа, 2019 Комрады, как завершить работу пк если наступило условие, например стоп лосс сработал, и нет нужды больше пк работать, какая функция за это отвечает? а может и просто терминал закрыть, помню гдето что то подобное писалось, но не знаю где уже искать это! Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 29 августа, 2019 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 29 августа, 2019 @vitek01 вот функция от KimIV: #include <WinUser32.mqh> void CloseTerminal ( ) { Print("Сработала функция CloseTerminal()"); int hwnd=WindowHandle( Symbol(), Period() ); // возвращает номер окна графика int hwnd_parent=0; while ( !IsStopped ( ) ) { hwnd=GetParent( hwnd ); // поиск номера самого верхнего родительского окна if (hwnd==0) break; // нашли и вышли hwnd_parent=hwnd; } if (hwnd_parent!=0) PostMessageA ( hwnd_parent, WM_CLOSE, 0, 0 ); // посылаем в родительское окно команду закрыться } Выключить комп тоже возможно, но если закроете терем выполнить код будет некому... Изменено 29 августа, 2019 пользователем 0ll 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
Partorius Опубликовано 30 августа, 2019 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 30 августа, 2019 Подскажите, есть функция трала, но она почему то тралит не только свои ордера, но и ордера открытые вручную Спойлер void Trailing() { for(int x=OrdersTotal() - 1; x>= 0; x--) { if(OrderSelect(x,SELECT_BY_POS,MODE_TRADES) && OrderSymbol()==Symbol() && OrderMagicNumber()==Magic && TrailingStop>0) { if(OrderType()==OP_BUY) { if(Bid-OrderOpenPrice()>TrailingStop*Point) { if(OrderStopLoss()<Bid-TrailingStop*Point) { double sl = NormalizeDouble(Bid - TrailingStop*Point, Digits); OrderModify(OrderTicket(),OrderOpenPrice(), sl,OrderTakeProfit(),0,Green); } } } } if(OrderType()==OP_SELL) { if((OrderOpenPrice()-Ask)>TrailingStop*Point) { if ((OrderStopLoss()>(Ask+TrailingStop*Point)) || (OrderStopLoss()==0)) { sl = NormalizeDouble(Ask+TrailingStop*Point, Digits); OrderModify(OrderTicket(),OrderOpenPrice(), sl,OrderTakeProfit(),0,Red); } } } } } Изменено 30 августа, 2019 пользователем 0ll Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 30 августа, 2019 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 30 августа, 2019 @Partorius расставьте скобки аккуратнее и увидите, что обработка Селл ордеров вне сортировки, если не получится исправить - пишите Ссылка на сообщение Поделиться на другие сайты More sharing options...
Ar4i Опубликовано 6 сентября, 2019 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 6 сентября, 2019 дублирования Shift в параметрах индикатора. порой и даже часто в советнике при вызове iCustom() или встроенного индикатора присутствует Shift(сдвиг относительно нижней оси) в параметрах. и он всегда дублируется еще последним параметром. например: iMA(symbol, timeframe, ma_period, ma_shift, ma_method, applied_price, shift); ma_period дублируется shift-ом. причем по наблюдением, лучше использовать брать первый параметр и игнорировать последней - "вроде бы". если дублировать два shifta одной переменной, то какая-то лажа выходит. бывает так что при использования например одного shift считает правильно - рисует нет, и наоборот. короче постоянная путаница выходит. есть ли у кого полностью сформулированное правило или алгоритм касаясь этого вопроса? какой из "шифтов" и когда все таки лучше использовать? Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 6 сентября, 2019 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 6 сентября, 2019 1 час назад, Ar4i сказал: ma_period дублируется shift-ом ma_period - Период усреднения для вычисления индикатора. - т.е. сколько баров усреднить shift - Индекс получаемого значения из индикаторного буфера (сдвиг относительно текущего бара на указанное количество периодов назад). - т.е. с какого бара выдать значение Даже не знаю как ещё справку расшифровать - вроде понятно расписано... Короче это сильно разные параметры. Ссылка на сообщение Поделиться на другие сайты More sharing options...
MikR0ReR Опубликовано 6 сентября, 2019 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 6 сентября, 2019 Это разные шифты. А... ma_period и shift, ща нарисую Изменено 6 сентября, 2019 пользователем MikR0ReR 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
MikR0ReR Опубликовано 6 сентября, 2019 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 6 сентября, 2019 Так что это разные вещи. Изменено 6 сентября, 2019 пользователем MikR0ReR 2 Ссылка на сообщение Поделиться на другие сайты More sharing options...
slava23 Опубликовано 9 сентября, 2019 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 9 сентября, 2019 Помогите в написании индикатора, который автоматически рисует уровни, равные ATR/2 за определённый период в днях: например 21 день, 30, 100 и т.д. ATR настраивается. Линии рисуются в обе стороны вверх и вниз от цены закрытия прошедшего дня. Линии рисуются от начала текущего дня и только в текущем дне. При наступлении следующего дня, уровни прошлого дня удаляются. Стили линий настраиваются. Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 9 сентября, 2019 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 9 сентября, 2019 @slava23 посмотрите Daily Open line v MTF ADR levels здесь Ссылка на сообщение Поделиться на другие сайты More sharing options...
Ar4i Опубликовано 9 сентября, 2019 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 9 сентября, 2019 В 06.09.2019 в 20:25, 0ll сказал: ma_period - Период усреднения для вычисления индикатора. - т.е. сколько баров усреднить shift - Индекс получаемого значения из индикаторного буфера (сдвиг относительно текущего бара на указанное количество периодов назад). - т.е. с какого бара выдать значение Даже не знаю как ещё справку расшифровать - вроде понятно расписано... Короче это сильно разные параметры. всем спасибо за ответы, ясно. с МАшкой лохонулся не хватило уважения к простым инструментам. ну а как все таки быть с iCustom()? Ссылка на сообщение Поделиться на другие сайты More sharing options...
MikR0ReR Опубликовано 9 сентября, 2019 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 9 сентября, 2019 1 минуту назад, Ar4i сказал: ну а как все таки быть с iCustom()? А что с ним? Ссылка на сообщение Поделиться на другие сайты More sharing options...
Ar4i Опубликовано 9 сентября, 2019 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 9 сентября, 2019 В 06.09.2019 в 20:31, MikR0ReR сказал: А... ma_period и shift, ща нарисую спасибки за рисунки! они всегда приятны. а что такое все таки ma_shift. я вижу сдвиг вверх вниз в поинтах от ma_shift =0; с каким то ускорением. какая все таки формула расчета у этого параметра? в общих чертах можно? Изменено 9 сентября, 2019 пользователем Ar4i Ссылка на сообщение Поделиться на другие сайты More sharing options...
Ar4i Опубликовано 9 сентября, 2019 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 9 сентября, 2019 17 минут назад, MikR0ReR сказал: А что с ним? в пользовательском индикаторе может быть забит параметр Шифта-именно того который относителен последнего бара, где угодно. а справка по iCustom() предписывает шифт в конце. можно его конечно не писать в iCustom() - а сбоев не будет? Изменено 9 сентября, 2019 пользователем Ar4i Ссылка на сообщение Поделиться на другие сайты More sharing options...
MikR0ReR Опубликовано 9 сентября, 2019 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 9 сентября, 2019 18 минут назад, Ar4i сказал: ma_shift - сдвиг данных (графика) по горизонтали (шкала времени) 18 минут назад, Ar4i сказал: вверх вниз - я не наблюдаю ни какого сдвига по вертикали, только по горизонтали 18 минут назад, Ar4i сказал: поинтах - не понял о чем речь (ну это не важно если я ответил на твой вопрос) 18 минут назад, Ar4i сказал: ускорением - не понял о чем речь (ну это не важно если я ответил на твой вопрос) 19 минут назад, Ar4i сказал: формула расчета - а... м... а... ту саму формулу не скажу, она защита в программу с закрытым исходным кодом. суть ее такова, взять массив и сместить его в право, лево на х баров. что и продемонстрировал на скрине. 18 минут назад, Ar4i сказал: в пользовательском индикаторе может быть забит параметр Шифта-именно того который относителен последнего бара где угодно. а справка по iCustom() приписывает шифт в конце. можно его не писать в iCustom() - а сбоев не будет? ту я запутался, несколько раз прочитал, так и не понял о чем ты. Ссылка на сообщение Поделиться на другие сайты More sharing options...
Ar4i Опубликовано 10 сентября, 2019 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 10 сентября, 2019 В 06.09.2019 в 20:25, 0ll сказал: ma_period дублируется shift-ом извиняюсь за опечатку: MA_SHIFT дублируется SHIFT-ом (а не ma_period дублируется shift-ом. всех и себя запутал)). iMA(symbol, timeframe, ma_period, MA_SHIFT, ma_method, applied_price, SHIFT); из справки: ma_shift [in] Сдвиг индикатора относительно ценового графика. shift [in] Индекс получаемого значения из индикаторного буфера (сдвиг относительно текущего бара на указанное количество периодов назад). Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 10 сентября, 2019 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 10 сентября, 2019 @Ar4i ma_shift сдвигает график машки вверх/вниз относительно ЦЕНЫ, в параметре shift Вы указываете с какого бара хотите получать данные: например с 0-бара не хотите (они там не сформировались), а хотите с 1-бара - вот и пишите shift = 1. Все параметры разные, никакого дублирования нет! 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
Ar4i Опубликовано 10 сентября, 2019 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 10 сентября, 2019 12 часов назад, Ar4i сказал: в пользовательском индикаторе может быть забит параметр Шифта-именно того который относителен последнего бара, где угодно. а справка по iCustom() предписывает шифт в конце. можно его конечно не писать в iCustom() - а сбоев не будет? ясно спасибо. а в iCustom()? Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 10 сентября, 2019 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 10 сентября, 2019 @Ar4i Вы в терминале на графике индюк смотрели? Терминал для того чтобы Вам показать линии индюка использует shift - вот и Вы используйте чтоб получить те же значения. а будут сбои или нет - никто не скажет. Ссылка на сообщение Поделиться на другие сайты More sharing options...
Александр 1939 Опубликовано 14 сентября, 2019 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 14 сентября, 2019 В 10.09.2019 в 12:06, Ar4i сказал: ясно спасибо. а в iCustom()? (Курс молодого бойца)не могу получить не приходит письмо для скачивания-как быть?? Ссылка на сообщение Поделиться на другие сайты More sharing options...
MikR0ReR Опубликовано 14 сентября, 2019 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 14 сентября, 2019 17 минут назад, Александр 1939 сказал: не приходит письмо для скачивания-как быть?? временная почта поможет Ссылка на сообщение Поделиться на другие сайты More sharing options...
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти