![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Спасибо mladen,
Я закончил свой код (благодаря вашей помощи), и он действительно хорошо работает. Я сделал код на основе моей ручной торговли графиками H4 и D1 за последние пару лет. Я думаю о диверсификации рисков и о двух счетах, один торгует более долгосрочными графиками, другой более краткосрочными графиками с отдельными счетами. Поэтому я хочу адаптировать этот код, скажем, для графиков M5 и M15. Я знаю, что стратегии могут работать на одном таймфрейме, но не на другом, и кое-что, что я заметил о более краткосрочных графиках, это то, что они гораздо более случайны, не очень уважают S/R и склонны к длительным периодам консолидации.
Мне интересно, есть ли у вас какие-либо советы по поводу краткосрочных стратегий - некоторые вещи, которые я рассматриваю, это чтобы советник проверял несколько символов для лучших возможностей, а не только один, а также, возможно, добавление MVA, создавая в общей сложности 3 для силы тренда на более высоких таймфреймах, и, возможно, добавление секции кода для остановки торговли, если в области консолидации (скажем, если последние 50 баров находятся в диапазоне 50 пунктов). Также возможно торговать только если цена находится ниже/выше средней линии канала Дончиана и даже проверять высоту фитиля.
...
Предупреждаю всех: в метатрейдере не существует способа обратного тестирования многосимвольных торговых советников. Поэтому, если вы планируете это сделать, единственный способ получить надежные результаты - это длительное прямое тестирование.
Даже при обычном тестировании прямое тестирование является единственной действительно приемлемой формой (из-за некоторых проблем с обратным тестированием в metatrader: полное отсутствие исторических Bid, Ask и неявного спреда, отсутствие свопов, комиссий и всего, что связано с подобными вещами, тики моделируются довольно странным образом, ... и так далее, и так далее ...), но люди редко делают это, поскольку это требует времени и самоотдачи. Если вы действительно пытаетесь разработать систему, на которую вы хотите положиться, можно рассматривать только прямое тестирование.
Так что это единственный совет. Из стратегий: люди торгуют 1000-ми способами, и многие люди живут этим, поэтому не существует "только одного" способа делать это. Пробуйте свои собственные способы, и с дальнейшим тестированием вы можете даже обнаружить, что у вас уже есть выигрышная система.
Спасибо, Младен,
Сейчас я закончил свой код (благодаря вашей помощи), и он работает очень хорошо. Я создал код на основе моей ручной торговли на графиках H4 и D1 за последние пару лет. Я думаю о диверсификации рисков и о двух счетах, один торгует более долгосрочными графиками, другой более краткосрочными графиками с отдельными счетами. Поэтому я хочу адаптировать этот код, скажем, для графиков M5 и M15. Я знаю, что стратегии могут работать на одном таймфрейме, но не на другом, и кое-что, что я заметил о более краткосрочных графиках, это то, что они гораздо более случайны, не очень уважают S/R и склонны к длительным периодам консолидации.
Я хотел спросить, есть ли у вас какие-либо советы по поводу краткосрочных стратегий - некоторые вещи, которые я рассматриваю, это чтобы советник проверял несколько символов для лучших возможностей, а не только один, а также, возможно, добавление MVA, создавая в общей сложности 3 для силы тренда на более высоком таймфрейме, и, возможно, добавление раздела кода для остановки торговли, если в области консолидации (скажем, если последние 50 баров находятся в диапазоне 50 пунктов). Также возможно торговать только если цена находится ниже/выше средней линии канала Дончиана и даже проверять высоту фитиля.Спасибо mladen за совет.
У меня странная проблема с моим советником. Когда я тестирую его на графике H4, он работает так, как должен. Однако когда я тестирую его на H1, он загружает входы (TimingChart = 240 и TrendChart 1440), как показано в журнале, вместо TimingChart 60 и TrendChart 240 (я изменил внешние переменные в коде, а также убедился, что входы правильные при прикреплении советника к графику. Тем не менее он продолжает загружать неправильные таймфреймы). В журнале возникает целый ряд проблем, включая ошибку OrderModify 1 и ошибку Orderend 130, нулевые дивиденды, которых нет, когда я тестирую на графике H4. Я не менял код между тестами, кроме изменения внешних переменных, и могу только предположить, что именно входы создают ошибки. PS (для ошибки 130 у моего брокера SL минимум 0).
Также хочу уточнить, что я прикрепил советника к графику H1, чтобы убедиться в этом, а также выбрал H1 в выпадающем меню в тестере стратегий. Я также закрыл MT4 и перезагрузил его, чтобы посмотреть, решило ли это проблему, но, к сожалению, нет.
Есть идеи?
Подскажите, пожалуйста, если я обрабатываю ордер-енд и не хочу вводить уровень тейкпрофита (или любой другой параметр, если на то пошло), я просто вставляю 0?
Также как насчет OrderModify(), если я не хочу менять один из вводимых параметров, я вставляю OrderStopLoss(), например? А если в ордерендере не был введен уровень стоплосса, остается ли в нем OrderStopLoss() или вставляется что-то другое?
Спасибо.
...
Что касается параметров тейк-профита, стоп-лосса, проскальзывания и магического числа, то да.
Некоторые параметры имеют различные способы обхода: например, цвет 0 является черным, поэтому в этом месте нужно использовать CLR_NONE. Также, если требуется строка, используйте NULL (это легче заметить и это обычный способ сделать это в metatrader).
Подскажите, пожалуйста, если я обрабатываю ордер на продажу и не хочу вводить уровень тейкпрофита (или любой другой параметр, если на то пошло), я просто вставляю 0?
Привет, mladen, при OrderModify, если я хочу сохранить исходный вход в соответствии с OrderSend, ввожу ли я, например, стоплосс, OrderStopLoss()? А если стоплосс не был введен в OrderSend, то я вставляю 0 или все же OrderStopLoss()?
Спасибо
Если изначально не было стоп-лосса ордера, OrderStopLoss() вернет 0, так что получается то же самое.
Привет, mladen, при OrderModify, если я хочу сохранить исходный вход согласно OrderSend, ввожу ли я, например, стоплосс, OrderStopLoss()? А если стоплосс не был введен в OrderSend, я вставляю 0 или все же OrderStopLoss()? Спасибо.
Является ли проскальзывание в контексте ордеров величиной спреда?
Я заметил, что в книге по MQL4 проскальзывание максимально допустимое. А код максимального спреда написан отдельно?
...
Нет
Это максимальное проскальзывание в цене, которое вы (пользователь) примете от брокера при открытии ордера.
ПримерЯвляется ли проскальзывание в контексте ordersend значением спреда?