Отправлено: 14.07.14 18:23. Заголовок: Индикатор стохастик Ди Наполи
Здравствуйте, Scriptong. Помогите пожалуйста сделать стохастик Ди Наполи мультитаймфреймным, я всю голову поломал уже не могу ни как сделать код индюка прилагаю: Стохастик Ди Наполи Заранее благодарен!!!!
Отправлено: 23.07.14 22:01. Заголовок: tench72 пишет: Я по..
tench72 пишет:
цитата:
Я подставил индекс в код стохастика:
В этом коде Вы получили только два правильных значения: low и high. Все остальные - неправильные. Так, при расчете значения переменной Fast Вы использовали таймсерию, обращающуюся к текущему таймфрейму: Close. При работе с другим таймфреймом/графиком необходимо использовать функцию iClose. Ну и со значением буфера StoBuffer Вы вновь допускаете ошибку - оперируете индексом текущего таймфрейма при расчете значения. Хотя сохранять значение, конечно же, нужно по индексу текущего таймфрейма. Разберитесь с тем, в каких местах нужно использовать индекс текущего таймфрейма, а в каких - другого. Так, при расчетах всегда нужно использовать индекс бара другого ТФ, а при визуализации значения (сохранении результата в буфер индикатора) используется индекс бара текущего ТФ.
Ну и со значением буфера StoBuffer Вы вновь допускаете ошибку - оперируете индексом текущего таймфрейма при расчете значения. Хотя сохранять значение, конечно же, нужно по индексу текущего таймфрейма. Разберитесь с тем, в каких местах нужно использовать индекс текущего таймфрейма, а в каких - другого.
я изменил код: while(i>=0) { int in= iBarShift(NULL, tf, Time); low=Low[iLowest(NULL,tf,MODE_LOW,FastK,in)]; //минимум
Отправлено: 28.07.14 20:03. Заголовок: tench72 пишет: все ..
tench72 пишет:
цитата:
все равно ни чего не изменилось на другом таймфрейме индикатор и исчезает
Странно. У меня не исчезает. Просто показывает неправильные значения. Ну да ладно, с этим разберемся потом, когда код доведем до нужной кондиции.
Итак, Вы уже сделали определенные успехи - использовали функцию iClose, т. к. необходимо было получить цену закрытия бара другого таймфрейма. Но при этом почему-то забыли, что при расчете минимума и максимума тоже нужно оперировать данными другого таймфрейма. Low и High - это массивы таймсерии, при помощи которых можно получить минимум и максимум указанного бара, но на текущем таймфрейме. Если же необходимо получить максимум и минимум бара другого таймфрейма, то следует использовать функции iLow и iHigh.
Когда исправите эту ошибку, получите следующий вид индикатора на М5 при использовании данных М15:
Правда, и этот вариант не является полностью правильным. Попробуйте по виду показаний определить, как проявляется следующая ошибка. Путь ее устранения я подскажу.
Отправлено: 28.07.14 20:38. Заголовок: а как же функции iLo..
а как же функции iLowest(NULL,tf,MODE_LOW,FastK,in) и iHighest(NULL,tf,MODE_HIGH,FastK,in) они вообще не нужны???? Ни чего не пойму... как использовать функции iLow и iHigh, совместно с ними???!!!!
Отправлено: 28.07.14 21:17. Заголовок: tench72 пишет: а ка..
tench72 пишет:
цитата:
а как же функции iLowest(NULL,tf,MODE_LOW,FastK,in) и iHighest(NULL,tf,MODE_HIGH,FastK,in) они вообще не нужны????
Нужны. Функция iLowest определяет индекс минимального бара на заданном интервале. Нам же требуется получить значение минимума бара. Для текущего таймфрейма это делается при помощи обращения к массиву-таймсерии Low, а для таймфрейма, отличного от текущего, при помощи функции iLow. Аналогично с iHighest, High и iHigh.
Для лучшего понимания прочтите документацию по этим функциям. По таймсериям документация здесь.
Добрый вечер Scriptong. Спасибо за консультации, но честное слово, я не иогу понять что делать... В принципе я получил три стохастика Ди Наполи по разным тайм фреймам, я воспользовался функцией iCustom() ввел функции iLowest и iHighest, их значения ввел в функцию iCustom() с соответствующим таймфреймом. Вроде как получилось, правда ступенчатые они какие то но деваться не куда, что получилось то получилось. Еще раз спасибо!
Спасибо за консультации, но честное слово, я не иогу понять что делать...
Ну как что - разбираться, если хочется создавать программы лично Здесь можете задавать любые глупые вопросы по теме MQL4/MQL5. Никто их тут тролить не будет.
tench72 пишет:
цитата:
В принципе я получил три стохастика Ди Наполи по разным тайм фреймам, я воспользовался функцией iCustom() ввел функции iLowest и iHighest
При чем тут функция iCustom?
tench72 пишет:
цитата:
Вроде как получилось, правда ступенчатые они какие то
На графике М5 показания с М15 обязательно будут ступеньками, т. к. каждый бар М15 - это 3 бара М5. То есть три подряд бара М5 будут отображать одинаковые показания.
Покажите тот код, который у Вас получился. Скорее всего, там еще есть несколько неучтенных моментов. Я то уже сделал для проверки "правильный вариант", в котором все подводные камни обнаружены.
Отправлено: 04.08.14 16:53. Заголовок: tench72 пишет: Код ..
tench72 пишет:
цитата:
Код получился таким:
Вас занесло не в ту степь Использование функции iCustom в данном случае не нужно. Это какой-то другой индикатор, который мы с Вами не обсуждали. Предлагаю вернуться к прошлому обсуждению. Итак, у Вас должно было получиться что-то типа такого:
цитата:
while (index >= 0) { int in = iBarShift(NULL, tf, Time[index]);
Отправлено: 06.08.14 19:56. Заголовок: :sm33: Ну вот те на..
Ну вот те на.... А я так обрадовался Ноя сравнивал значения перегибов стохастиков мультитаймфрейного наМ15 установленного на М5, и обыкновенного на М15, они вроде как совпадают
Ноя сравнивал значения перегибов стохастиков мультитаймфрейного наМ15 установленного на М5, и обыкновенного на М15, они вроде как совпадают
Если брать первую свечу М5, то, конечно, совпадают. Если брать следующие две - не совпадут. Также в динамике будет идти накопление ошибки расчетов тем большее, чем дольше работает индикатор без перезапуска.
Но решение есть. Попробуйте подумать именно в этом направлении.
Здравствуйте Scriptong, я бы с удовольствием подумал в направлении в котором Вы указали... Но увы я не программист, и даже не подозреваю в каком направлении думать, мой опыт программирования ограничен начальными курсоми Бейсика и Си в даааалеком 1995 году, когда я заканчивал универ. В учебнике MQL4 очень скудно описано про функции, да и мОзги уже не те что раньше
Отправлено: 11.08.14 14:46. Заголовок: tench72 пишет: Но у..
tench72 пишет:
цитата:
Но увы я не программист, и даже не подозреваю в каком направлении думать, мой опыт программирования ограничен начальными курсоми Бейсика и Си в даааалеком 1995 году, когда я заканчивал универ. В учебнике MQL4 очень скудно описано про функции, да и мОзги уже не те что раньше
Вы же вроде изъявили желание учить MQL4. Из этих соображений я и даю вводные. Если же намерений учить язык нет, то, конечно, все эти наши разговоры не имеют никакой перспективы. Итак, продолжаю, исходя из предположения, что учиться Вы, все-таки, намерены.
Простой пример, для которого не нужно быть программистом. Достаточно знать математику на уровне 5-ого класса средней школы. Есть линия.
При текущем масштабе эта линия кажется монотонно восходящей. Но стоит лишь увеличить масштаб, как мы увидим, что линия состоит из ступенек.
Так и в рассматриваемом индикаторе. Мы берем данные с таймфрейма М15. Это "текущий масштаб линии". Отображаем мы эти данные на таймфрейме М5 - это "увеличенный масштаб". Вопрос: что мы должны увидеть на графике М5?
Все даты в формате GMT
2 час. Хитов сегодня: 2
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет