Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
В Virtual\Orders.mqh
#define MAX_ORDERS 100
Если заменить, например на 500, ничего не сломается?
Этот параметр отвечает за максимальное количество живых позиций/ордеров в одном виртуальном окружении.
Единственное, когда может возникнуть проблема, если сохранили в файл виртуальное окружение со старым значением, а потом попробовали его загрузить с новым значением.
Т.е. проблема больше гипотетическая.
Один раз нарвался на нехватку значения 100, когда снепшотил реальное окружение, где по одному символу оказалось PositionsTotal+OrdersTotal > 100. Поэтому у самого стоит значение 200.
Заказчик 500 попросил ) И, скорее всего, будет мало )
Заказчик 500 попросил ) И, скорее всего, будет мало )
Для скорости нигде не стоит проверка на выход за массив. Так что в случае превышения советник остановится с соответствующей ошибкой. Ставьте с запасом.
Для скорости нигде не стоит проверка на выход за массив. Так что в случае превышения советник остановится с соответствующей ошибкой. Ставьте с запасом.
Да, нарвался на out of range. Спасибо!
В качестве проверки понимания взаимодействия окружений привожу решение следующей задачи.
Forum on trading, automated trading systems and testing trading strategies
Is it possible to save orders?
fxsaber, 2023.08.03 19:48
Например, выставлены отложки. Сохраняем их скриптом (inSave = true) и удаляем отложки (все или часть) перед новостями средствами GUI.
После новостей восстанавливаем удаленные отложки запуском скрипта (inSave = false).
Один из сценариев использования библиотеки.
https://www.mql5.com/ru/blogs/post/754137
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
MQL4 отслеживание закрытия ордера по TP
fxsaber, 2023.10.16 08:58
Представьте, что у вас есть два счета.
И стоит задача, как бы на реальном счете торговать так, как на идеальном демо-счете? Для этого, конечно, используют копир: сравнивают, что сейчас на демо и на реале, и выравнивают состояние реала до демо.
Заметьте, что копир ничего не запоминает. Он просто на каждом тике сравнивает один счет с другим. Это, наверное, самое надежное решение в алготрейдинге.
Встает вопрос, как создать такой идеальный демо-счет? Некоторые делают так.
В таком случае у вас только EX5-файл и больше ничего не нужно. Вы можете запустить его на другой машине, и он будет торговать ровно так, как если бы торговал на исходной машине.
Более того, вам не нужно запоминать расположение той же сетки ордеров, продумывать особенности исполнения ордеров брокером и т.д. Потому что у вас есть под рукой всегда идеальный "демо-счет".
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Библиотеки: MT4Orders
fxsaber, 2023.11.14 17:49
Все точно также, как должно работать у торговых копиров и на внешних крипто-биржах.
Результат.
Сверху обычное представление, снизу - альтернативное. В рамках одно и то же, для сравнения.
Здравствуйте! Спасибо за библиотеку.
Сравнивал распечатки сделок полученные от виртуального и реального тестеров. Появилось несколько предложений по доработке:
Поставьте пожалуйста
#define MAX_ORDERS 1000
100 тоже не хватило. Памяти немного возьмет. При апдейтах не хотелось бы каждый раз искать и править.
---------------------------
Тестер свопы расчитывает по умолчанию, думаю надо и в виртуальном тестере сделать так же (видимо при переносе ордера в историю). А может лучше в активых ордерах в начале новых суток, чтобы текущая эквити была точнее (добавив в ее расчет свопы). Код станет без лишних вставок. А то кто-то так и не разберется, что своп надо отдельно считать.
Сейчас делаю так в OnTester.
for (int v = 0 ; v <= VIRTUAL::Total(); v++){
if (VIRTUAL::SelectByIndex(v)){
VIRTUAL::CalcSwaps();
...
------------------------------
П.С. при сравнении получил полное соответствие по суммам, кроме отклоненных по Market closed и 2 сделки в виртуальном имели большее проскальзывание ТП, чем в реальном. Остальные 600+ сделок точно совпали.Тестер MT отказывает в части сделок из за Market closed
Проверил спецификацию и правда на Alp... с 23:55 до 00:15 торговля закрыта.
Хорошо бы и виртуальному тестеру отклонять сделки по этому времени, для более точного соответствия.
И заодно и в MT4Orders, добавить проверку, чтобы и в тестерах и в реале не пытаться торговать при закрытой торговле.
Тут код с примером как сделать https://www.mql5.com/ru/forum/390928#comment_45855346
# open date T Prof Pip Comis Swap
2022.05.30 23:59:30 660 2022.05.30 23:55:00 0 -0.15 -15 -0.04 0.0 должен быть отклонен по Market closed
2022.05.30 23:59:30 661 2022.05.30 23:55:00 1 -0.15 -15 -0.04 0.0 должен быть отклонен по Market closed
--------------------------------
Давно не интересовался расчетом комиссии. Хотелось бы уйти от ее указания в коде или через input. Была идея сделать одну тестовую сделку и из нее взять комиссию, но это нарушит стратегию. А может MQ дали возможность ее узнать запросом?