Как отключить ведение логов? - страница 2

 
awkozlov:

В общем импортировал я это ядро в ядро kernell32.dll в советник

оО.... матрёшка?

 

А может права для юзера на запись в папку логов запретить?

Я не пробовал с МТ5...

 
Roffild:

А может права для юзера на запись в папку логов запретить?

Я не пробовал с МТ5...

Вот так сделал:

1. Делаем пустой файл readonly.log

2. Ставим ему атрибут - Только чтение.

3. Терминал запускаем батником

@Echo off
xcopy "R:\readonly.log" "R:\logs\" /Y /K
ren "R:\logs\readonly.log" "%date:~-4,4%%date:~-7,2%%date:~-11,2%.log" 
start R:\terminal.exe

Работает.

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

 
awkozlov:

У меня слишком большой и частый поток записи на диск - обмен данными между индюками и советником с постоянной реинициализацией окна с индикаторами (перебор символов и таймфремов).

Видимо из-за этого и зависания (в меседже для windows указано ядро kernell32.dll)

 

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

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

 

Что там за такие ужасные индикаторы, что их невозможно написать в виде класса ?  

 
Laryx:

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

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

 

Что там за такие ужасные индикаторы, что их невозможно написать в виде класса ?  

Индикаторы на МТ4, не паттерные, а буфферные 9 штук))) и в каждом от 3 до 7 буфферов. + 2 внешних типа iCustom

Неужели их можно всех в один класс?

 
awkozlov:

Индикаторы на МТ4, не паттерные, а буфферные 9 штук))) и в каждом от 3 до 7 буфферов. + 2 внешних типа iCustom

Неужели их можно всех в один класс?

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

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

В результате - во-первых, весь обмен данных происходит внутри советника, а во-вторых - объем обрабатываемых данных очень невелик, и гораздо меньше, чем если бы потребовалось с индикаторами.  

 
Laryx:

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

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

В результате - во-первых, весь обмен данных происходит внутри советника, а во-вторых - объем обрабатываемых данных очень невелик, и гораздо меньше, чем если бы потребовалось с индикаторами.  

Круто! Но такую организацию работы советника я уже буду заказывать, если тесты пройдут на ура. А пока, если будет виснуть, удалю историю, что необходимо и достаточно должно снизить нагрузку на вычисления.
 

awkozlov:

2. Ставим ему атрибут - Только чтение.


А про права доступа в NTFS не слыхали?

 
awkozlov:

Вот так сделал:

1. Делаем пустой файл readonly.log

2. Ставим ему атрибут - Только чтение.

3. Терминал запускаем батником

Работает.

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

Вы что, считаете, что загрузка компьютера уменьшится, если терминал будет натыкаться на препятствия поперёк его стандартных действий?
 
Roffild:


А про права доступа в NTFS не слыхали?

Тоже работает. И так даже надежней.


Q: Как настроить отображение вкладки Безопасность в свойствах файла/папки

1. Нажмите кнопку Пуск и выберите пункт Мой компьютер.
2. В меню Сервис выберите команду Свойства папки и перейдите на вкладку Вид.
3. В списке Дополнительные параметры снимите флажок Использовать простой общий доступ к файлам (рекомендуется).
Причина обращения: