Скорее всего, проблема у меня :) , но все-таки, вдруг кто увидит, свежим глазом. Не отображается корректно Anchored Momentum:
- Индикаторы: MTF_Stochastic_RSI
- Api для borland c Alpari, проблема!
- Перекрытие Comment от разных индикаторов
А вы уверены что это Anchored Momentum?
Формул не помню, но по смыслу у вас совсем другое.
Рисовать чтото должна, но чтото бессмысленное (ИМХО).
Формул не помню, но по смыслу у вас совсем другое.
Рисовать чтото должна, но чтото бессмысленное (ИМХО).
Ну хорошо, это - вольная интерпретация на тему АМ :) Там (http://konkop.narod.ru/) тема АМ несколько развита, ну и я попытался. Вопрос не в правильности индикатора, а в том, почему он не отображается.
Скорее всего, проблема у меня :) , но все-таки, вдруг кто увидит, свежим глазом. Не отображается корректно Anchored Momentum:
... #property indicator_separate_window #property indicator_buffers 1 #property indicator_color1 DodgerBlue ... double arrBuffer[]; double arrBuffer1[]; ... SetIndexBuffer(0, arrBuffer); ... arrBuffer[nPos] = //dEma - dSma; 100.0 * (dEma / dSma - 1); ...
а в каком месте ты рассчитываешь значение arrBuffer? (я другого не нашел) Оно у тебя ни где не посчитано, потому и не отображается.
Посмотрите логи эксперта у себя, происходит деление на 0 и эксперт сваливается.
Вот так работает
Вот так работает
if (dSma != 0) arrBuffer[nPos] = 100.0 * (dEma / dSma - 1);
Замени
int nCountedBars = IndicatorCounted();
на
int nCountedBars = MathMax(IndicatorCounted(),nMa+2);
Спасибо всем!
Всвязи с последним постом (int nCountedBars = MathMax(IndicatorCounted(),nMa+2);)
Оно работает, но я не совсем понял логику. То есть, для того, чтобы получить SMA, мне нужно пересчитывать все входящие в нее бары? Если так, то это проблема с логикой MQL - по умолчанию, "интуитивно" - так быть не должно. По крайней мере, моя интуиция это не просекла :) - я был так уверен, что SMA от цены никогда не будет нулем...
Всвязи с последним постом (int nCountedBars = MathMax(IndicatorCounted(),nMa+2);)
Оно работает, но я не совсем понял логику. То есть, для того, чтобы получить SMA, мне нужно пересчитывать все входящие в нее бары? Если так, то это проблема с логикой MQL - по умолчанию, "интуитивно" - так быть не должно. По крайней мере, моя интуиция это не просекла :) - я был так уверен, что SMA от цены никогда не будет нулем...
То есть, для того, чтобы получить SMA, мне нужно пересчитывать все входящие в нее бары? Если так, то это проблема с логикой MQL - по умолчанию, "интуитивно" - так быть не должно. По крайней мере, моя интуиция это не просекла :) - я был так уверен, что SMA от цены никогда не будет нулем...
Моя логика подсказывает, что МТ4 плохо считает среднее SMA за N периодов, для первых N-1 баров, оно понятно, что данные не полные, но вот в качестве результата - 0, это имхо баг.
Моя логика подсказывает, что МТ4 плохо считает среднее SMA за N периодов, для первых N-1 баров, оно понятно, что данные не полные, но вот в качестве результата - 0, это имхо баг.
это не баг. для первх N-1 баров среднее(кроме экспоненциальной) вообще не считается.
В вышеприведенном коде, я использую SetIndexDrawBegin(0, nMa); Это должно решить проблему с неотображаемыми N-1 барами - они просто не рисуются. Да и нули возникали (до того, как я скорректировал код предложенным Евгением образом), при рассчете последних баров. Странно все это. Фишка предложенного Евгением подхода - если число баров, подлежащих отрисовке меньше, чем период МА, то увеличить это число принудительно. При этом, если этого не сделать, то ошибки были не только на первых барах. А на самом деле, SMA должно считаться корректно, независимо от того, сколько баров мы обновляем. ИМХО.
ошибки были не только на первых барах.
Я проводил протоколирование рассчитываемых баров, при возникновении деления на 0, код переставал выполнятся, а при следующем запуске IndicatorCounted() говорил, что все бары рассчитаны, несмотря на то, что расчет прервался буквально на первых барах.

Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь