Kogalym писал(а)>> При SL советник должен открывать ордер такого же типа а при TP противоположного! Но почему то часто советник открывает ордер не того типа!
Кто знает этот индикатор годится для советника, нашел одну стратегию там он применяется автором, а можно его прописать в советник и как сделать, например в виде примера можете показать. Сигнал бай если гистограмма зеленая, и если линия ниже гистограммы? Для селл аналогично.
и не понятно, что именно вы хотите получить в массивах MAX и MIN
Объясню еще раз :)
Есть массив, в котором содержатся все значения столбцов МАКД.
Нужно из всех тех значений брать по десятке значений (по порядку) и искать в них максимальное, и соответственно нарисовать его в индюке, и так до конца.
Вот еще раз напомню код:
for(i=0; i<50; i=i+10) //общий цикл для всех значений МАКД, шаг 10
{
int k = i;
for(k=i; k<i+10; k++) // цикл внутри десятки значений, шаг 1
{
x10[k] = MACD[k];// массив десяток
}
int IndexMAX = ArrayMaximum(x10); // найден индекс максимального значения внутри десятки int IndexMIN = ArrayMinimum(x10); // --//--
MAX[k] = MACD[IndexMAX]; // Рисуем найденное максимальное значение внутри десятки на k баре
MIN[k] = MACD[IndexMIN];
}
Я так понимаю, не рисуется из-за того, что у меня индекс массива с десятками не совпадает с индексом этого значения в главном массиве со значениями МАКД.
Т.е. когда в основном цикле счетчик дойдет, допустим, до 30, то во вложенном цикле пойдут 30-31-32...39 (допустим максимальным из них окажется 34 значение), функция Arraymaximum(x10) найдет его но запишет в IndexMAX именно порядковый номер в СВОЁМ (x10) массиве, т.е. на самом деле истинным будет значение 34, а он запишет какое-то другое (от 0 до 9, т.к. это массив десяток). Вот не могу придумать что делать...
Есть массив, в котором содержатся все значения столбцов МАКД.
Нужно из всех тех значений брать по десятке значений (по порядку) и искать в них максимальное, и соответственно нарисовать его в индюке, и так до конца.
Вот еще раз напомню код:
Я так понимаю, не рисуется из-за того, что у меня индекс массива с десятками не совпадает с индексом этого значения в главном массиве со значениями МАКД.
Т.е. когда в основном цикле счетчик дойдет, допустим, до 30, то во вложенном цикле пойдут 30-31-32...39 (допустим максимальным из них окажется 34 значение), функция Arraymaximum(x10) найдет его но запишет в IndexMAX именно порядковый номер в СВОЁМ (x10) массиве, т.е. на самом деле истинным будет значение 34, а он запишет какое-то другое (от 0 до 9, т.к. это массив десяток). Вот не могу придумать что делать...
for(i=0; i<limit; i+=10) //общий цикл для всех значений МАКД, шаг 10
{
int k;
for(k=0; k<10; k++) // цикл внутри десятки значений, шаг 1
{
x10[k] = MACD[i+k];// массив десяток
}
int IndexMAX = ArrayMaximum(x10); // найден индекс максимального значения внутри десятки int IndexMIN = ArrayMinimum(x10); // --//--
MAX[k] = x10[IndexMAX]; // Рисуем найденное максимальное значение внутри десятки на k баре
MIN[k] = x10[IndexMIN];
}
Но почему то часто советник открывает ордер не того типа!
Подскажите где ошибка???
При SL советник должен открывать ордер такого же типа а при TP противоположного!
Но почему то часто советник открывает ордер не того типа!
Подскажите где ошибка???
и не понятно, что именно вы хотите получить в массивах MAX и MINкакова размерность массива x10 ?
10?
Тогда надо так переписать:
Объясню еще раз :)
Есть массив, в котором содержатся все значения столбцов МАКД.
Нужно из всех тех значений брать по десятке значений (по порядку) и искать в них максимальное, и соответственно нарисовать его в индюке, и так до конца.
Вот еще раз напомню код:
Я так понимаю, не рисуется из-за того, что у меня индекс массива с десятками не совпадает с индексом этого значения в главном массиве со значениями МАКД.
Т.е. когда в основном цикле счетчик дойдет, допустим, до 30, то во вложенном цикле пойдут 30-31-32...39 (допустим максимальным из них окажется 34 значение), функция Arraymaximum(x10) найдет его но запишет в IndexMAX именно порядковый номер в СВОЁМ (x10) массиве, т.е. на самом деле истинным будет значение 34, а он запишет какое-то другое (от 0 до 9, т.к. это массив десяток). Вот не могу придумать что делать...
Объясню еще раз :)
Есть массив, в котором содержатся все значения столбцов МАКД.
Нужно из всех тех значений брать по десятке значений (по порядку) и искать в них максимальное, и соответственно нарисовать его в индюке, и так до конца.
Вот еще раз напомню код:
Я так понимаю, не рисуется из-за того, что у меня индекс массива с десятками не совпадает с индексом этого значения в главном массиве со значениями МАКД.
Т.е. когда в основном цикле счетчик дойдет, допустим, до 30, то во вложенном цикле пойдут 30-31-32...39 (допустим максимальным из них окажется 34 значение), функция Arraymaximum(x10) найдет его но запишет в IndexMAX именно порядковый номер в СВОЁМ (x10) массиве, т.е. на самом деле истинным будет значение 34, а он запишет какое-то другое (от 0 до 9, т.к. это массив десяток). Вот не могу придумать что делать...
Весь код индикатора покажи
Весь код индикатора покажиОбъясню еще раз :)
мне кажется, Вы хотели написать вот так:
А какую цель преследуешь?
Ну, что хочешь получить. Разбивать на десятки бесмысленно. Они все время передвигаются во времени.
мне кажется, Вы хотели написать вот так:
Не рисует :((
з.ы. к=0 я дописал :)
А какую цель преследуешь?
Ну, что хочешь получить. Разбивать на десятки бесмысленно. Они все время передвигаются во времени.
Да цель буквальная...хочу чтоб отображался максимум среди каждых 10-ти баров...