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

 
Andrey Miguzov #:
То, что Вы описываете (неотрисовка баров) явный признак, что работает "тяжёлый" индикатор. Можно и на 100 барах такой цикл намудрить (не специально), что ничего работать не будет. Вариант с тестом Вам предложили отличный.

Бары не прорисовываются из-за того, что график и индикатор работают в одном потоке. Такова парадигма разработчиков - график ждёт, пока индикаторы не обработают все поступающие тики. Иначе может получится ситуация, что индикатор показывает значения по "старым" ценам, а график уже новые. А так всё синхронно. 

Теперь окончательно понял куда/как и почему копать.

Ребята, большущее спасибо за помощь, да еще такую быструю!!! ПРОФИТОВ вам НЕМЕРЯНЫХ!

 

В тестере словил

2023.03.07 22:53:01.447 Core 1  2022.01.01 00:00:00   Unhandled exception 0xC0000096
2023.03.07 22:53:01.447 Core 1  2022.01.01 00:00:00      crash -->  0000000002DE48D0 FB                sti        
2023.03.07 22:53:01.447 Core 1  2022.01.01 00:00:00                 0000000002DE48D1 FB                sti        
2023.03.07 22:53:01.447 Core 1  2022.01.01 00:00:00                 0000000002DE48D2 FB                sti        
2023.03.07 22:53:01.447 Core 1  2022.01.01 00:00:00                 0000000002DE48D3 FB                sti        
2023.03.07 22:53:01.447 Core 1  2022.01.01 00:00:00                 0000000002DE48D4 FB                sti        
2023.03.07 22:53:01.447 Core 1  2022.01.01 00:00:00                 0000000002DE48D5 FB                sti        
2023.03.07 22:53:01.447 Core 1  2022.01.01 00:00:00                 0000000002DE48D6 FB                sti        
2023.03.07 22:53:01.447 Core 1  2022.01.01 00:00:00   
2023.03.07 22:53:01.447 Core 1  2022.01.01 00:00:00   00: 0x0000000002DE48D0
2023.03.07 22:53:01.447 Core 1  2022.01.01 00:00:00   01: 0x000000014061177A
2023.03.07 22:53:01.447 Core 1  2022.01.01 00:00:00   
2023.03.07 22:53:01.447 Core 1  global initialization failed
2023.03.07 22:53:01.447 Core 1  global initialization critical error
2023.03.07 22:53:01.447 Core 1  tester stopped because expert initialization failed
2023.03.07 22:53:01.448 Core 1  disconnected
2023.03.07 22:53:01.448 Core 1  connection closed
2023.03.07 22:53:01.459 Tester  quality of analyzed history is 99%
 

Как понимать ошибку

2023.03.07 23:32:27.245 Core 1  OnTester critical error

В советнике

double OnTester()
{
        return(0.0);
}
 
Aleksey Vyazmikin #:

Как понимать ошибку

В советнике

Не воспроизводится.

 
fxsaber #:

Не воспроизводится.

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

Связана с OrderSend(), а точней блокировкой её когда заполнена MqlTradeRequest  и требуется модификация открытого ордера - почему то советник сходит с ума.

if(request_02.position!=0)Block_Open=true;

Я с ордерами конечно не так дружу - сижу ковыряю.

 
У меня в памяти сидит устойчивое требование к советнику, использующему индикаторы и редко торгующему, которое заключается в том, что индикаторы надо периодически опрашивать, иначе они как бы выгружаются из памяти. Это у меня искаженная память, и достаточно опрашивать индикаторы раз в сутки, или это было в MT4, а в MT5 уже такого нет, или же так и надо делать?
 
Aleksey Vyazmikin #:
У меня в памяти сидит устойчивое требование к советнику, использующему индикаторы и редко торгующему, которое заключается в том, что индикаторы надо периодически опрашивать, иначе они как бы выгружаются из памяти. Это у меня искаженная память, и достаточно опрашивать индикаторы раз в сутки, или это было в MT4, а в MT5 уже такого нет, или же так и надо делать?

разве проверка условий для открытия это не обращение к индикатору?

единственный момент что если на H1 и реже проверять новый бар, а там индикатор действительно заснул, то будет пропуск, на новом баре будут данные прошлого, редко но встречается, решение забыть раз и навсегда newbar

 
lynxntech #:

разве проверка условий для открытия это не обращение к индикатору?

единственный момент что если на H1 и реже проверять новый бар, а там индикатор действительно заснул, то будет пропуск, на новом баре будут данные прошлого, редко но встречается, решение забыть раз и навсегда newbar

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

Т.е. опрашивать надо не реже, чем раз в час?

 
Aleksey Vyazmikin #:

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

Т.е. опрашивать надо не реже, чем раз в час?

нет, это просто примерно, у меня нет таких проблем, если индикатор(график) проспал и бар не обновился в таблице, то один тик пропустится, на втором/третьем точно сработает..., если использовать newbar, то пропуск будет уже до следующего newbar...

 
lynxntech #:

нет, это просто примерно, у меня нет таких проблем, если индикатор(график) проспал и бар не обновился в таблице, то один тик пропустится, на втором/третьем точно сработает..., если использовать newbar, то пропуск будет уже до следующего newbar...

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

Причина обращения: