Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 493
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
День добрый.
Подскажите как решить проблему. При попытке отправки файла функцией SendFTP() возникает ошибка 4014 - Системная функция не разрешена для вызова.
С настройками FTP все в порядке - отчеты и тестовый файл отправляются.
Заранее благодарен.
Вы случайно не из индикатора пытаетесь отправлять?
Случайно да... А что нельзя?
Нельзя из-за того, что в случае сетевых задержек по ftp индикатор может затормозить весь терминал. А вот из советника - пожалуйста.
Привет всем. Пишу свой первый советник и столкнулся с проблеммой,которую не могу никак победить.
Сигнал на покупку-продажу должен подаваться,если предыдущий бар открывался вне канала "Envelopes",если выше канала,то продажа,если ниже-покупка.По факту ордера ставятся,когда советнику захочется.Может долго гулять внутри канала и вдруг начать покупать ордера,хотя все остальные условия соблюдаются,если сигнал на продажу-продает,на покупку-покупает.Как это исправить?
И как заставить его покупать по одному ордеру на бар,а не все сразу разрешенные количество ордеров через каждую секунду?
Привет всем. Пишу свой первый советник и столкнулся с проблеммой,которую не могу никак победить.
Сигнал на покупку-продажу должен подаваться,если предыдущий бар открывался вне канала "Envelopes",если выше канала,то продажа,если ниже-покупка.По факту ордера ставятся,когда советнику захочется.Может долго гулять внутри канала и вдруг начать покупать ордера,хотя все остальные условия соблюдаются,если сигнал на продажу-продает,на покупку-покупает.Как это исправить?
И как заставить его покупать по одному ордеру на бар,а не все сразу разрешенные количество ордеров через каждую секунду?
Количесто ордеров в принципе цель второстепенная,до вчера у меня открывалось по одному ордеру,и пока ордер есть,следующий не открывался.А как заставить советника открывать ордера согласно приказу-когда предыдущий бар открылся выше(ниже) канала?Сейчас большинство ордеров убыточные,потому что открываются не по условиям.
Количесто ордеров в принципе цель второстепенная,до вчера у меня открывалось по одному ордеру,и пока ордер есть,следующий не открывался.А как заставить советника открывать ордера согласно приказу-когда предыдущий бар открылся выше(ниже) канала?Сейчас большинство ордеров убыточные,потому что открываются не по условиям.
Если анализировать вот этот кусок кода, то согласно ему у вас в случае если функция CountTrades() возвращает ноль то выполняется условие if (CountTrades()==0) CheckForOpen(); и вызывается функция CheckForOpen(). На следующем тике если ордер был открыть функция CountTrades() по идее вернет значение 1 и тогда уже будет выполнятся условие else
Если окажется что CountTrades()<max_trades то будет еще раз выполнена функция CheckForOpen(). Судя по коду значение переменной max_trades равно 3. Таким образом у вас будет открыто 4-ре ордера.
Если советник открывает ордера не правильно, то проверяйте логику где вы указываете условия при которых должны открываться позиции в функции CheckForOpen() . И еще проверьте условия времени работы советника if (CurrTime < EaStartTime || CurrTime >= EaEndTime). Я бы на вашем месте использовал функцию if (TimeHour(TimeCurrent()) = час начала работы && TimeMinute(TimeCurrent()) = минуты начала работы ). Час и минуты начала работы задаются в переменных типа int или uint.
Если Open бара номер 1 выше/ниже канала.