Ошибки, баги, вопросы - страница 2301

 
Artyom Trishkin:

Для текстового объекта, располагающегося на High[], точка привязки (свойство OBJPROP_ANCHOR) должно иметь значение ANCHOR_LOWER (точка привязки снизу по центру).

Для текстового объекта, располагающегося на Low[], точка привязки (свойство OBJPROP_ANCHOR) должно иметь значение ANCHOR_UPPER (точка привязки сверху по центру).

Либо ANCHOR_CENTER для обоих расположений - точка привязки по центру.

Попробуйте.

Но это получается, что надо создавать ДВА объекта с именами, например, Hi и Lo (верхний и нижний экстремумы зигзага или верхний и нижний концы фактического восходящего или нисходящего локального тренда), и оба привязывать к графику с соответствующими значениями ANCHOR_LOWER и ANCHOR_UPPER. Не проще ли выполнить (как-нибудь) привязку Верха Зигзага - к ранее "привязанному" Низу? Примерно это я и сделал, добавив в прежнюю функцию строку

ObjectSetInteger(0,Obj,OBJPROP_ANCHOR,ANCHOR_CENTER); и введя "поправки смещения" в строку вывода   if(tvT) ORT(kBtT,Low[kBtT]-2*_Point,DtT,LowClr);   else ORT(kBtT,High[kBtT]+2*_Point,DtT,HighClr); //

Пока вроде работает. Спасибо!

 
aleger:

Но это получается, что надо создавать ДВА объекта с именами, например, Hi и Lo (верхний и нижний экстремумы зигзага или верхний и нижний концы фактического восходящего или нисходящего локального тренда), и оба привязывать к графику с соответствующими значениями ANCHOR_LOWER и ANCHOR_UPPER. Не проще ли выполнить (как-нибудь) привязку Верха Зигзага - к ранее "привязанному" Низу? Примерно это я и сделал, добавив в прежнюю функцию строку

ObjectSetInteger(0,Obj,OBJPROP_ANCHOR,ANCHOR_CENTER); и введя "поправки смещения" в строку вывода   if(tvT) ORT(kBtT,Low[kBtT]-2*_Point,DtT,LowClr);   else ORT(kBtT,High[kBtT]+2*_Point,DtT,HighClr); //

Пока вроде работает. Спасибо!

Зачем? Привязку же можно менять в любое время. Или я чего не понял? Вы же цвет меняете. Так же и привязку меняйте.

 

После закрытия окна дебаг-визуализатора, перекомпиляции и запуска в Тестере одиночного прогона без визуализации получил такое

2018.09.27 14:01:52.784 Core 1  agent process started
2018.09.27 14:01:52.784 Core 1  connecting to 127.0.0.1:3000
2018.09.27 14:02:11.358 Core 1  tester agent authorization error
2018.09.27 14:04:15.875 Core 1  no connection
2018.09.27 14:04:15.875 Core 1  connect error

20 секунд ничего не мог сделать. Кнопка Старт была серой все этой время.


Записи Агента

DM      3       14:01:49.711    Tester  close visual tester window
RH      0       14:01:49.711    Tester  shutdown tester machine
LN      0       14:01:54.186    Server  MetaTester 5 stopped


Из логов следует, что Тестер попытался подключиться к Агенту в 01:52, а сам Агент (Server) остановился только в 01:54. Отсюда невозможность подключения и зависание. Давний баг, но сейчас хоть стала понятна причина.

 

Результаты профилировщика на исторических данных


Штатная OrderSend треть времени занимает. За счет чего такие неприятные показатели?

 
fxsaber:

Результаты профилировщика на исторических данных


Штатная OrderSend треть времени занимает. За счет чего такие неприятные показатели?

В тестере вся торговая логика здесь же, а не на торговом сервере.

 
Slava:

В тестере вся торговая логика здесь же, а не на торговом сервере.

Почти три миллиона тиков и всего 16К OrderSend. Но эти торговые приказы занимают треть времени. А ведь на каждом тике идут расчеты в советнике.

Отсюда и вопрос. Могли бы Вы прогнать код OrderSend в профилировщике? В каком месте там такой затык?

Предполагаю, что если заменить штатную функцию на свою, то будет работать быстрее. Наверное, в OrderSend идут какие-то дорогостоящие проверки и телодвижения. Например, если в советнике (+ индикаторы) нигде нет History-функций и OnTrade*, то формирование соответствующих записей/событий - пустая трата времени.

Понимаю, что у некоторых один прогон длится многие минуты. Но бывают случаи, как выше, - единицы секунд, если уделять внимание скорости выполнения. А тут оказывается, что запускаю Оптимизацию на три часа, а из них час - это OrderSend, среднее время выполнения которой 69 мкс (см. скрин):

  • TRADE_ACTION_PENDING - 104 мкс.
  • TRADE_ACTION_SLTP/TRADE_ACTION_MODIFY/TRADE_ACTION_REMOVE - 68 мкс.
 
Я многократно профилировал тестер. И знаю, где там "затык". Это финансовые расчёты, которые предполагают несколько нормализаций результатов к числу знаков валюты депозита
 
Slava:
Я многократно профилировал тестер. И знаю, где там "затык". Это финансовые расчёты, которые предполагают несколько нормализаций результатов к числу знаков валюты депозита

Напишу свой OrderSend, сравню.

 
Привет Всем! Я недавно в трейдинге,вотуже пол года как вникаю во все подробности связаные с этой деятельностю,сама деятельность вполне заманчевая но я не знаю но мне чясто кажется ,что вся прибыль и убытки за месяцы или годы по большому счёту сводится к нулю,это в лучшем случяе.Я никого не хочю разачяровывать в этой деятельности это выбор каждого,но один очень сушественый факт мне точно покоя не даст никогда в этом деле,это НАЦЕНКА (НАЦЕНКА это когда сделка открывается уже с -16пунктов или -21 пункт) В 16 пунктов или 21 пункт а то и в 34 пункта,видимо она плавающея,Бог знает,ну и  как тут можно заработать???У меня один только вопрос:Скажите пожалуйсто кто нибудь кто по опытнее,такая большая НАЦЕНКА это дело рук брокера моего (мой брокер говорит что у него нет наценки и что это от поставщика ликвидности)  или это в целом у всех,кто нибудь раскажите по подробнее есть ли у него НАЦЕНКА и в сколько пунктов. 
 
Прошу обратить внимание на этот пост (или могу перенести сюда, а там можно будет грохнуть): https://www.mql5.com/ru/forum/281440
Помогите разобраться (баг или я не понимаю чего?)
Помогите разобраться (баг или я не понимаю чего?)
  • 2018.09.28
  • www.mql5.com
Всем привет, сразу к делу...
Причина обращения: