Оригинальное прочтенение функций iHigh() и iClose() . Читайте справку.
всмысле "Оригинальное прочтенение" - вы хотите сказать что эти объекты встроенного языка несовместимы с другими однотипными объектами в контексте одного модуля? их что в отдельной библиотеке объявлять?
Вы думаете, что выражение
iHigh(Symbol(),Period(),CountLevel)
возвращает Вам максимальное значение High на всей истории, на самом деле оно должно вернуть High самого левого бара на графике.
Вот что у Вас написано:
Индюк призван просто рисовать на графика отношение текущей цены к High за всю историю графика
Вы думаете, что выражение
iHigh(Symbol(),Period(),CountLevel)
возвращает Вам максимальное значение High на всей истории, на самом деле оно должно вернуть High самого левого бара на графике.
Вот что у Вас написано:
Индюк призван просто рисовать на графика отношение текущей цены к High за всю историю графика
Да тут все просто на самом деле.. :) Не знаю что он там должен показывать, но нашел явную ошибку:
for(i=0; i<limit; i++)
{
ExtMapBuffer1[i]= ND(iClose(Symbol(),Period(),0))/ND(iHigh(Symbol(),Period(),CountLevel)) ;
}
а должно быть..
for(i=0; i<limit; i++)
{
ExtMapBuffer1[i]= ND(iClose(Symbol(),Period(),i))/ND(iHigh(Symbol(),Period(),CountLevel)) ;
}
.. после этого он что-то показывает.. :)
Спасибо Registr это я как раз и упустил :]
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
#property copyright "Other price" #property indicator_chart_window #property indicator_buffers 1 #property indicator_color1 Red double ExtMapBuffer1[]; int init() { SetIndexStyle(0,DRAW_LINE); SetIndexBuffer(0,ExtMapBuffer1); return(0); } int deinit(){return(0);} int start() { int CountLevel=Bars-1, i,j,limit,counted_bars=IndicatorCounted(); if(counted_bars<0) return(-1); if(counted_bars>0) counted_bars--; limit=Bars-counted_bars; for(i=0; i<limit; i++) { ExtMapBuffer1[i]= ND(iClose(Symbol(),Period(),0))/ND(iHigh(Symbol(),Period(),CountLevel)) ; } return(0); } double ND(double var){return(NormalizeDouble(var,Digits+3));}