Новая версия платформы MetaTrader 5 build 5640: Улучшения темной темы и Markdown в MetaEditor - страница 11

 
Ilya Filatov #:

Советник, торгующий и тестирующийся на кастом-символе на базе обычного, где свечи строятся не по Bid, а по (Ask+Bid)/2.

Каким образом реализация этого предложения поломает ваш вариант?

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Новая версия платформы MetaTrader 5 build 5640: Улучшения темной темы и Markdown в MetaEditor

fxsaber, 2026.02.28 14:39

Предлагаю превентивно уничтожить возможность такой развилки.

В Тестере SYMBOL_CUSTOM всегда false, SYMBOL_PATH - NULL.

 
fxsaber #:
Каким образом реализация этого предложения поломает ваш вариант?

В зависимости от режима построения баров (Bid или кастомный [Ask+Bid]/2) меняется обработка сигналов, производных от баров. Например, меняется корректировка стоп-ордеров, устанавливаемых по линиям некоего индикатора. И это касается как рантайма, так и тестирования.

Но, вы правы, мой вариант это не сломает. А возникающие нюансы я, конечно, обойду (принудительным автоматическим созданием кастом-символа и установкой индикаторов на него, а не определением того, куда установлен советник). Но, на мой взгляд, более корректное решение через ужесточение валидатора.

 

Свои советники очень давно тестирую ТОЛЬКО на кастомных символах, т.к. это полная уверенность в данных.

Никогда в Тестере не использовал SYMBOL_CUSTOM и SYMBOL_PATH. И слабо себе представляю, зачем это может быть нужно в Тестере, за исключением мошеннических схем.


К сожалению, нет предложения, как превентивно побороть и это злоупотребление.

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Новая версия платформы MetaTrader 5 build 5640: Улучшения темной темы и Markdown в MetaEditor

fxsaber, 2026.03.01 11:21

Не дописал. Еще сдвигала котировки на 28 лет (не с потолка - см. блог) в прошлое.

Есть же еще запреты на бэктест до определенной даты (см. блог). Это ограничение также подпадает под нарушение правил Маркета.

void OnTick()
{
  if (TimeCurrent() < D'2018.01.01')
    return;

// ...
}

Вовсю идет использование таких конструкций.

static const string sSkipDays = {"2025.02.26", ...};
static const datetime tSkipDays = {D'2025.02.26', ...};


И немного более продвинутых с тем же смыслом. Зашивают в ресурсы текстовые файлы с подобными данными - исходник не надо менять, достаточно внести в текстовый файл новую дату и сделать перекомпиляцию.

 
fxsaber #:

Свои советники очень давно тестирую ТОЛЬКО на кастомных символах, т.к. это полная уверенность в данных.

Никогда в Тестере не использовал SYMBOL_CUSTOM и SYMBOL_PATH. И слабо себе представляю, зачем это может быть нужно в Тестере, за исключением мошеннических схем.


К сожалению, нет предложения, как превентивно побороть и это злоупотребление.

Вовсю идет использование таких конструкций.


И немного более продвинутых с тем же смыслом. Зашивают в ресурсы текстовые файлы с подобными данными - исходник не надо менять, достаточно внести в текстовый файл новую дату и сделать перекомпиляцию.

Не отвечал, потому что вопрос про тестер - риторический. Мы тестируем не только мошеннические программы, но и легитимные, которые должны работать одинаково в тестере и реале, включая и проверки на кастом-символ, если того требует алгоритм. Когда Вы советуете фактически сделать неработающим if с проверкой на кастом-символ, это сразу приведет к необходимости в легитимных программах делать какие-то непонятные доп.проверки и как минимум их пересобрать.

С другой стороны, из текущих объяснений подтасовок на истории, по-прежнему не вижу, как предлагаемое ограничение в API позволит остановить мошенников, потому что подстройку под историю можно сделать другими способами и запрет на признак кастом-символа в тестере ничего не даст.

Со своей стороны, в качестве меры борьбы против подтасовок, предлагаю помимо добавления кастом-символа в автовалидатор сделать публичными все версии продуктов, загруженные в маркет. Тогда пользователь легко сможет скачать продукт, скажем, 3-х месячной давности и посмотреть как он хорошо себя ведет на этом периоде - например, оптимизирует на 2 месяцах и выполнит форвард на одном.

ПС. Но самая эффективная проверка и исключение фейков - это вручную. Я так и не понял - все те, кто сейчас взялся за борьбу с мошенниками, пробовали жаловаться MQ, чтобы соответствующие продукты убрали или нет?

 
Stanislav Korotky #:

Не отвечал, потому что вопрос про тестер - риторический. Мы тестируем не только мошеннические программы, но и легитимные, которые должны работать одинаково в тестере и реале, включая и проверки на кастом-символ, если того требует алгоритм.

Но это не так. Причем иногда сильно не так. Как с вопросами исполнения ордеров, так и с API MQ. Более того, MQ сделали легитимный способ разного поведения реала и тестера - MQL_TESTER-флаг.

Когда Вы советуете фактически сделать неработающим if с проверкой на кастом-символ, это сразу приведет к необходимости в легитимных программах делать какие-то непонятные доп.проверки и как минимум их пересобрать.

Просил привести легитимную необходимость в тестере проверять кастомность символа.

С другой стороны, из текущих объяснений подтасовок на истории, по-прежнему не вижу, как предлагаемое ограничение в API позволит остановить мошенников, потому что подстройку под историю можно сделать другими способами и запрет на признак кастом-символа в тестере ничего не даст.

Это вечная борьба меча и щита. Т.е. это мировозрение, которое даже обсуждать не стоит.

Со своей стороны, в качестве меры борьбы против подтасовок, предлагаю помимо добавления кастом-символа в автовалидатор сделать публичными все версии продуктов, загруженные в маркет.

Да, это предлагалось. И всеми руками ЗА!

Тогда пользователь легко сможет скачать продукт, скажем, 3-х месячной давности и посмотреть как он хорошо себя ведет на этом периоде - например, оптимизирует на 2 месяцах и выполнит форвард на одном.

Ваш ответ, как дополнение.

ПС. Но самая эффективная проверка и исключение фейков - это вручную. Я так и не понял - все те, кто сейчас взялся за борьбу с мошенниками, пробовали жаловаться MQ, чтобы соответствующие продукты убрали или нет?

Ни разу не боролся с мошенниками. В кнопку Жалоба не верю, как и Вы - Вы не нажали на эту кнопку после моей публикации. И я понимаю это.
Запрет на использование пользовательского символа - вшитые в код разные сеты значений входных параметров или торговые логики.
Запрет на использование пользовательского символа - вшитые в код разные сеты значений входных параметров или торговые логики.
  • 2026.01.18
  • www.mql5.com
если ваш советник не откроет ни одной сделки за этот период. Ваш советник должен торговать на любых валютных парах. А также при тестировании советник не должен забивать лог сообщениями об ошибках. наличие скрытых параметров в количестве тысяч или миллионов
 
fxsaber #:


Ни разу не боролся с мошенниками. В кнопку Жалоба не верю, как и Вы - Вы не нажали на эту кнопку после моей публикации. И я понимаю это.

Я не нажимал Жалобу у продуктов, потому что ими не пользовался и мошенников не искал, потому и адресовал вопрос тем, кто поиском и выявлением уже занимается. Странно, что ответов нет, а есть только "перевод стрелок" на других.

Я использовал Жалобу по другим поводам - на форуме и в чатах. Это работает.

Так что, не понимаю, что сложного обратиться по конкретным нарушениям к MQ, а не просить испортить API в тестере. По поводу тестера уже писал - я за то, чтобы он максимально полно соответствовал реалу, и то, что это сейчас не так - скорее минус, чем повод оправдывать ещё большие ограничения. Наличие флага MQL_TESTER никак не помогает в разделении кастом-некастом символ (если гипотетически флаг кастом-символа будет отключен в тестере), которое может требоваться для диагностики ошибок.

 
Stanislav Korotky #:

просить испортить API в тестере.

Уважаю Вашу точку зрения, хоть и не согласен с ней полностью.
 

Если я правильно понял, то fxsaber просит запретить запрещать использование пользовательского символа в тестере.

Возможно, это можно сделать по-другому, не меняя привычный API?

 
Aleksandr Slavskii #:

Если я правильно понял, то fxsaber просит запретить запрещать использование пользовательского символа в тестере.

Возможно, это можно сделать по-другому, не меняя привычный API?

Насколько я понимаю, он предлагает отключить советнику, работающему в тестере, возможность определения, что он работает на пользовательском символе.
 

Прошу разработчиков рассмотреть изменение фиксации стоп-лоса в тестере в режиме OHLC.

Вот здесь Denis Kislicyn описывает ситуацию, что при закрытии позиции по стоп-лосу записывается цена стоп-лоса, а не цена открытия свечи.

Я прошу внести изменение, касающееся только гэпов, то есть если свеча открывается ниже стоп-лоса позиции бай, то цену закрытия позиции записывать по цене открытия свечи, а не так, как сейчас, по цене стоп-лоса.