Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 861
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Здравствуйте, подскажите, плиз, почему не работает. Ошибок нет, но ордера не открывает в тестере. В качестве тренировки пытаюсь написать советник на пробой хай, лоу дневной свечи.
Здравствуйте, подскажите, плиз, почему не работает. Ошибок нет, но ордера не открывает в тестере. В качестве тренировки пытаюсь написать советник на пробой хай, лоу дневной свечи.
Не открывает - в смысле и не пытается или пытается но не получается ? Что пишут в журнале ?
Здравствуйте, подскажите, плиз, почему не работает. Ошибок нет, но ордера не открывает в тестере. В качестве тренировки пытаюсь написать советник на пробой хай, лоу дневной свечи.
Проанализируйте вот это Ваше выражение
Мне трудно осознать смысл этого выражения, возможно я не прав, но как минимум замените "(TimeCurrent()==HourStart)" на "(TimeCurrent() - HourStart)".
Дальше, если я Вас правильно понял - Вы пытаетесь выставить БайЛимит ордер, если нету БайЛимитОрдера И БайПозиции. Обратите внимание именно "И". То-есть наличие любого из них в отдельности Вас устраивает, таким образом, при нужном положении текущей цены Вы получите бесконечно кол-во БайЛимитов, по одному на каждом тике, пока хотя-бы один из них не сработает и не откроется первая позиция. Ещё - Вам не важно где сейчас находится цена. Как только выполнится странное условие по времени (чуть выше постом), думаю там ошибка, ну да ладно. Так вот, если его не учитывать, советник с первого же тика начнет выставлять ошибочные ордера, пока цена не уйдет выше вчерашнего максимума, так как в качестве цены для выставления ордера Вы используете Вчерашний максимум. БайЛимит выставляется под текущей ценой, значит текущая цена должна быть выше вчерашнего максимума, а до тех пор будут отказы в исполнении.
Таким образом Вам подходит только ситуация когда цена ушла выше вчерашнего максимума, нет БайЛимитов и нет открытых покупок. Довольно редкая комбинация. К тому же она не на пробитие получится, а на откат после пробития (потому-что БайЛИМИТ), да еще к тому-же долго будет закидывать Вас ошибками, начиная с первого тика, выше цены вчерашнего максимума (это уже другая ошибка). Условие уже выполняется, советник кидает заявку, но ведь есть еще спред, минимальное разрешённое расстояние от рынка и тд.
Мне трудно осознать смысл этого выражения, возможно я не прав, но как минимум замените "(TimeCurrent()==HourStart)" на "(TimeCurrent() - HourStart)".
Все верно тут ошибка. Нужно if (TimeHour(TimeCurrent())==HourStart)
Теперь открывает сделки иногда, но больше ошибками закидывает(OrderSend error 130).
Насчет лимитных ордеров тут не правильно.
Все верно тут ошибка. Нужно if (TimeHour(TimeCurrent())==HourStart)
Теперь открывает сделки иногда, но больше ошибками закидывает(OrderSend error 130).
Насчет лимитных ордеров тут не правильно.
Вот вам скрипт, для работы со временем.
Старенький, но работает корректно.
Здравствуйте.
Прошу Вас помочь мне разобраться в работе с файлами.
При работе программы полученные данные сохраняю в файл и считываю CSV.
Файл увеличивается. скорость падает. Попробовал обновить (переписать) некоторые элементы в строках. Не вышло!
Удалить выбранную строку- невозможно! Дописать новый элемент в старую строку не получается!
Очень странно! Можно легко удалить файл, графический объект и т.п. А когда касается работы с созданным файлом, полный тупик!
На форумах только одна рекоммендация : "Считать файл в память , поменять или стереть строку, и сокранить новый файл под старым названием".
Мне кажется это не верным решением. Вероятно я что-то упустил. Прошу помочь разобраться.
Мне кажется это не верным решением. Вероятно я что-то упустил. Прошу помочь разобраться.
Вас срочно нужно нанимать на работу в Microsoft, что бы они наконец-то исправили это "не верное решение" по работе с файлами.
Работа с файлами - это не то же что редактирование файла в файловом редакторе, это скорее как составление слова из кубиков с отдельными буквами.
Если нужно вставить новую букву, то все последующие за ней кубики нужно передвинуть вправо.
Если нужно удалить старую букву, то все последующие за ней кубики нужно передвинуть влево.
По этому, если файл не большой и в рамках работы не требуется shared доступ к файлу, то, действительно, проще записать данные в новый файл, удалить старый, переименовать новый файл на имя старого.
Если не ошибаюсь, то единственное, чего не хватает в MQL при работе с файлами - это возможность обрезать длину файла до необходимого размера.
Вот вам скрипт, для работы со временем.
Старенький, но работает корректно.
я тож раньше Кимовской ф-цией пользовался, потом нашел время написал себе так:
отключать время работы - нужно ввести некоректные данные при инициализации конструктора, например 25 часов или 70 минутВас срочно нужно нанимать на работу в Microsoft, что бы они наконец-то исправили это "не верное решение" по работе с файлами.
Работа с файлами - это не то же что редактирование файла в файловом редакторе, это скорее как составление слова из кубиков с отдельными буквами.
Если нужно вставить новую букву, то все последующие за ней кубики нужно передвинуть вправо.
Если нужно удалить старую букву, то все последующие за ней кубики нужно передвинуть влево.
По этому, если файл не большой и в рамках работы не требуется shared доступ к файлу, то, действительно, проще записать данные в новый файл, удалить старый, переименовать новый файл на имя старого.
Если не ошибаюсь, то единственное, чего не хватает в MQL при работе с файлами - это возможность обрезать длину файла до необходимого размера.