Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 753

 
AlexeyVik:

Войдёшь в этот блок только один раз в сутки.

Что-то я сомневаюсь что и в тестере это будет правильно работать.

Именно такая задумка, для ускорения кода выполнять некоторые функции один раз в сутки. Например в этом блоке можно проверять не наступила ли зима, не пятница ли сегодня, не настал ли день перевода часов. Я полагаю что нет никакого смысла выполнять эти проверки каждый тик, вполне достаточно проверять каждые сутки на первом тике нового дневного бара. Код в тестере работает правильно, и не вижу никакой причины, почему он может не работать. За совет благодарю, посмотрю что там со структурами..
 
tuner:
Именно такая задумка, для ускорения кода выполнять некоторые функции один раз в сутки. Например в этом блоке можно проверять не наступила ли зима, не пятница ли сегодня, не настал ли день перевода часов. Я полагаю что нет никакого смысла выполнять эти проверки каждый тик, вполне достаточно проверять каждые сутки на первом тике нового дневного бара. Код в тестере работает правильно, и не вижу никакой причины, почему он может не работать. За совет благодарю, посмотрю что там со структурами..
Я понял твою задумку, но вход-то будет в начале дня, а проверка на время только вечером. Или недостаточно кода для понимания что происходит. Я судил только по имеющемуся кусочку кода.
 
AlexeyVik:
Я понял твою задумку, но вход-то будет в начале дня, а проверка на время только вечером. Или недостаточно кода для понимания что происходит. Я судил только по имеющемуся кусочку кода.

Проверка на время происходит каждый тик

 
tuner:

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

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


Проверьте значение, которое получаете вот здесь:  FinishInFriday=StringToTime("23:59")-15*60; что-то подсказывает что будет оно меньше, чем то, которое Вы получите вот здесь: cur=TimeCurrent()
 
VladislavVG:
Проверьте значение, которое получаете вот здесь:  FinishInFriday=StringToTime("23:59")-15*60; что-то подсказывает что будет оно меньше, чем то, которое Вы получите вот здесь: cur=TimeCurrent()

Да, в том и проблема, с приходом первого пятничного тика выполняется функция StringToTime("23:59"), которая почему то возвращает время со вчерашней датой, а не с датой нового тика. Ума не приложу как так может быть. Ведь в коде однозначно прописано что если появился новый дневной бар (тик, имеющий дату не такую как на прошлом тике), который является пятницей, то выполнить функцию StringToTime. И несмотря на это, функция возвращает 23-е число, то есть четверг(!). Повторюсь, в тестере не наблюдал такого глюка. Но сегодня вижу что советник и на демо и на реале не торгует, а в логах сообщения, из которых следует что функция возвратила время не с текущей датой, а со вчерашней:

0 05:59:47.731 Scalper GBPAUDpt,M1: Finish In Friday = 2014.10.23 23:44:00

0 03:00:11.999 Scalper EURUSD,M1: Finish In Friday = 2014.10.23 23:44:00

PS а перестали советники торговать ровно  начиная с первого тика пятницы, то есть именно после того как исполнилась функция StringToTime

 
tuner:


Я бы сказал, что должно быть как-то так в данном случае:

if(TimeDayOfWeek(cur)==5)
      if((TimeHour(cur)>22) && (TimeMinute(cur)> 44))
         return;
 
Здравствуйте, уважаемые участники форума! В первую очередь этот пост обращен к людям заинтересованным в развитии их систем анализа, а если конкретней то о технических индикаторах. Я более менее знаю Signal Processing Toolbox на базе платформы MATLAB и имею представление о спектральном анализе и дискретной фильтрации временных рядов. Меня интересуют сложные БИХ фильтры, таких как Эллиптический, Чебышева. Я синтезировал коэффициенты фильтра Чебышева через MATLAB, то есть знаменатель и числитель фильтра, (коэффициенты приложены внизу). Теперь главное: как реализовать в индикаторе с помощью языка MQL4 фильтр Чебышева с заданными коэффициентами? Помогите пожалуйста. Выслушаю конструктивную критику, замечания. В фильтре, коэффициенты которого представлены, 8 секций и данный фильтр имеет порядок 16. На скрине для сравнения простая MA - красным, КИХ фильтр Чебышева - зеленым, исходный временной ряд - синим, это M60 NZDUSD.Скриншот
Файлы:
 
nikitasa1997:
Здравствуйте, уважаемые участники форума! В первую очередь этот пост обращен к людям заинтересованным в развитии их систем анализа, а если конкретней то о технических индикаторах. Я более менее знаю Signal Processing Toolbox на базе платформы MATLAB и имею представление о спектральном анализе и дискретной фильтрации временных рядов. Меня интересуют сложные БИХ фильтры, таких как Эллиптический, Чебышева. Я синтезировал коэффициенты фильтра Чебышева через MATLAB, то есть знаменатель и числитель фильтра, (коэффициенты приложены внизу). Теперь главное: как реализовать в индикаторе с помощью языка MQL4 фильтр Чебышева с заданными коэффициентами? Помогите пожалуйста. Выслушаю конструктивную критику, замечания. В фильтре, коэффициенты которого представлены, 8 секций и данный фильтр имеет порядок 16. На скрине для сравнения простая MA - красным, КИХ фильтр Чебышева - зеленым, исходный временной ряд - синим, это M60 NZDUSD.

сравнивать, так сравнивать... По моему МА-шка работает точнее (сравниваем - при какой цене на самом деле поступил сигнал (крестики)):

По Вашему фильтру сигнал будет наоборот, тогда можно применить...

 
_new-rena:

сравнивать, так сравнивать... По моему МА-шка работает точнее (сравниваем - при какой цене на самом деле поступил сигнал (крестики)):

По Вашему фильтру сигнал будет наоборот, тогда можно применить...

Ну, если наоборот будет больше 75% верных входов, то можно бы и применить, остаётся только выходы найти ;)


Хотя там большинство входов на серединке, чего можно добиться и на обычных МА, без всяких выкрутасов.

 
evillive:

Ну, если наоборот будет больше 75% верных входов, то можно бы и применить, остаётся только выходы найти ;)
Хотя там большинство входов на серединке, чего можно добиться и на обычных МА, без всяких выкрутасов.

и я о том же.
Причина обращения: