Nikolai Semko: Если есть что сказать, говорите, пожалуйста, по существу.
как минимум - Ваш ЕА в тестере в режиме "произвольна задержка" - показывает один в один количество сделок с режимом "без задержек" ?
у меня тостерный вариант кода полностью повторяет эти 2 режима по количеству сделок - понятно, что результаты тестирования отличаются, но так я учитываю качество исполнения ордеров
Столкнулся с тем, что реальная торговля на демо очень сильно отличается от тестера с теми же параметрами на реальных тиках. Причем реальная торговля торгует гораздо лучше и прибылнее, чем тестер. Т.е. тестер врет. Стратегия открытия сделок такая, что тестер должен практически совпадать с реальной торговлей.
Счет MQ Demo неттинговый.
Торговля фиксированным лотом 0.02.
Сигнал на продажу закрывает Buy и окрывает Sell.
Сигнал на покупку закрывает Sell и открывает Buy.
Когда появляется сигнал на покупку или продажу, он висит до тех пор, пока он не будет закрыта противоположная позиция и открыта новая позиция.
Реальная торговля велась на VPS с 15 декабря по 9 января. Пинг 10 - 15 ms. Тест за тот же период.
Это что? Баг или я чего-то не учитываю?
То есть человек заходит в маркет, скачивает демо версию советника и на тесте получает лажу вместо реальной картины?
Я знаю три вероятные причины, если Вы используете индикаторы:
1. Разная глубина истории, влияющая на расчетный результат индикатора;
2. Задержка вычисления индикатора на первом тике (нулевое значение буфера или мусор);
3. Если сигнал не по открытию бара и сигнал с нулевого или перерисовывающегося на истории индикатора, то так же могут быть расхождения.
Если сигнал на открытии бара, то можно просто писать значение индикаторов на каждом баре и потом сопоставить результаты с тестером.
Согласно документации https://www.mql5.com/ru/docs/basis/function/export модификатор export указывает компилятору, что данная функция экспортируемая, и функция должна быть доступной из любой mql программы. Но у меня почему то не получается её вызвать из другой программы. Ошибка возникает на #include Я что то не так делаю? Или это ошибка в терминале?
Экспортируемая функция Function(), задекларирована в программе сервис.
//+------------------------------------------------------------------+//| Test.mq5 |//| Copyright 2020, MetaQuotes Software Corp. |//| https://www.mql5.com |//+------------------------------------------------------------------+#property service#property copyright"Copyright 2020, MetaQuotes Software Corp."#property link"https://www.mql5.com"#property version"1.00"int i = 0;
//-------------------------------------------------------------------void Function() export
{
Print((string)++i);
}
//+------------------------------------------------------------------+//| Service program start function |//+------------------------------------------------------------------+voidOnStart()
{
while(!_StopFlag)
{
Sleep(1000);
}
}
Согласно документации https://www.mql5.com/ru/docs/basis/function/export модификатор export указывает компилятору, что данная функция экспортируемая, и функция должна быть доступной из любой mql программы. Но у меня почему то не получается её вызвать из другой программы. Ошибка возникает на #include Я что то не так делаю? Или это ошибка в терминале?
Экспортируемая функция Function(), задекларирована в программе сервис.
Эксперт
Пытаюсь вызвать Function() в эксперте, но при компиляции, на #include сыпется ошибка.
Если #include закоментировать, то появляется ошибка, что Function() не задекларирована
Как правильно вызвать export функцию из сервиса в другой программе?
А вы уверены что надо #include , а не #import
Я просто не помню, давно это применял для проверки как работает.
Импорт функций (#import) - Препроцессор - Основы языка - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
Если есть что сказать, говорите, пожалуйста, по существу.
как минимум - Ваш ЕА в тестере в режиме "произвольна задержка" - показывает один в один количество сделок с режимом "без задержек" ?
у меня тостерный вариант кода полностью повторяет эти 2 режима по количеству сделок - понятно, что результаты тестирования отличаются, но так я учитываю качество исполнения ордеров
Столкнулся с тем, что реальная торговля на демо очень сильно отличается от тестера с теми же параметрами на реальных тиках.
Причем реальная торговля торгует гораздо лучше и прибылнее, чем тестер. Т.е. тестер врет.
Стратегия открытия сделок такая, что тестер должен практически совпадать с реальной торговлей.
Это что? Баг или я чего-то не учитываю?
То есть человек заходит в маркет, скачивает демо версию советника и на тесте получает лажу вместо реальной картины?
Я знаю три вероятные причины, если Вы используете индикаторы:
1. Разная глубина истории, влияющая на расчетный результат индикатора;
2. Задержка вычисления индикатора на первом тике (нулевое значение буфера или мусор);
3. Если сигнал не по открытию бара и сигнал с нулевого или перерисовывающегося на истории индикатора, то так же могут быть расхождения.
Если сигнал на открытии бара, то можно просто писать значение индикаторов на каждом баре и потом сопоставить результаты с тестером.
не нашел в справке описание от OPENCL barrier() и в макросах который вкл( https://www.khronos.org/registry/OpenCL/extensions/amd/)
cl_amd_fp64
Согласно документации https://www.mql5.com/ru/docs/basis/function/export
модификатор export указывает компилятору, что данная функция экспортируемая, и функция должна быть доступной из любой mql программы.
Но у меня почему то не получается её вызвать из другой программы. Ошибка возникает на #include
Я что то не так делаю? Или это ошибка в терминале?
Экспортируемая функция Function(), задекларирована в программе сервис.
Эксперт
Пытаюсь вызвать Function() в эксперте, но при компиляции, на #include сыпется ошибка.
Если #include закоментировать, то появляется ошибка, что Function() не задекларирована
Как правильно вызвать export функцию из сервиса в другой программе?
Согласно документации https://www.mql5.com/ru/docs/basis/function/export
модификатор export указывает компилятору, что данная функция экспортируемая, и функция должна быть доступной из любой mql программы.
Но у меня почему то не получается её вызвать из другой программы. Ошибка возникает на #include
Я что то не так делаю? Или это ошибка в терминале?
Экспортируемая функция Function(), задекларирована в программе сервис.
Эксперт
Пытаюсь вызвать Function() в эксперте, но при компиляции, на #include сыпется ошибка.
Если #include закоментировать, то появляется ошибка, что Function() не задекларирована
Как правильно вызвать export функцию из сервиса в другой программе?
Я просто не помню, давно это применял для проверки как работает.
Roman:
#include сыпется ошибка.
https://www.mql5.com/ru/docs/basis/preprosessor/import
Спасибо. Действительно, вместо #include требуется #import
Всё работает.
Сегодня утром заметил.
Ждал в терминале данные по новости австралийца.
В итоге выяснил, что на сайте у вас данные по новости есть, а в терминале нет!
Кнопка "Обновить" нажималась и не раз.
Уже есть другие данные в терминале, а по австралийцу данных так и не поступило в терминал!
Это с чем связано?
Почему-то размер шрифта "Terminal" равный 10 и 12 у текстовой метки получаются одинаковыми. Так и в МТ4 и в МТ5.
Почему-то размер шрифта "Terminal" равный 10 и 12 у текстовой метки получаются одинаковыми. Так и в МТ4 и в МТ5.
Вероятно потому, что у этого шрифта нет размера 10: