Ну, по идее, если дополнительные индикаторные буфера объявлять самостоятельно, а дальше трендовыми линиями, то работать будет...
Тогда почему в документации сказано, что
Количество буферов не может превышать 8
Вот тут непонятно. Там же не написано, что количество основных буферов.. а не всех. Сказано, что кол-во буферов и всё. Значит я читая, понимаю, что по ходу это должно распостраняться на общее кол-во буферов заданного индикатора.
Нет, я говорю про ObjectCreate(), там же номер окна нужно задавать. Я и показал, как задавать, если это подокно (то есть не ноль, которое главное окно).
Так у Вас там при создании объекта параметр функции - WindowOnDropped, а это уже вроде как главное окно относительно. Или главное окно самое левое из окон в терминале?
Вот тут непонятно. Там же не написано, что количество основных буферов.. а не всех. Сказано, что кол-во буферов и всё. Значит я читая, понимаю, что по ходу это должно распостраняться на общее кол-во буферов заданного индикатора.
Нееееа,я не про индикаторные буферы говорю, а про сэмулированные индикаторные буферы. А там ArrayResize(CustomBuffer, Bars) в обёртке из IndicatorCounted(), а концы крайних правых трендовых линий должны перерисовываться по биду.
hoz:
Так у Вас там при создании объекта параметр функции - WindowOnDropped, а это уже вроде как главное окно относительно. Или главное окно самое левое из окон в терминале?
Нет, я тоже путался сначала. Например, у нас открыто два графика, еврена и золото. Так вот, они оба имеют индекс ноль. Но если у них появляются подокна, то они нумеруются с единицы. Например, я кинул три индюка на график евренны, два на золото, и все пять с #property separate_window и все разных подокнах. Тогда у еврены будут номера окон 0, 1, 2, 3, а у золота 0, 1, 2.
У меня вопрос. Мозги уже закипают, чесное слово. Если можете - помогите.
int n=1, limit=3;
double result;//или int result, что не столь сейчас важноdouble temp[];
int start(){
for(int slow=10; slow<=10*limit; slow++){
for(int fast=10; fast<=slow; fast++){
for(int period=1; period<=slow/10; period++){
n++; Print(n-1, ": ", slow-9, ", ", fast-9, ", ", period);
//здесь идёт тестирование машки с параметрами slow, fast, period, а результаты тестирования заносим в массив:ArrayResize(temp,n); temp[n-1]=result;
}
}
}
//и находим максимальный результат:int max=ArrayMaximum(temp);
return(0);
}
Теперь вопрос: как по max (который у нас позиция элемента в массиве) восстановить значения slow, fast, period? Порядок заноса значений в temp[] приведён в Print(). В limit я поставил 3, но там может стоять любое число. Вот первые 77 значений (limit=2):
У меня вопрос. Мозги уже закипают, чесное слово. Если можете - помогите.
Теперь вопрос: как по max (который у нас позиция элемента в массиве) восстановить значения slow, fast, period? Порядок заноса значений в temp[] приведён в Print(). В limit я поставил 3, но там может стоять любое число.
Там, где "n++" делайте проверку на максимальность result, если максимально, надо запомнить значения slow, fast и т.д.
Можно еще три массива сделать (или один трехмерный) для slow, fast... Так лучше, потому-что вдруг захотите как-нибудь отсортировать результаты, всегда будут доступны параметры тестирования.
Если эти действия часто выполняются, например раз на бар или на 10 баров, то лучше в ините отмасштабировать массивы для результатов и три массива со значениями параметров, прокрутить эти циклы, заполнить массивы значениями периодов. Потом прокручивать все это в одном цикле. Тогда можно будет пользоваться функцией ArrayMaximum, сортировать всяко. Будет работать максимально быстро.
Нет, я тоже путался сначала. Например, у нас открыто два графика, еврена и золото. Так вот, они оба имеют индекс ноль. Но если у них появляются подокна, то они нумеруются с единицы. Например, я кинул три индюка на график евренны, два на золото, и все пять с #property separate_window и все разных подокнах. Тогда у еврены будут номера окон 0, 1, 2, 3, а у золота 0, 1, 2.
Точно! Я просто с индюками вообще не работаю можно сказать, так не обратил внимания когда изучал справку. Тут всё понятно.
gyfto:
Нееееа,я не про индикаторные буферы говорю, а про сэмулированные индикаторные буферы. А там ArrayResize(CustomBuffer, Bars) в обёртке из IndicatorCounted(), а концы крайних правых трендовых линий должны перерисовываться по биду.
А я спрашивал канкретно как отрисовать больше 6 линий на графике. В каком окне (0-ое или другое не важно). Вот это меня щяс больше всего интересует и об этом я спросил изначально.
Там, где "n++" делайте проверку на максимальность result, если максимально, надо запомнить значения slow, fast и т.д.
Не подумал.
Integer: Можно еще три массива сделать (или один трехмерный) для slow, fast... Так лучше, потому-что вдруг захотите как-нибудь отсортировать результаты, всегда будут доступны параметры тестирования.
Трёхмерный - это идеальный вариант, но ArrayMaximum() работает только по одномерному, поэтому придётся сводить массив в линейный, и опять придётся разбираться где что. У меня же fastMax=slow, в том-то вся и беда. А вот три разных массива... У меня же результат-то один, поэтому или один трёхмерный, или один линейный.
Integer: отмасштабировать массивы для результатов
Вот этой терминологии не знаю, поясните. Создать линейный массив длинной limit в кубе?
Ну уже хоть какой-то вариант есть. Через MathMax(result, resultPrev).
Ну, по идее, если дополнительные индикаторные буфера объявлять самостоятельно, а дальше трендовыми линиями, то работать будет...
Тогда почему в документации сказано, что
Нет, я говорю про ObjectCreate(), там же номер окна нужно задавать. Я и показал, как задавать, если это подокно (то есть не ноль, которое главное окно).
Так у Вас там при создании объекта параметр функции - WindowOnDropped, а это уже вроде как главное окно относительно. Или главное окно самое левое из окон в терминале?
Здравствуйте! Не могу понять почему не удаляются ордера buystop.
Тогда почему в документации сказано, что
Нееееа,я не про индикаторные буферы говорю, а про сэмулированные индикаторные буферы. А там ArrayResize(CustomBuffer, Bars) в обёртке из IndicatorCounted(), а концы крайних правых трендовых линий должны перерисовываться по биду.
Так у Вас там при создании объекта параметр функции - WindowOnDropped, а это уже вроде как главное окно относительно. Или главное окно самое левое из окон в терминале?
У меня вопрос. Мозги уже закипают, чесное слово. Если можете - помогите.
Теперь вопрос: как по max (который у нас позиция элемента в массиве) восстановить значения slow, fast, period? Порядок заноса значений в temp[] приведён в Print(). В limit я поставил 3, но там может стоять любое число. Вот первые 77 значений (limit=2):
У меня вопрос. Мозги уже закипают, чесное слово. Если можете - помогите.
Теперь вопрос: как по max (который у нас позиция элемента в массиве) восстановить значения slow, fast, period? Порядок заноса значений в temp[] приведён в Print(). В limit я поставил 3, но там может стоять любое число.
Там, где "n++" делайте проверку на максимальность result, если максимально, надо запомнить значения slow, fast и т.д.
Нет, я тоже путался сначала. Например, у нас открыто два графика, еврена и золото. Так вот, они оба имеют индекс ноль. Но если у них появляются подокна, то они нумеруются с единицы. Например, я кинул три индюка на график евренны, два на золото, и все пять с #property separate_window и все разных подокнах. Тогда у еврены будут номера окон 0, 1, 2, 3, а у золота 0, 1, 2.
Точно! Я просто с индюками вообще не работаю можно сказать, так не обратил внимания когда изучал справку. Тут всё понятно.
Нееееа,я не про индикаторные буферы говорю, а про сэмулированные индикаторные буферы. А там ArrayResize(CustomBuffer, Bars) в обёртке из IndicatorCounted(), а концы крайних правых трендовых линий должны перерисовываться по биду.
Там, где "n++" делайте проверку на максимальность result, если максимально, надо запомнить значения slow, fast и т.д.
Не подумал.
Можно еще три массива сделать (или один трехмерный) для slow, fast... Так лучше, потому-что вдруг захотите как-нибудь отсортировать результаты, всегда будут доступны параметры тестирования.
Трёхмерный - это идеальный вариант, но ArrayMaximum() работает только по одномерному, поэтому придётся сводить массив в линейный, и опять придётся разбираться где что. У меня же fastMax=slow, в том-то вся и беда. А вот три разных массива... У меня же результат-то один, поэтому или один трёхмерный, или один линейный.
отмасштабировать массивы для результатов
Вот этой терминологии не знаю, поясните. Создать линейный массив длинной limit в кубе?
Ну уже хоть какой-то вариант есть. Через MathMax(result, resultPrev).