объясняем ситуацию
в самом начале эксперта Вы поставили условие, которое разрешает эксперту отработать всего один раз за бар и именно когда этот бар только начал формироваться. это означает, что текущее значение Close равняется текущему значению Open (бар-то только что открылся!)
в Вашей ситуации надо анализировать не текущие значения, а предыдущие (со смещением 1)
в самом начале эксперта Вы поставили условие, которое разрешает эксперту отработать всего один раз за бар и именно когда этот бар только начал формироваться. это означает, что текущее значение Close равняется текущему значению Open (бар-то только что открылся!)
в Вашей ситуации надо анализировать не текущие значения, а предыдущие (со смещением 1)
Попутный вопрос
Простите, но мне, как человеку, ранее не писавшему эксперты кое-что всё-таки не понятно. Вы пишете: "в самом начале эксперта Вы поставили условие, которое разрешает эксперту отработать всего один раз за бар". Продублируйте пожалуйста это условие из приведённого мной кода.
И ещё один вопрос. В настоящее время передо мной стоит задача написания торговой системы на основе SAR. Как Вы понимаете, анализировать торговой системе предыдущий бар не имеет смысла, ибо она по определению работает "здесь и сейчас". И поэтому торговой системе необходимо анализировать именно текущий бар, а не предыдущий. Я, как человек новый в написания экспертов, может быть чего-то не понимаю - это нормально. Помогите мне пожалуйста разобраться с этим вопросом.
Я прекрасно понимаю, что за экспертами стоит большое будущее и я благнодарен Вам за их создание, но пока я не пойму, как они работают, я не смогу их использовать в своём трейдинге.
С уважением, Сергей.
Простите, но мне, как человеку, ранее не писавшему эксперты кое-что всё-таки не понятно. Вы пишете: "в самом начале эксперта Вы поставили условие, которое разрешает эксперту отработать всего один раз за бар". Продублируйте пожалуйста это условие из приведённого мной кода.
И ещё один вопрос. В настоящее время передо мной стоит задача написания торговой системы на основе SAR. Как Вы понимаете, анализировать торговой системе предыдущий бар не имеет смысла, ибо она по определению работает "здесь и сейчас". И поэтому торговой системе необходимо анализировать именно текущий бар, а не предыдущий. Я, как человек новый в написания экспертов, может быть чего-то не понимаю - это нормально. Помогите мне пожалуйста разобраться с этим вопросом.
Я прекрасно понимаю, что за экспертами стоит большое будущее и я благнодарен Вам за их создание, но пока я не пойму, как они работают, я не смогу их использовать в своём трейдинге.
С уважением, Сергей.
Вы использовали пример кода из "особенностей написания эксперта"
If prevtime = Time Then exit;
prevtime = Time;
этот фрагмент переводится на русский язык примерно следующим образом: "если время открытия текущего бара равно ранее запомненному времени открытия бара, то значит мы уже этот бар обрабатывали и выходим из программы. а если эти времена не равны, то сначала мы запомним время открытия текущего бара, а потом немного поработаем".
если Вы уберёте приведённый фрагмент из эксперта, то будете работать "здесь и сейчас"
If prevtime = Time Then exit;
prevtime = Time;
этот фрагмент переводится на русский язык примерно следующим образом: "если время открытия текущего бара равно ранее запомненному времени открытия бара, то значит мы уже этот бар обрабатывали и выходим из программы. а если эти времена не равны, то сначала мы запомним время открытия текущего бара, а потом немного поработаем".
если Вы уберёте приведённый фрагмент из эксперта, то будете работать "здесь и сейчас"
Спасибо за разъясниения, теперь всё работает как в аптеке :-)))
Попутный вопрос
В своём тестовом эксперте, после того, как я убрал блок
prevtime = Time Then exit;
prevtime = Time;
при запуске эксперта в в журнал выводилось несколько строк, соответствующих одному времени (бару).
В связи с этим я хотел бы спросить, как часто и при каких условиях выполняется код эксперта на одном и том же баре?
В своём тестовом эксперте, после того, как я убрал блок
prevtime = Time Then exit;
prevtime = Time;
при запуске эксперта в в журнал выводилось несколько строк, соответствующих одному времени (бару).
В связи с этим я хотел бы спросить, как часто и при каких условиях выполняется код эксперта на одном и том же баре?
эксперт запускается с приходом каждого ценового тика
как правило бар формируется на основе нескольких тиков. чем больше период, тем больше тиков. Volume показывет, сколько тиков было в пределах данного бара
как правило бар формируется на основе нескольких тиков. чем больше период, тем больше тиков. Volume показывет, сколько тиков было в пределах данного бара
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Здравствуйте !
В процессе написания собственного эксперта в MetatTrader 3.14 я натолкнулся на некоторое несоответсвие: так, при запуске моего эксперта, значения индикатороа iSAR( 0.02, 0.2, 0 ) и Close отличаются от значений этих параметров, отображаемых на графике, разумеется для одинаковых баров.
В качестве иллюстрации я хотел бы привести текст простейшего тестового эксперта, отображающего в журнале время текущего бара, а также SAR и Close для этого бара.
/*[[
Name := Close Test Expert
Author := Copyright © 2002, Company
Link := www.company.com/http://www.company.com/ /> Lots := 1.00
Stop Loss := 0
Take Profit := 0
Trailing Stop := 0
]]*/
Variable: prevtime(0), SARCurrent(0);
If prevtime = Time Then exit;
prevtime = Time;
SARCurrent = iSAR(0.02, 0.2, 0);
print(TimeToStr(Time), " SAR: ", SARCurrent , " Close:", Close);
Эксперт, запущенный на графике EURUSD,H4 вычисляет значение SAR, отличное от отображаемого на графике.
То же самое касается вычисления параметра Close: его значение отличается от отображемого значения на графике, в чём Вы
без труда можете убедиться сами, запустив данный тестовый эксперт.
При более тчательном анализе оказалось следующее: во время работы эксперта при вызове Close на самом деле вызывается значение Open.
Что же касается iSAR, то этот индикатор даёт неправильные значения на каждом первом баре при переломе тенденции - он как-бы продолжает старую кривую, в то время как индикатор SAR, отображаемый на графике, уже изменил своё положение (стал выше/ниже) относительно цены Close;
Будьте добры, проясните пожалуйста ситуацию.