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

 
Возник такой вопрос - что показывает iClose() в тестере для нулевого бара (самый правый бар на открытом графике тестера) более высокого таймфрейма? Если не ошибся то получается что бар еще не закрыт, а мы уже видим его цену закрытия, как если бы он уже был завершен. Проверял в режиме всех тиков. Это так?
 
Close[0] и iClose(Symbol(),Period(),0) - всегда показывают последнюю текущую цену (Bid)
 
FAQ:
Close[0] и iClose(Symbol(),Period(),0) - всегда показывают последнюю текущую цену (Bid)

Насколько я понимаю если указать "0" то тестер будет рассматривать самый последний бар на всей истории. В данном случае я рассматриваю правый бар на графике, но он не последний.

Я лучше сформулирую вопрос иначе - тестер открыт с периодом М5 и при помощи команд iClose/ iHigh/... моделируется работа с баром на периоде H1. Можно ли к примеру используя iHigh() увидеть как изменяется High нулевого смоделированного бара на периоде Н1 по мере прихода новых М5 баров в тестере?
Или при помощи iClose/ iHigh/... на нулевом баре мы в тестере всегда видим значения уже полностью сформировавшегося бара?

 
Да, есть в тестере такая дыра, по крайней мере была. По моему было исправление в каком то из новых билдов, надо проверять.
 
Как можно убрать среднюю линию в канале линейной регрессии. Какой строкой это прописать в эксперте?
 
FAQ:
Да, есть в тестере такая дыра, по крайней мере была. По моему было исправление в каком то из новых билдов, надо проверять.

Сейчас проверил в версии 509, но результат прежний.
В моем коде индикатора (запускается в пустом советнике в режиме визуализации) не видно ошибок? -

В комментах на экране видно что в момент когда появляется 1-й бар М5 нового Н1 бара iClose / iHigh / ... и т.д. уже знают чем все закончится для Н1, подсматривают будущее - хорошая идея для грааля на продажу ;)))

int start() {

   int Bars_Per_Chart                   = WindowBarsPerChart()   + 1;
   int First_Visible_Bar                  = WindowFirstVisibleBar();
   int Last_Bar_On_Right              = First_Visible_Bar - Bars_Per_Chart + 1;

   if( Last_Bar_On_Right<0 ) {
       Last_Bar_On_Right              = 0;
       Bars_Per_Chart                    = First_Visible_Bar + 1;
   }


      int          Shift_MTF_0           = iBarShift(MTF_Currency, MTF_TimeFrame, Time[Last_Bar_On_Right] );

      double    MTF_Close_0        = iClose(   MTF_Currency, MTF_TimeFrame, Shift_MTF_0 );
      double    MTF_Open_0         = iOpen(    MTF_Currency, MTF_TimeFrame, Shift_MTF_0 );
      double    MTF_High_0          = iHigh(    MTF_Currency, MTF_TimeFrame, Shift_MTF_0 );
      double    MTF_Low__0         = iLow(     MTF_Currency, MTF_TimeFrame, Shift_MTF_0 );
      datetime MTF_Time_0          = iTime(    MTF_Currency, MTF_TimeFrame, Shift_MTF_0 );

 . . . 
 
atztek:

Сейчас проверил в версии 509, но результат прежний.
В моем коде индикатора (запускается в пустом советнике в режиме визуализации) не видно ошибок? -

В комментах на экране видно что в момент когда появляется 1-й бар М5 нового Н1 бара iClose / iHigh / ... и т.д. уже знают чем все закончится для Н1, подсматривают будущее.







То есть, набрасываете индикатор на график в режиме визуализации?

Тогда все правильно. Индикатор берет последние известные данные 

 
Vinin:


То есть, набрасываете индикатор на график в режиме визуализации?

Тогда все правильно. Индикатор берет последние известные данные 


Да, у меня есть советник-оболочка, на нем проверяю работу индикатора на истории.
Видимо задачу удастся решить при помощи iHighest / iLowest для М5 учитывая время открытия/закрытия Н1.
 

подскажите пожалуйста, почему показания индикатора MACD, которые  вывожу на печать, вместо 6 знаком после запятой дает только 4...и соответственно 0,000190 там равно 0,000110  ??

пробовал нормализовывать NormalizeDouble(MACD,6) -результата никакого...все те же 4 знака... 

 
lottamer:

подскажите пожалуйста, почему показания индикатора MACD, которые  вывожу на печать, вместо 6 знаком после запятой дает только 4...и соответственно 0,000190 там равно 0,000110  ??

пробовал нормализовывать NormalizeDouble(MACD,6) -результата никакого...все те же 4 знака... 


Попробуйте использовать DoubleToStr