В статьях бывают не так уж и редко ошибки в программных кодах, сам не раз сталкивался.
В Вашем коде, думаю, нужно обратить внимание на имена объектов. Если у Вас в одном из проходов: x = 1; y = 1, а в другом проходе будет y = 1; x = 1. Какие имена будут у меток?
В статьях бывают не так уж и редко ошибки в программных кодах, сам не раз сталкивался.
В Вашем коде, думаю, нужно обратить внимание на имена объектов. Если у Вас в одном из проходов: x = 1; y = 1, а в другом проходе будет y = 1; x = 1. Какие имена будут у меток?
Не думаю, просто механически посмотрим давайте:
00 10 20 30 40 50 60 70 80
01 11 21 31 41 51 61 71 81
02 12 22 32 42 52 62 72 82
Не думаю, просто механически посмотрим давайте:
00 10 20 30 40 50 60 70 80
01 11 21 31 41 51 61 71 81
02 12 22 32 42 52 62 72 82
Не думаю, просто механически посмотрим давайте:
00 10 20 30 40 50 60 70 80
01 11 21 31 41 51 61 71 81
02 12 22 32 42 52 62 72 82
у вас идет сложение чисел x+y, потом перевод в тип стринг, поэтому результат будет? вот и считайте
0+0=0, 0+1=1, 0+2=2
1+0=1, 1+1=2, 1+2=3
вот и думайте что у вас получается с именами
у вас идет сложение чисел x+y, потом перевод в тип стринг, поэтому результат будет? вот и считайте
0+0=0, 0+1=1, 0+2=2
1+0=1, 1+1=2, 1+2=3
вот и думайте что у вас получается с именами
у вас идет сложение чисел x+y, потом перевод в тип стринг, поэтому результат будет? вот и считайте
0+0=0, 0+1=1, 0+2=2
1+0=1, 1+1=2, 1+2=3
вот и думайте что у вас получается с именами
Не думаю, просто механически посмотрим давайте:
00 10 20 30 40 50 60 70 80
01 11 21 31 41 51 61 71 81
02 12 22 32 42 52 62 72 82
Ну да, это я прогнал с единицами. Надо было так написать: x = 1; y = 2, а в другом проходе будет y = 2; x = 1.
Хотя Ilyas уже ответил.
Все, спасибо большое, действительно, сделал вот так - IntegerToString(x)+IntegerToString(y) - и все заработало
Тоже не лучший вариант, надо еще какой-то знак между х и у:
Это если количество больше 10.
1 и 11, это не 11 и 1.
Ну да, это я прогнал с единицами. Надо было так написать: x = 1; y = 2, а в другом проходе будет y = 2; x = 1.
Хотя Ilyas уже ответил.
А вы не могли бы подсказать, каким образом можно записать следующее условие на iRSI:
По текущему бару мы не смотрим, смотрим по последнему закрытому (чтобы сигнал был четким, не прыгал туда сюда)
Если RSI на баре, который шел перед последним закрытым (как я понимаю, его порядковый номер будет 2), меньше 20, а RSI на баре, который закрылся (как я понимаю, его порядковый номер будет 1), больше 20 (выход из зоны перепроданности), то квадратик окрашивается зеленым
if ((iRSI(Symbol(),period[x],14,PRICE_CLOSE)для бара с номером [2] < 20) && ((iRSI(Symbol(),period[x],14,PRICE_CLOSE)для бара с номером [2] > 20)) { //меняем цвет }
Тоже не лучший вариант, надо еще какой-то знак между х и у:
Это если количество больше 10.
1 и 11, это не 11 и 1.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Здравствуйте!
Пытаюсь адаптировать данную статью https://www.mql5.com/ru/articles/1503 под mql5.
Сейчас на этапе "рисования квадратиков". Квадратики рисует, все замечательно, только вот рисует как-то неправильно. Хотелось бы услышать Ваши комментарии относительно того, почему так получилось
{
for(int x=0;x<9;x++)
{
for(int y=0;y<3;y++)
{
ObjectCreate(0, "signal"+IntegerToString(x+y),OBJ_LABEL,0,0,0,0,0);
// создаем очередную метку. Обратите внимание, что название метки
// создается "на лету" и зависит от счетчиков "x" и "y"
ObjectSetString (0, "signal"+IntegerToString(x+y), OBJPROP_FONT, "Wingdings");
// меняем шрифт на Wingdingsб чтобы получить доступ к символам
ObjectSetInteger (0,"signal"+IntegerToString(x+y), OBJPROP_COLOR, Blue);
// меняем цвет на синий
ObjectSetString(0, "signal"+IntegerToString(x+y), OBJPROP_TEXT, CharToString(110));
//делаем квадратики
ObjectSetInteger(0, "signal"+IntegerToString(x+y),OBJPROP_XDISTANCE,x*20);
// изменяем координату Х.
// x*20 - каждая метка создается с интервалом в 20 пикселей по
// горизонтали и напрямую зависит от счетчика "x"
ObjectSetInteger(0, "signal"+IntegerToString(x+y),OBJPROP_YDISTANCE,y*20);
// изменяем координату Y.
// y*20 - каждая метка создается с интервалом в 20 пикселей по
// вертикали и напрямую зависит от счетчика "y"
}
}
return(INIT_SUCCEEDED);
Рисует этот индикатор не три ряда (как отражено в условии цикла), а только первый ряд и последние два квадрата с двух других рядов
Помогите, пожалуйста, разобраться, где ошибка