mzk_3om6u Опубликовано 9 октября, 2013 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 9 октября, 2013 Что Вы хотите сказать 99% людей платят услугу VPS сервера? или держат свои компьютера включёнными неделями? хаха! не понял я твой ответ дружище! ну до ладно!!! Именно так и есть, 99% держат VPS и платят 5$ в месяц, чтобы советник всегда мог быть в рынке и приносил прибыль. Поверьте 5$ не такая уж огромная сумма, чтобы жить комфортнее. Ссылка на сообщение Поделиться на другие сайты More sharing options...
elruso Опубликовано 9 октября, 2013 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 9 октября, 2013 Что Вы хотите сказать 99% людей платят услугу VPS сервера? или держат свои компьютера включёнными неделями? хаха! не понял я твой ответ дружище! ну до ладно!!! Именно так и есть, 99% держат VPS и платят 5$ в месяц, чтобы советник всегда мог быть в рынке и приносил прибыль. Поверьте 5$ не такая уж огромная сумма, чтобы жить комфортнее. Оооо молодцы!!! Не знал! Ну да значит я исключение!!! То есть реальной проблемы нет да? То что я его вешаю и снимаю его функциональность не нарушит да? то есть он с ума не сойдёт, будет чётко продолжать работать при сбросе интернета допустим и его последующей перезагрузки нет проблем? Ссылка на сообщение Поделиться на другие сайты More sharing options...
mzk_3om6u Опубликовано 9 октября, 2013 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 9 октября, 2013 Оооо молодцы!!! Не знал! Ну да значит я исключение!!! То есть реальной проблемы нет да? То что я его вешаю и снимаю его функциональность не нарушит да? то есть он с ума не сойдёт, будет чётко продолжать работать при сбросе интернета допустим и его последующей перезагрузки нет проблем? Видимо это зависит от кода, если советник открывает ордера и тралит их, а интернета нет, то и трала нет, а если он держит виртуальный сл\тп то и ордер не закроется без интернета.много ведь нюансов. а вообще простой советник, открыл\тп\сл\закрыл работают без проблем, опять же мартин неплохо соснёт если интернет пропадёт, или выключишь его(а он при включении не сможет подхватить свою же сетку ордеров). такие дела. Ссылка на сообщение Поделиться на другие сайты More sharing options...
elruso Опубликовано 9 октября, 2013 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 9 октября, 2013 Оооо молодцы!!! Не знал! Ну да значит я исключение!!! То есть реальной проблемы нет да? То что я его вешаю и снимаю его функциональность не нарушит да? то есть он с ума не сойдёт, будет чётко продолжать работать при сбросе интернета допустим и его последующей перезагрузки нет проблем? Видимо это зависит от кода, если советник открывает ордера и тралит их, а интернета нет, то и трала нет, а если он держит виртуальный сл\тп то и ордер не закроется без интернета.много ведь нюансов. а вообще простой советник, открыл\тп\сл\закрыл работают без проблем, опять же мартин неплохо соснёт если интернет пропадёт, или выключишь его(а он при включении не сможет подхватить свою же сетку ордеров). такие дела. ok ясно спасибо! Ссылка на сообщение Поделиться на другие сайты More sharing options...
Naglaya Опубликовано 10 октября, 2013 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 10 октября, 2013 Помогите!!! Будьте добры, гляньте кто-то свежим взглядом, никак не найду одну ошибку. Naglaya_001_1.mq4 Ссылка на сообщение Поделиться на другие сайты More sharing options...
elruso Опубликовано 10 октября, 2013 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 10 октября, 2013 Помогите!!! Будьте добры, гляньте кто-то свежим взглядом, никак не найду одну ошибку. А какой тип ошибки то? Что копилатор говорит чтоб знать боле менее в чём дело!Ну а на первый взгляд для меня эта строчка странная BlueLine ==0 Как это читается? Я думал это только для проверки условий if(....==....Добавлено: 10-10-2013 21:04:08 Помогите!!! Будьте добры, гляньте кто-то свежим взглядом, никак не найду одну ошибку. А какой тип ошибки то? Что компилятор говорит чтоб знать боле менее в чём дело!Ну а на первый взгляд для меня эта строчка странная BlueLine ==0 Как это читается? Я думал это только для проверки условий if(....==....А иначе компилятор скажет '==' assignment expected Изменено 10 октября, 2013 пользователем elruso Ссылка на сообщение Поделиться на другие сайты More sharing options...
Naglaya Опубликовано 10 октября, 2013 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 10 октября, 2013 '\end_of_program' - unbalanced left parenthesis D:\Forex4you\experts\Naglaya_001 (1).mq4 (131, 1). Насколько я поняла, вариантов масса. BlueLine ==0 - попытка сделать синюю линию нулевой осью, что ли, пересечение с которой дает сигнал ко входу или к выходу из позиции. Ссылка на сообщение Поделиться на другие сайты More sharing options...
elruso Опубликовано 10 октября, 2013 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 10 октября, 2013 '\end_of_program' - unbalanced left parenthesis D:\Forex4you\experts\Naglaya_001 (1).mq4 (131, 1). Насколько я поняла, вариантов масса. BlueLine ==0 - попытка сделать синюю линию нулевой осью, что ли, пересечение с которой дает сигнал ко входу или к выходу из позиции. Первый раз вижу такую запись!!! IА вообще очень странно написаны функции countbuy() y countsell() я там вижу точку с запятой сразу после цикла for(......); это для меня очень странно!!! И после if(); тоже первый раз вижу! Они там лишние! Я думаю это всё не правильно посмотрите урок 2 на счёт функций CountBuy y CountSell они неправильно написаны у Вас! А на счёт BlueLine==0 не понятно вообще! Может BlueLine =0; тогда ясно! Изменено 11 октября, 2013 пользователем elruso Ссылка на сообщение Поделиться на другие сайты More sharing options...
xbms Опубликовано 11 октября, 2013 Автор Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 11 октября, 2013 Помогите!!! Будьте добры, гляньте кто-то свежим взглядом, никак не найду одну ошибку. Во вложении исправлены синтаксические ошибки, логику Вам придётся проверить самостоятельно :)Naglaya_001_1.mq4 Изменено 11 октября, 2013 пользователем xbms 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
mzk_3om6u Опубликовано 11 октября, 2013 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 11 октября, 2013 Добрый день или вечер.Давно подумывал о советники, который будет заниматься моими ордерами, и вот результат.Написал модуль, который выполняет некоторые функции(пока только для бая)1. подхватывает созданный ордер для выбранного инструмента.2. ставит ему стоп.3. при достижении 1 уровня БУ, переводит в БУ и закрывает часть прибыли(в % от начального лота(0.5 = 50%))4. при достижении 2 уровня БУ, подтягивает стоп(можно выбрать на какой уровень) и закрывает выбранный % от начального лота.5. 3 уровень - финальный тейкпрофит, закрывает остаток позы.хотелось бы услышать критику и комментарии от более образованных людей)(что добавить, где убрать, и всё в таком духе)п.с. планирую использовать как советник для ручной торговли, и такие же методы в советник, для слежения за ордером.п.п.с для села исправить всего лишь пару знаков, для меня не составит труда:) breakeven.mq4 Ссылка на сообщение Поделиться на другие сайты More sharing options...
Naglaya Опубликовано 11 октября, 2013 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 11 октября, 2013 Помогите!!! Будьте добры, гляньте кто-то свежим взглядом, никак не найду одну ошибку. Во вложении исправлены синтаксические ошибки, логику Вам придётся проверить самостоятельно :) Спасибо Вам большое за помощь. А по поводуdistance = (RedLine - BlueLine) > 0; if (distance >= Diff) я пыталась задать синюю линию за нулевую и, если красная поднимается над ней, открывается ордер buy, а если над ней поднимается зеленая, то sell. Видимо, мой способ неверен. Может быть как-то иначе задавать нужно? Ссылка на сообщение Поделиться на другие сайты More sharing options...
denis77515 Опубликовано 11 октября, 2013 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 11 октября, 2013 Ребята привет,я так понимаю господин XBMS выпустил урок 1,5. Просьба скиньте ссылку опоздавшему на поезд... :d :d :d Добавлено: 11-10-2013 13:57:30Спасибо,не беспакойтесь уже нашел на сайте,тупанул не много :)) :d :d :dв попыхах Изменено 11 октября, 2013 пользователем denis77515 Ссылка на сообщение Поделиться на другие сайты More sharing options...
Vorchunozavr Опубликовано 11 октября, 2013 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 11 октября, 2013 Ребята привет,я так понимаю господин XBMS выпустил урок 1,5. Просьба скиньте ссылку опоздавшему на поезд... :d :d :d http://tradelikeapro.ru/category/uroki-po-mql/ А по поводуdistance = (RedLine - BlueLine) > 0; if (distance >= Diff) я пыталась задать синюю линию за нулевую и, если красная поднимается над ней, открывается ордер buy, а если над ней поднимается зеленая, то sell. Видимо, мой способ неверен. Может быть как-то иначе задавать нужно? Вы присваиваете переменной distance значение, нельзя при этом ещё и сравнивать.Математика: x = (2+2)*3Что получится, если написать x = (2+2)*3 > 0... ?Условия должны идти отдельно: если красная выше (больше) синей, значит делаем то-то.if (RedLine - BlueLine > 0) OrderSend... например. Ссылка на сообщение Поделиться на другие сайты More sharing options...
Naglaya Опубликовано 11 октября, 2013 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 11 октября, 2013 А по поводуdistance = (RedLine - BlueLine) > 0; if (distance >= Diff) я пыталась задать синюю линию за нулевую и, если красная поднимается над ней, открывается ордер buy, а если над ней поднимается зеленая, то sell. Видимо, мой способ неверен. Может быть как-то иначе задавать нужно? Вы присваиваете переменной distance значение, нельзя при этом ещё и сравнивать.Математика: x = (2+2)*3Что получится, если написать x = (2+2)*3 > 0... ?Условия должны идти отдельно: если красная выше (больше) синей, значит делаем то-то.if (RedLine - BlueLine > 0) OrderSend... например. Спасибо. Попробую исправить.Добавлено: 11-10-2013 19:57:05 А по поводуdistance = (RedLine - BlueLine) > 0; if (distance >= Diff) я пыталась задать синюю линию за нулевую и, если красная поднимается над ней, открывается ордер buy, а если над ней поднимается зеленая, то sell. Видимо, мой способ неверен. Может быть как-то иначе задавать нужно? Вы присваиваете переменной distance значение, нельзя при этом ещё и сравнивать.Математика: x = (2+2)*3Что получится, если написать x = (2+2)*3 > 0... ?Условия должны идти отдельно: если красная выше (больше) синей, значит делаем то-то.if (RedLine - BlueLine > 0) OrderSend... например. Спасибо. Попробую исправить. Вроде исправила, но не работает. Посмотрите?Naglaya_001_1.mq4KDJ.mq4 Изменено 11 октября, 2013 пользователем Naglaya Ссылка на сообщение Поделиться на другие сайты More sharing options...
mzk_3om6u Опубликовано 11 октября, 2013 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 11 октября, 2013 Добрый день или вечер....уже нашел пару ошибок, со стоп лосом:)видимо никому это не интересно рако-код смотреть :"> Ссылка на сообщение Поделиться на другие сайты More sharing options...
Vorchunozavr Опубликовано 11 октября, 2013 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 11 октября, 2013 Добрый день или вечер....уже нашел пару ошибок, со стоп лосом:)видимо никому это не интересно рако-код смотреть :"> Привет!Смотрел. Не понял зачем balance.Здесь:if(NormalizeDouble(Bid-OrderOpenPrice(), Digits)*balance*Point >= first_Take_Profit*Point) Если обе части сравнения умножаются на Point, значит его можно вообще убрать...Так же, после OrderSelect, лучше сначала проверить символ и тип, а потом уже считать и тикет присваивать (если ордер не наш, нечего процессор лишней работой нагружать :d) Ссылка на сообщение Поделиться на другие сайты More sharing options...
mzk_3om6u Опубликовано 11 октября, 2013 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 11 октября, 2013 Привет!Смотрел. Не понял зачем balance. Чтобы найти кол-во пунктов между ценой и стопом(именно в пунктах), нужно домножить на эту переменную) Ссылка на сообщение Поделиться на другие сайты More sharing options...
Vorchunozavr Опубликовано 11 октября, 2013 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 11 октября, 2013 Чтобы найти кол-во пунктов между ценой и стопом(именно в пунктах), нужно домножить на эту переменную) (Bid - SL)/Point - получится цена в пунктах.(1,3030 - 1,3000)/0,0001 = 30(1,30300 - 1,30000)/0,00001 = 300 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
mzk_3om6u Опубликовано 11 октября, 2013 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 11 октября, 2013 Чтобы найти кол-во пунктов между ценой и стопом(именно в пунктах), нужно домножить на эту переменную) (Bid - SL)/Point - получится цена в пунктах.(1,3030 - 1,3000)/0,0001 = 30(1,30300 - 1,30000)/0,00001 = 300 воу воу...а у меня получалось обратное число, и я на него умножал а не делил))) спасибо за инфу. Ссылка на сообщение Поделиться на другие сайты More sharing options...
elruso Опубликовано 11 октября, 2013 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 11 октября, 2013 Чтобы найти кол-во пунктов между ценой и стопом(именно в пунктах), нужно домножить на эту переменную) (Bid - SL)/Point - получится цена в пунктах.(1,3030 - 1,3000)/0,0001 = 30(1,30300 - 1,30000)/0,00001 = 300 воу воу...а у меня получалось обратное число, и я на него умножал а не делил))) спасибо за инфу. я вот так пишу всем привет!!!int //spr=MarketInfo(Symbol(), MODE_SPREAD); int Loss = MathAbs(Ask-SL)/Point; //int distance = Loss+spr;Comment(Loss); MathAbs поможет обсолютное вывести для отрицательного!double MathAbs( double value)Returns the absolute value (modulus) of the specified numeric value.Parameters:value - Numeric value.Sample: double dx=-3.141593, dy; // calc MathAbs dy=MathAbs(dx); Print("The absolute value of ",dx," is ",dy); // Output: The absolute value of -3.141593 is 3.141593Screen_Shot_2013-10-11_at_6.48.42_PM.png Изменено 12 октября, 2013 пользователем elruso Ссылка на сообщение Поделиться на другие сайты More sharing options...
mzk_3om6u Опубликовано 12 октября, 2013 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 12 октября, 2013 Спойлер Чтобы найти кол-во пунктов между ценой и стопом(именно в пунктах), нужно домножить на эту переменную) (Bid - SL)/Point - получится цена в пунктах.(1,3030 - 1,3000)/0,0001 = 30(1,30300 - 1,30000)/0,00001 = 300 воу воу...а у меня получалось обратное число, и я на него умножал а не делил))) спасибо за инфу. я вот так пишу всем привет!!!int //spr=MarketInfo(Symbol(), MODE_SPREAD); int Loss = MathAbs(Ask-SL)/Point; //int distance = Loss+spr;Comment(Loss); MathAbs поможет обсолютное вывести для отрицательного!double MathAbs( double value)Returns the absolute value (modulus) of the specified numeric value.Parameters:value - Numeric value.Sample: double dx=-3.141593, dy; // calc MathAbs dy=MathAbs(dx); Print("The absolute value of ",dx," is ",dy); // Output: The absolute value of -3.141593 is 3.141593 Не хочу пока забивать голову ещё и расчетом спреда, если честно)))Собрал итоговый вариант, выглядит как функция(в этот момент задумался, есть ли большая разница как передавать параметры - как у меня написано, или делать функции с параметрами, которые бы передавались уже непосредственно из самого советника?)Наверное лучше всётаки второй вариант...эх.а хотел уже похвастаться...Добавлю, что есть сейчас. и займусь второй идеей)))Критической разницы нет, хотя может это я её не вижу...Всё ровно часть переменных надо прогонять через инит.п.с. очень жажду комментариев.new_BE.mq4modify_BE.mq4 Изменено 12 октября, 2013 пользователем mzk_3om6u Ссылка на сообщение Поделиться на другие сайты More sharing options...
Vorchunozavr Опубликовано 12 октября, 2013 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 12 октября, 2013 Всем привет!mzk_3om6u, интересно написано :).Снова о порядке условий... сначала OrderSymbol, потом OrderMagicNumber, потом OrderType, затем остальное.В самом начале можно проверить на наличие ордеров, т.е., если ордеров нет, ничего и не делаем: Спойлер int start(){ if(OrdersTotal() > 0) Result_BE_and_SL_and_TP(); return(0);} Изменено 12 октября, 2013 пользователем Vorchunozavr Ссылка на сообщение Поделиться на другие сайты More sharing options...
mzk_3om6u Опубликовано 13 октября, 2013 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 13 октября, 2013 Всем привет!mzk_3om6u, интересно написано :). Спойлер Снова о порядке условий... сначала OrderSymbol, потом OrderMagicNumber, потом OrderType, затем остальное.В самом начале можно проверить на наличие ордеров, т.е., если ордеров нет, ничего и не делаем: Спойлер int start(){ if(OrdersTotal() > 0) Result_BE_and_SL_and_TP(); return(0);} спасибо за коммент, я конечно понимаю в таких маленьких программках, не критична последовательность проверок(на 0.0000000000001) производительность замедлится, но правила хорошего тона, все дела)тоже самое в функции старт)))всё ровно понимаю, что надо рационализировать, если можно меньше ресурсов тратить, то зачем усложнять)))исправлю эти недочеты:)была опечатка с лотами, что вызывало ошибку 131, нашел и исправил:)прикрутил эту штуку, к "советнику на ТМА" из обучения - работает)))Добавлено: 13-10-2013 23:19:56Доброе утро.У меня возник вопрос, например:Можно прикрепить в подвал RSI и на него по вешать уже MA, как в коде mql4 такой момент работает?iMa не имеет нужной опции, значит единственный вариант в ручную пересчитывать нужную МА для RSI?iMAOnArray() вот такая штука походу может доставать данные)))методом на коленке, получил данные, теперь осталось собрать в кучу...или есть альтернативы?) Изменено 14 октября, 2013 пользователем mzk_3om6u 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
Vorchunozavr Опубликовано 14 октября, 2013 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 14 октября, 2013 Доброе утро.У меня возник вопрос, например:Можно прикрепить в подвал RSI и на него по вешать уже MA, как в коде mql4 такой момент работает?iMa не имеет нужной опции, значит единственный вариант в ручную пересчитывать нужную МА для RSI?iMAOnArray() вот такая штука походу может доставать данные)))методом на коленке, получил данные, теперь осталось собрать в кучу...или есть альтернативы?) Тоже интересно!Есть прикольный индикатор - RSI с наложенной машкой, + выводит на экран текущие значения обоих линий.Можно вытаскивать значения из него.(Попробую разобраться в коде :-b )Добавлено: 14-10-2013 12:57:00Ага, тоже дошло: iMAOnArray позволяет считать МА относительно буфера RSI. :d <:-p>RSI+MA+LABEL.mq4 Изменено 14 октября, 2013 пользователем Vorchunozavr Ссылка на сообщение Поделиться на другие сайты More sharing options...
mzk_3om6u Опубликовано 15 октября, 2013 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 15 октября, 2013 у меня вопрос:По каким причинам может быть проигнорирована функция OrderClose()? { OrderModify(OrderTicket(), OrderOpenPrice(), NormalizeDouble(OrderOpenPrice() + second_level_BE*Point,Digits), OrderTakeProfit(), 0, CLR_NONE); Sleep(2000); if(first_close_part_of_lot>0) { OrderClose(OrderTicket(), NormalizeDouble(OrderLots()/(1-first_close_part_of_lot/100),2)*second_close_part_of_lot/100, Bid, slippage, Black); Sleep(2000); } else { OrderClose(OrderTicket(), NormalizeDouble(OrderLots()*second_close_part_of_lot/100,2), Bid, slippage, Black); Sleep(2000); } } В тестере этот момент нормально обкатывается, а на реале стоп был перенесен, а записи про закрытие ордера вообще нет! Ни ошибки ничего. В тестере всё красивенько идёт а уже в реал тайме, косяки выпадают. Как можно организовать внутреннюю проверку, была часть закрыта, а если нет, то ещё раз запрос отправлять.И почему такие проблемы вообще возникают? Вроде всё по пунктам идёт... Изменено 15 октября, 2013 пользователем mzk_3om6u Ссылка на сообщение Поделиться на другие сайты More sharing options...
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти