Jump to content

Вопросы по платформе MetaTrader


Recommended Posts

Ugar68
15 часов назад, RazorFish сказал:

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

Терминал конечно нельзя назвать безупречным. Но метаквоты периодически выпускают обновления, в которых что то исправляют. И исправляют они с невероятной скоростью. Я сам указывал им на несколько багов. Исправление одного мне пришлось ждать 2 года, второго пол года, третьего полтора года. А один вообще не исправили и не собираются, так как он не возникает на нормальных компьютерах. Только на сильно загруженных виртуальных и реальных серверах. И его можно обойти программно. Нет слов, одни слюни, те матершинные.

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

Так же слетают конфиги, когда винда отменяет сохранение новых файлов из за проблем с правами учётной записи. У меня такого нет потому что терминалы работают в портативном режиме и находятся в отдельной папке. Мне так удобнее бэкапить.

  • Upvote 1

Пишу советники и индикаторы по вашим алгоритмам. Пишите в личку.
Чужие программы не переделываю.

Link to post
Share on other sites
  • Replies 2.8k
  • Created
  • Last Reply

Top Posters In This Topic

  • Rosh

    483

  • AntFX

    130

  • Ugar68

    67

  • Roger

    62

Top Posters In This Topic

Popular Posts

Для тех, кто не следит за метаквотами и их новостями(в которых на своем сайте они застряли давным давно) - на своем форуме они объявили:   MetaQuotes Software Corp. 2017.05.10 22:48  Новая версия пла

Так и должно быть. Файлы логов на диске. Диск самый медленное устройство из постоянно работающих. Доступ к нему одноканальный. То есть все дисковые запросы, всех программ, встают в очередь и обрабатыв

Как и любой удаленный объект:    Ctrl+Z   если не закрывался МТ4.

Posted Images

Hitronrav
45 минут назад, Ugar68 сказал:

Как правило, ошибки в работе программы, это ошибки программиста, написавшего её.

 

Интересно, как можно объяснить ошибкой программиста выдачу левых значений встроенными функциями цены и времени? Причём выдачу только начиная со второго прохода оптимизации, тогда как при обычном тестировании и на первом проходе оптимизации всё выдаётся верно?

 

Глобальные переменные в советнике не используются.

 

PS. Временно забросил выявление причин этого бага, оптимизация мне не особо нужна и пока есть чем заняться другим.

Edited by Hitronrav
Link to post
Share on other sites
RazorFish
38 минут назад, Ugar68 сказал:

И исправляют они с невероятной скоростью.

 

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


Don't throw your pearls before the pigs, lest perhaps they trample them under their feet, and turn and tear you to pieces.

Link to post
Share on other sites
Ugar68
8 минут назад, RazorFish сказал:

 

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

О чём это Вы? Имитация проскальзывание при срабатывании стопов в тестере МТ4? НИКОГДА!!! этого не будет. Они не могут сделать даже работу на реальных тиках, что бы учитывался реальный плавающий спред. Тиков в истории МТ4 нет. Тестер их моделирует, то есть сочиняет, в зависимости от формы бара. И даже это моделирование он делает только по текущему символу. Если в советнике используются данные нескольких символов, он использует только целые бары. Тестер МТ4 считается винтажным. Никаких улучшений по нему не будет.

Метаквоты считают перспективным МТ5 и его тестер. Тестер МТ5 умеет моделировать тики по нескольким символам не только для получения данных, но и торговать может по ним. Так же умеет работать по реальным тикам, если брокер предоставит историю тиков. И ещё кучу всего, что не умеет тестер МТ4.

Тем не менее, МТ4 проще, по этому популярнее. MQL4 популярнее по той же причине.

  • Upvote 2

Пишу советники и индикаторы по вашим алгоритмам. Пишите в личку.
Чужие программы не переделываю.

Link to post
Share on other sites
RazorFish
30 минут назад, Ugar68 сказал:

Метаквоты считают перспективным МТ5 и его тестер.

 

Причем они также считают себя умней пользователей терминала и лучше знающими, что тем нужно. Для меня было неприятным сюрпризом, что в МТ5 невозможно, даже опционально, задать произвольную величину спреда...


Don't throw your pearls before the pigs, lest perhaps they trample them under their feet, and turn and tear you to pieces.

Link to post
Share on other sites
Ugar68
1 час назад, RazorFish сказал:

 

Причем они также считают себя умней пользователей терминала и лучше знающими, что тем нужно. Для меня было неприятным сюрпризом, что в МТ5 невозможно, даже опционально, задать произвольную величину спреда...

История в МТ4 содержит только Bid. Ask вычисляется тестером как Bid+заданный спред, больше её взять негде.. История в МТ5 содержит обе цены. То есть в истории уже содержится плавающий спред. По мнению метаквотов, наверное, плавающий спред из истории лучше чем заданный. Хотя могли бы сделать опцию. На модели "все тики", тики всё равно смоделированы. Но тогда, какая цена будет из истории, а какая вычисленная через спред?

За то есть имитация проскальзывания и реквот. И ещё много вкусностей. Кстати, большинство из них добавлены по просьбам юзеров. Когда то он был такой же примитивный как тестер МТ4. А вот при обращении добавить что то в тестер МТ4, отвечают "переходите на МТ5". То есть, тестер МТ4 для них антиквариат, не подлежащий реставрации.


Пишу советники и индикаторы по вашим алгоритмам. Пишите в личку.
Чужие программы не переделываю.

Link to post
Share on other sites
  • 3 weeks later...
Hitronrav
15.04.2020 в 19:30, Hitronrav сказал:

Временно забросил выявление причин этого бага, оптимизация мне не особо нужна и пока есть чем заняться другим.

 

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

Link to post
Share on other sites
  • 6 months later...
ZeleBoba

Всем здравствуйте, и пожелания здоровья.

Столкнулся со следующей проблемой:

в тестере, при попытке закрыть ордер (прога на МТ4), получаю реквот.

Причем эта функция закрытия используется у меня разными советниками.

В большинстве пред.версий советников все прекрасно срабатывает.

Ситуация повторяется и на счете типа инстант (стандарт), и на рыночном (ECN).

Тестер запускаю по ценам открытия, т.е. тестер советнику должен выдавать только одну цену открытия бара

как и в Open[0], iOpen(), так и в Bid и Ask(цена+фикс.спред при старте тестера). 

И соответственно обработку делаю (и попытку закрытия ордера) только на открытии бара.  

 

использую следующий код в функции:

 

#define SLIPPAGE  30
#define ATTEMPT  10

for(i=0;i<ATTEMPT;i++)
    {  RefreshRates();
       switch(type)
          {  case OP_BUY: //price=Ask;
                  if(OrderClose(ticket,lot,Ask,SLIPPAGE)) return(true); break;
            case OP_SELL: //price=Bid; 
                  if(OrderClose(ticket,lot,Bid,SLIPPAGE)) return(true);
          }
         ...        
        err=GetLastError(); Print("Close/delete order: ",ErrorDescription(err));

 

результат один и то же, если цену брать через переменную (закоментирована)  

 

Может кто-то уже сталкивался? Либо я что-то делаю не так?


Лучше маленький профит, чем большие рога.

Link to post
Share on other sites
ZeleBoba

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

разница в предыдущем и новом советнике только в сигнале  на закрытие.

и для уточнения: предыдущий советник в тестере успешно закрывает и в зоне проскальзывания и на расстоянии менее спреда от цены открытия.   


Лучше маленький профит, чем большие рога.

Link to post
Share on other sites
Ugar68

В тестере идеальные условия, при правильном коде реквот быть не должно.

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

А вообще, лично я предпочитаю учитывать погрешности вычисления и хранения данных в переменных дробных типов.

Edited by Ugar68

Пишу советники и индикаторы по вашим алгоритмам. Пишите в личку.
Чужие программы не переделываю.

Link to post
Share on other sites
DVargo

А что у нас Бай по аску закрываем и Селл по биду?

 

Проскальзывание 30, а тестируете в какой день недели и с каким спредом? есн обычный - не про?

По номеру ошибки искать не пробовали или ее не возвращает?

Link to post
Share on other sites
ZeleBoba

Спасибо всем.

Сегодня утром запустил тестер, и о чудо - все работает.

вопрос про спред натолкнул на то, что обратил внимание на установку в тестере - спред "текущий".

Видимо вчера было приличное расширение по золоту.


Лучше маленький профит, чем большие рога.

Link to post
Share on other sites
Ugar68
15 часов назад, DVargo сказал:

А что у нас Бай по аску закрываем и Селл по биду?

Воооот, а я то этого и не заметил. Забываю про младенческие ошибки. Действительно, Buy открывается по Ask, а закрывается по Bid, Sell наоборот.

10 часов назад, ZeleBoba сказал:

Спасибо всем.

Сегодня утром запустил тестер, и о чудо - все работает.

вопрос про спред натолкнул на то, что обратил внимание на установку в тестере - спред "текущий".

Видимо вчера было приличное расширение по золоту.

Исправь цены закрытия, и станет не важно проскальзывание и спред, по крайней мере в тестере.

Кстати, если счёт ECN, значение проскальзывания игнорируются. По крайней мере должно игнорироваться. Ведь ECN должен исполняться по Market. По идее, выбирая счёт с этим исполнением, соглашаешься на любое проскальзывание, каким бы космическим оно не оказалось. Хотя в Альпари может и не игнорируется. Странный у них какой то Market если можно открыть сделку сразу со стопом и тейком.


Пишу советники и индикаторы по вашим алгоритмам. Пишите в личку.
Чужие программы не переделываю.

Link to post
Share on other sites
  • 4 months later...
sable57

Добрый вечер, gentlemen

При использовании оператора Print(..) результаты печати мы можем видеть во вкладке Эксперты.  По логике это также должно записываться в логах, но где их искать?  Если использовать "Открыть каталог данных", то там можно найти много папок logs. Существует ли какая-н закономерность в том, куда помещают результаты печати?


"Призрачно все в этом мире бушующем."

Link to post
Share on other sites
Ugar68
26.03.2021 в 21:36, sable57 сказал:

Добрый вечер, gentlemen

При использовании оператора Print(..) результаты печати мы можем видеть во вкладке Эксперты.  По логике это также должно записываться в логах, но где их искать?  Если использовать "Открыть каталог данных", то там можно найти много папок logs. Существует ли какая-н закономерность в том, куда помещают результаты печати?

В подпапку logs папке терминала пишет терминал.

В подпапку logs папке tester пишет тестер и работающие в нём программы. В том числе Print ы работающих в тестере программ.

В подпапку logs папке MQL4, MQL5 пишут программы работающие на счёте. В том числе Print ы работающих на счёте программ.


Пишу советники и индикаторы по вашим алгоритмам. Пишите в личку.
Чужие программы не переделываю.

Link to post
Share on other sites
sable57
27.03.2021 в 19:42, Ugar68 сказал:

В подпапку logs папке терминала пишет терминал.

В подпапку logs папке tester пишет тестер и работающие в нём программы. В том числе Print ы работающих в тестере программ.

В подпапку logs папке MQL4, MQL5 пишут программы работающие на счёте. В том числе Print ы работающих на счёте программ.

Я жму  Файл->Открыть каталог данных.

Вижу несколько папок с труднопроизносимыми именами типа 9BD11DA83190C9ED38500EAC3CF80D4C (скопировал одно из них) и папки Common, Community, Help.

В последних 3-х ничего примечательного (в смысле моих интересов) не вижу.  В первых более знакомые имена, в т.ч. папки logs и MQL4.  В последней также нахожу папку Logs.

В некоторых из указанных папок нахожу сообщения о старте терминала, установке индикаторов etc.

Запускаю свои скрипты.  После чего опять просматриваю папки и вижу следы своей деятельности - сообщения об установке и/или закрытии позиций, но нет ни одного Print'а, хотя они и выводятся в Экспертах.

 

 

 


"Призрачно все в этом мире бушующем."

Link to post
Share on other sites
Ugar68
4 часа назад, sable57 сказал:

Я жму  Файл->Открыть каталог данных.

Вижу несколько папок с труднопроизносимыми именами типа 9BD11DA83190C9ED38500EAC3CF80D4C (скопировал одно из них) и папки Common, Community, Help.

В последних 3-х ничего примечательного (в смысле моих интересов) не вижу.  В первых более знакомые имена, в т.ч. папки logs и MQL4.  В последней также нахожу папку Logs.

В некоторых из указанных папок нахожу сообщения о старте терминала, установке индикаторов etc.

Запускаю свои скрипты.  После чего опять просматриваю папки и вижу следы своей деятельности - сообщения об установке и/или закрытии позиций, но нет ни одного Print'а, хотя они и выводятся в Экспертах.

 

 

 

Common это общая папка всех терминалов для обмена данными между терминалами.

Аброкадабра типа 9BD11DA83190C9ED38500EAC3CF80D4C это каталог данных конкретного терминала. Если в системе будет несколько терминалов, будет несколько таких папок с разным набором символов. Такие папки создаются если терминалы установлены обычным способом, а не используются как портативные.

Внутри есть папка MQL4, а в ней Logs. Именно в эту папку пишут логи скрипты, индикаторы и советники. Чаще всего с помощью функции Print. Но есть и другие функции для печати.

Само слово Print не печатается в логе.

Если в программе выполняется Print("Привет!"); то в логе будет написано Привет!


Пишу советники и индикаторы по вашим алгоритмам. Пишите в личку.
Чужие программы не переделываю.

Link to post
Share on other sites
  • 2 weeks later...
sable57
29.03.2021 в 20:11, Ugar68 сказал:

Common это общая папка всех терминалов для обмена данными между терминалами.

Аброкадабра типа 9BD11DA83190C9ED38500EAC3CF80D4C это каталог данных конкретного терминала. Если в системе будет несколько терминалов, будет несколько таких папок с разным набором символов.

.....

 

Спасибо за разъяснение.

Занимался разборов, нашел, что ведут себя они несколько странно.  Возможно, ведут себя они как надо, но лишь мне это кажется странным.

Иногда в логах сразу появляются записи, чаще не появляются.  Если терминал закрыть, а затем опять загрузить, то записи появляются.  На днях файл в логах, соответствующий текущему дню, вообще не был создан.  После перезагрузки терминала он появился как и положено со всеми записями.

Так и должно быть, или особенности моего компа?


"Призрачно все в этом мире бушующем."

Link to post
Share on other sites
Ugar68
44 минуты назад, sable57 сказал:

Спасибо за разъяснение.

Занимался разборов, нашел, что ведут себя они несколько странно.  Возможно, ведут себя они как надо, но лишь мне это кажется странным.

Иногда в логах сразу появляются записи, чаще не появляются.  Если терминал закрыть, а затем опять загрузить, то записи появляются.  На днях файл в логах, соответствующий текущему дню, вообще не был создан.  После перезагрузки терминала он появился как и положено со всеми записями.

Так и должно быть, или особенности моего компа?

Так и должно быть. Файлы логов на диске. Диск самый медленное устройство из постоянно работающих. Доступ к нему одноканальный. То есть все дисковые запросы, всех программ, встают в очередь и обрабатываются соответственно по очереди. По этому любой программист пишущий программу старается без острой надобности к диску не обращаться. По этому все логи находятся в оперативке и без надобности на диск не пишутся.

Закрытие терминала сваливает все логи из оперативки на диск для хранения.

Но для сваливания лога на диск не обязательно закрывать терминал, достаточно правильно открыть файл лога.

 

image.jpeg.d54516b28901085c73e9bfaa382ab024.jpeg

 

В окне терминала выбрать вкладку “эксперты”, на содержимом лога нажать правую кнопку мыши, в контекстном меню выбрать “открыть”.

Так терминал поймёт что нужен файл лога, свалит весь лог в файл и откроет проводник для открытия файла.

Edited by Ugar68
  • Upvote 3

Пишу советники и индикаторы по вашим алгоритмам. Пишите в личку.
Чужие программы не переделываю.

Link to post
Share on other sites
sable57
22 часа назад, Ugar68 сказал:

Так и должно быть. Файлы логов на диске. Диск самый медленное устройство из постоянно работающих. Доступ к нему одноканальный. То есть все дисковые запросы, всех программ, встают в очередь и обрабатываются соответственно по очереди. По этому любой программист пишущий программу старается без острой надобности к диску не обращаться. По этому все логи находятся в оперативке и без надобности на диск не пишутся.

Закрытие терминала сваливает все логи из оперативки на диск для хранения.

Но для сваливания лога на диск не обязательно закрывать терминал, достаточно правильно открыть файл лога.

...

В окне терминала выбрать вкладку “эксперты”, на содержимом лога нажать правую кнопку мыши, в контекстном меню выбрать “открыть”.

Так терминал поймёт что нужен файл лога, свалит весь лог в файл и откроет проводник для открытия файла.

Еще раз: "Спасибо."  О такой возможности я даже не подозревал.

"Как много нам открытий чудных ..." и т.д.


"Призрачно все в этом мире бушующем."

Link to post
Share on other sites
  • 1 year later...
barmalei195

Здравствуйте. Давно заметил такую штуку. Котировки при тестировании стратегий в мт4 отображаются некорректно. Невозможно что либо понять без риска реальными деньгами. Стоимость пунктов по прогону на истории отличаются от реальной торговли в сотни раз. От чего это зависит и можно ли с этим что-то сделать?

Link to post
Share on other sites
  • 1 month later...
FSB
09.09.2022 в 22:59, barmalei195 сказал:

Здравствуйте. Давно заметил такую штуку. Котировки при тестировании стратегий в мт4 отображаются некорректно. Невозможно что либо понять без риска реальными деньгами. Стоимость пунктов по прогону на истории отличаются от реальной торговли в сотни раз. От чего это зависит и можно ли с этим что-то сделать?

Сталкивался, тут дело в архиве котировок, при их подгрузке, у меня постоянно выскакивает это:

image.thumb.png.495fe5e235c61e29d2300cecba2341aa.png

 

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

 

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

 

UPD

Очень важно при тестировании НЕ оставлять спрэд в положении "Текущий"

image.png.7dda35ca69f1c70289c65ff1f9a0553e.png

Особенно, если в советнике прописаны ограничения по нему (если их нет - ОЧЕНЬ рекомендую прописать)

 

Edited by FSB

Не зная ни сна и ни отдыха; При лунном и солнечном свете; Мы делаем деньги из воздуха; Чтоб снова спустить их на ветер!

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    No registered users viewing this page.


×
×
  • Create New...