Индикатор Разные вопросы - страница 14

 
Max Enrik: Мне просто нужно нарисовать одну из последних "Стрелок", не нужно рисовать десять тысяч Стрелок на моем графике.
Нет необходимости не рисовать их. Что вы собираетесь делать, когда образуются новые бары? Возвращаться назад и удалять старые? После первого прогона вы все равно будете обрабатывать только нулевой бар. См. раздел Как правильно делать возвраты.
 
whroeder1:
Нет необходимости не рисовать их. Что вы собираетесь делать, когда образуются новые бары? Возвращаться назад и удалять старые? После первого прогона вы все равно будете обрабатывать только нулевой бар. См. раздел Как правильно делать возвраты.

Большое спасибо.

 

#Only OneDraw Arrow- закрыто

Ответ: Не нужно рисовать "стрелки" командой DRAW_ARROW, нужно рисовать объекты по условию.

 

#Буфер ( массив вне диапазона in) - Открыть

Я пробую нижеприведенный код, и он выдает фатальную ошибку: " array out of range in ", я делаю что-то не так? Если да, то как я могу решить эту проблему, пожалуйста?

Заранее спасибо.

bufferOne[i]=iMA(Symbol(),0,26,0,MODE_EMA,PRICE_CLOSE,i);
bufferTwo[i]=bufferOne[i+1];
 
Max Enrik: Я делаю неправильно? Если да, то как я могу решить эту проблему, пожалуйста?
  1. Очевидно. Вы смотрите мимо конца массива.
  2. Делайте возвраты правильно.
 
whroeder1:
  1. Очевидно. Вы смотрите мимо конца массива.
  2. Делайте свои возвраты правильно.

ОМГ! Почему я не использую этот замечательный пример только для этой проблемы. (Даже я использовал этот замечательный пример для других проблем).

Пожалуйста, подскажите, что я могу написать для обратного просмотра.

int lookback = ?; // I do not know what could I write here.
for(int i = Bars-1-MathMax(lookback, prev_calculated); i >= 0; --i)
{
    bufferOne[i]=iMA(Symbol(),0,26,0,MODE_EMA,PRICE_CLOSE,i);
    bufferTwo[i]=bufferOne[i+1];
}
 
int lookback = ?; // I do not know what could I write here.
for(int i = Bars-1-MathMax(lookback, prev_calculated); i >= 0; --i)
{
    bufferOne[i]=iMA(Symbol(),0,26,0,MODE_EMA,PRICE_CLOSE,i);
    bufferTwo[i]=bufferOne[i+1];
  1. Вы читали предоставленную ссылку? Посмотрите еще раз на самое первое поле:
    int lookback = ... // iMA(period) has look back of period.
                       // buffer[i+2] has look back of 2 (as TimeSeries)
                       // buffer[i-2] has look back of 2 (not TimeSeries)
                       // use maximum of all.
  2. У вас есть 26 для iMA и 1 для [i+1]. Как вы думаете, каков максимум?
 
whroeder1:
  1. Вы прочитали предоставленную ссылку? Посмотрите еще раз на самое первое поле:
  2. У вас есть 26 для iMA и 1 для [i+1]. Как вы думаете, каков максимум?

Конечно, я уже прочитал и попробовал ваш замечательный пример, я не получил хороших результатов, поэтому я и спросил об этом.
После вашего предыдущего комментария я пробую новый индикатор только для того, чтобы попробовать ваш пример. Надеюсь, у меня получится что-то хорошее по отдельности (потом я их объединю).

(если я не получу хороших результатов, я выложу весь код).

Большое спасибо.

 

Хаха! Большое спасибо, мистер Уильям. Какие замечательные результаты. Потрясающе! Огромная благодарность!

 

Я использую OnCalculate() с " int " теперь мне нужно спросить, что лучше для этого типа индикаторов, int или void, пожалуйста?

Заранее спасибо.

int OnCalculate(...) {}
Причина обращения: