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

 
nikelodeon:
Ну а вы в курсе что когда рисуется линия, указывается начальное время и конечное ну и соответственно цена. А для буфера необходимо организовывать цикл по всем барам. Вы бы сначала код глянули, а потом советы давали. А то толку от Ваших советов 0......

Вот как раз цену и надо сувать в буфер.

А цикл нужен исключительно для того, чтобы показания были для всех баров. Точнее для красоты, а работают все, как правило с показаниями последних двух баров, 0 и 1.

Если в индикаторе не предусмотрена обработка всех баров, видимо она и не нужна.

Мне так-же как и многим лениво колупать этот код, а может даже ленивей чем всем вместе взятым, а ты мне советуешь посмотреть код... оно мне надо? Просил в двух словах. Каков вопрос таков и ответ. А если от моих советов толку 0, значит не тому советую.

 
AlexeyVik:

Вот как раз цену и надо сувать в буфер.

А цикл нужен исключительно для того, чтобы показания были для всех баров. Точнее для красоты, а работают все, как правило с показаниями последних двух баров, 0 и 1.

Если в индикаторе не предусмотрена обработка всех баров, видимо она и не нужна.

Мне так-же как и многим лениво колупать этот код, а может даже ленивей чем всем вместе взятым, а ты мне советуешь посмотреть код... оно мне надо? Просил в двух словах. Каков вопрос таков и ответ. А если от моих советов толку 0, значит не тому советую.

Действительно не тому, Я хоть и программирую так себе, но всё таки пишу код, каким бы кривым он не был. И сама суть вопроса заключается в том. КАК организовать цикл для буфера, чтобы отображались уровни опционов на истории. Что бы можно было потом поработать с этой историей, проверить гипотезу и сохранить данные. Нужно организовать грамотный цикл. Тут я думаю задачка и становится интересной...... Но вот идеи в голову не идут совсем.... каким способом это сделать. Чувствую нужно привязываться к датам и как то от них плясать. Но тут вылазит проблема с тайм фреймом. Вообщем задачка оказывается та ещё.... Хотелось бы услышать мнение по подробней. А то что в буфер нужно записывать цену!!!! Ну не настолько уж я тупой, поверь, чтоб этого не понимать.....

 
Думаю нужно ждать начала недели, глядишь профи вернутся с дачь и начнут подсказывать.....
 
nikelodeon:

Действительно не тому, Я хоть и программирую так себе, но всё таки пишу код, каким бы кривым он не был. И сама суть вопроса заключается в том. КАК организовать цикл для буфера, чтобы отображались уровни опционов на истории. Что бы можно было потом поработать с этой историей, проверить гипотезу и сохранить данные. Нужно организовать грамотный цикл. Тут я думаю задачка и становится интересной...... Но вот идеи в голову не идут совсем.... каким способом это сделать. Чувствую нужно привязываться к датам и как то от них плясать. Но тут вылазит проблема с тайм фреймом. Вообщем задачка оказывается та ещё.... Хотелось бы услышать мнение по подробней. А то что в буфер нужно записывать цену!!!! Ну не настолько уж я тупой, поверь, чтоб этого не понимать.....

 

Так вот он, весь цикл на месте и организован правильно и буферы заполняются.

 for(i=limit; i>=0; i--){  
      if ((Close[i+5]>Level1)&&(Open[i+5]>Level1)&&(Close[i]>Level1)&&(Open[i]>Level1)&&(Close[i+1]>Level1)&&(Open[i+1]>Level1)&&(Close[i+2]>Level1)&&(Open[i+2]>Level1)&&(Close[i+3]>Level1)&&(Open[i+3]>Level1)&&(Close[i+4]>Level1)&&(Open[i+4]>Level1)) qLevel1=Level1+EnterUP;  
      if ((Close[i+5]<Level1)&&(Open[i+5]<Level1)&&(Close[i]<Level1)&&(Open[i]<Level1)&&(Close[i+1]<Level1)&&(Open[i+1]<Level1)&&(Close[i+2]<Level1)&&(Open[i+2]<Level1)&&(Close[i+3]<Level1)&&(Open[i+3]<Level1)&&(Close[i+4]<Level1)&&(Open[i+4]<Level1)) qLevel1=Level1-EnterDw;  
      if ((Close[i+5]>Level2)&&(Open[i+5]>Level2)&&(Close[i]>Level2)&&(Open[i]>Level2)&&(Close[i+1]>Level2)&&(Open[i+1]>Level2)&&(Close[i+2]>Level2)&&(Open[i+2]>Level2)&&(Close[i+3]>Level2)&&(Open[i+3]>Level2)&&(Close[i+4]>Level2)&&(Open[i+4]>Level2)) qLevel2=Level2+EnterUP;  
      if ((Close[i+5]<Level2)&&(Open[i+5]<Level2)&&(Close[i]<Level2)&&(Open[i]<Level2)&&(Close[i+1]<Level2)&&(Open[i+1]<Level2)&&(Close[i+2]<Level2)&&(Open[i+2]<Level2)&&(Close[i+3]<Level2)&&(Open[i+3]<Level2)&&(Close[i+4]<Level2)&&(Open[i+4]<Level2)) qLevel2=Level2-EnterDw;  
      if ((Close[i+5]>Level3)&&(Open[i+5]>Level3)&&(Close[i]>Level3)&&(Open[i]>Level3)&&(Close[i+1]>Level3)&&(Open[i+1]>Level3)&&(Close[i+2]>Level3)&&(Open[i+2]>Level3)&&(Close[i+3]>Level3)&&(Open[i+3]>Level3)&&(Close[i+4]>Level3)&&(Open[i+4]>Level3)) qLevel3=Level3+EnterUP;  
      if ((Close[i+5]<Level3)&&(Open[i+5]<Level3)&&(Close[i]<Level3)&&(Open[i]<Level3)&&(Close[i+1]<Level3)&&(Open[i+1]<Level3)&&(Close[i+2]<Level3)&&(Open[i+2]<Level3)&&(Close[i+3]<Level3)&&(Open[i+3]<Level3)&&(Close[i+4]<Level3)&&(Open[i+4]<Level3)) qLevel3=Level3-EnterDw;  
      if ((Close[i+5]>Level4)&&(Open[i+5]>Level4)&&(Close[i]>Level4)&&(Open[i]>Level4)&&(Close[i+1]>Level4)&&(Open[i+1]>Level4)&&(Close[i+2]>Level4)&&(Open[i+2]>Level4)&&(Close[i+3]>Level4)&&(Open[i+3]>Level4)&&(Close[i+4]>Level4)&&(Open[i+4]>Level4)) qLevel4=Level4+EnterUP;  
      if ((Close[i+5]<Level4)&&(Open[i+5]<Level4)&&(Close[i]<Level4)&&(Open[i]<Level4)&&(Close[i+1]<Level4)&&(Open[i+1]<Level4)&&(Close[i+2]<Level4)&&(Open[i+2]<Level4)&&(Close[i+3]<Level4)&&(Open[i+3]<Level4)&&(Close[i+4]<Level4)&&(Open[i+4]<Level4)) qLevel4=Level4-EnterDw;  
      if ((Close[i+5]>Level5)&&(Open[i+5]>Level5)&&(Close[i]>Level5)&&(Open[i]>Level5)&&(Close[i+1]>Level5)&&(Open[i+1]>Level5)&&(Close[i+2]>Level5)&&(Open[i+2]>Level5)&&(Close[i+3]>Level5)&&(Open[i+3]>Level5)&&(Close[i+4]>Level5)&&(Open[i+4]>Level5)) qLevel5=Level5+EnterUP;  
      if ((Close[i+5]<Level5)&&(Open[i+5]<Level5)&&(Close[i]<Level5)&&(Open[i]<Level5)&&(Close[i+1]<Level5)&&(Open[i+1]<Level5)&&(Close[i+2]<Level5)&&(Open[i+2]<Level5)&&(Close[i+3]<Level5)&&(Open[i+3]<Level5)&&(Close[i+4]<Level5)&&(Open[i+4]<Level5)) qLevel5=Level5-EnterDw;  
      if ((Close[i+5]>Level6)&&(Open[i+5]>Level6)&&(Close[i]>Level6)&&(Open[i]>Level6)&&(Close[i+1]>Level6)&&(Open[i+1]>Level6)&&(Close[i+2]>Level6)&&(Open[i+2]>Level6)&&(Close[i+3]>Level6)&&(Open[i+3]>Level6)&&(Close[i+4]>Level6)&&(Open[i+4]>Level6)) qLevel6=Level6+EnterUP;  
      if ((Close[i+5]<Level6)&&(Open[i+5]<Level6)&&(Close[i]<Level6)&&(Open[i]<Level6)&&(Close[i+1]<Level6)&&(Open[i+1]<Level6)&&(Close[i+2]<Level6)&&(Open[i+2]<Level6)&&(Close[i+3]<Level6)&&(Open[i+3]<Level6)&&(Close[i+4]<Level6)&&(Open[i+4]<Level6)) qLevel6=Level6-EnterDw;  
      if ((Close[i+5]>Level7)&&(Open[i+5]>Level7)&&(Close[i]>Level7)&&(Open[i]>Level7)&&(Close[i+1]>Level7)&&(Open[i+1]>Level7)&&(Close[i+2]>Level7)&&(Open[i+2]>Level7)&&(Close[i+3]>Level7)&&(Open[i+3]>Level7)&&(Close[i+4]>Level7)&&(Open[i+4]>Level7)) qLevel7=Level7+EnterUP;  
      if ((Close[i+5]<Level7)&&(Open[i+5]<Level7)&&(Close[i]<Level7)&&(Open[i]<Level7)&&(Close[i+1]<Level7)&&(Open[i+1]<Level7)&&(Close[i+2]<Level7)&&(Open[i+2]<Level7)&&(Close[i+3]<Level7)&&(Open[i+3]<Level7)&&(Close[i+4]<Level7)&&(Open[i+4]<Level7)) qLevel7=Level7-EnterDw;  
      if ((Close[i+5]>Level8)&&(Open[i+5]>Level8)&&(Close[i]>Level8)&&(Open[i]>Level8)&&(Close[i+1]>Level8)&&(Open[i+1]>Level8)&&(Close[i+2]>Level8)&&(Open[i+2]>Level8)&&(Close[i+3]>Level8)&&(Open[i+3]>Level8)&&(Close[i+4]>Level8)&&(Open[i+4]>Level8)) qLevel8=Level8+EnterUP;  
      if ((Close[i+5]<Level8)&&(Open[i+5]<Level8)&&(Close[i]<Level8)&&(Open[i]<Level8)&&(Close[i+1]<Level8)&&(Open[i+1]<Level8)&&(Close[i+2]<Level8)&&(Open[i+2]<Level8)&&(Close[i+3]<Level8)&&(Open[i+3]<Level8)&&(Close[i+4]<Level8)&&(Open[i+4]<Level8)) qLevel8=Level8-EnterDw;  
      if ((Close[i+5]>Level9)&&(Open[i+5]>Level9)&&(Close[i]>Level9)&&(Open[i]>Level9)&&(Close[i+1]>Level9)&&(Open[i+1]>Level9)&&(Close[i+2]>Level9)&&(Open[i+2]>Level9)&&(Close[i+3]>Level9)&&(Open[i+3]>Level9)&&(Close[i+4]>Level9)&&(Open[i+4]>Level9)) qLevel9=Level9+EnterUP;  
      if ((Close[i+5]<Level9)&&(Open[i+5]<Level9)&&(Close[i]<Level9)&&(Open[i]<Level9)&&(Close[i+1]<Level9)&&(Open[i+1]<Level9)&&(Close[i+2]<Level9)&&(Open[i+2]<Level9)&&(Close[i+3]<Level9)&&(Open[i+3]<Level9)&&(Close[i+4]<Level9)&&(Open[i+4]<Level9)) qLevel9=Level9-EnterDw;  
      if ((Close[i+5]>Level10)&&(Open[i+5]>Level10)&&(Close[i]>Level10)&&(Open[i]>Level10)&&(Close[i+1]>Level10)&&(Open[i+1]>Level10)&&(Close[i+2]>Level10)&&(Open[i+2]>Level10)&&(Close[i+3]>Level10)&&(Open[i+3]>Level10)&&(Close[i+4]>Level10)&&(Open[i+4]>Level10)) qLevel10=Level10+EnterUP;  
      if ((Close[i+5]<Level10)&&(Open[i+5]<Level10)&&(Close[i]<Level10)&&(Open[i]<Level10)&&(Close[i+1]<Level10)&&(Open[i+1]<Level10)&&(Close[i+2]<Level10)&&(Open[i+2]<Level10)&&(Close[i+3]<Level10)&&(Open[i+3]<Level10)&&(Close[i+4]<Level10)&&(Open[i+4]<Level10)) qLevel10=Level10-EnterDw;  
      
Buffer1[i]=qLevel1;      
Buffer2[i]=qLevel2;      
Buffer3[i]=qLevel3;      
Buffer4[i]=qLevel4;      
Buffer5[i]=qLevel5;      
Buffer6[i]=qLevel6;      
Buffer7[i]=qLevel7;      
Buffer8[i]=qLevel8;      
Buffer9[i]=qLevel9;           
Buffer10[i]=qLevel10;  
//Buffer11[i]=LevelsVerticalShift;
 }

Но к этому индикатору должен быть какой-то файл. Что в нём должно быть не известно.

 
nikelodeon:

Сохраняйте значения Трендовых линий (горизонтальных отрезков) в Терминальные переменные, которые для каждой линии могут принимать вид элементов массива (если Вам захочется их считывать в цикле): {Line[0][0], Line[0][1], Line[0][2]..},   {Line[1][0], Line[1][1], Line[1][2]..} и т.п. Еще одна Терм.переменная "Status 0/1" понадобится для того чтобы указать другому индикатору/советнику когда необходимо считать параметры новой линии, после чего вернуть "Status" в исходное положение. Если линии считываются не все сразу, а по мере поступления то можно обойтись только одним набором Line[][].
 
AlexeyVik:

Так вот он, весь цикл на месте и организован правильно и буферы заполняются.

Но к этому индикатору должен быть какой-то файл. Что в нём должно быть не известно.

Кто же такие страшные вещи делает. А подумать автору не можется?
 
Vinin:
Кто же такие страшные вещи делает. А подумать автору не можется?
А ко мне какие вопросы? Я не автор... И даже не выпивал с ним.
 
ДД! Не могу открыть одно окно в терминале. Зависает напрочь. Там какой то индикатор вешает наглухо и не дает открыться окну. Подскажите пожалуйста, как можно посмотреть какие индикаторы установлены на этом графике. Спасибо!
 
smart:
ДД! Не могу открыть одно окно в терминале. Зависает напрочь. Там какой то индикатор вешает наглухо и не дает открыться окну. Подскажите пожалуйста, как можно посмотреть какие индикаторы установлены на этом графике. Спасибо!
Придется Вам покопаться в папке "profiles".
Посмотрите имя активного профиля, а в его папке в файлах chart*** найдете индикаторы, один из них создает проблемы. Проще при выключенном МТ4 изменить название папки "profiles" на "profiles_", а после перезапуска МТ4 сгенерирует новую - все это на Ваш риск и страх! ;-)))
 
atztek:
Придется Вам покопаться в папке "profiles".
Посмотрите имя активного профиля, а в его папке в файлах chart*** найдете индикаторы, один из них создает проблемы. Проще при выключенном МТ4 изменить название папки "profiles" на "profiles_", а после перезапуска МТ4 сгенерирует новую - все это на Ваш риск и страх! ;-)))

Как из profile увидеть индикаторы? Например открываю chart*** и как дальше.