Ответить
28.07.2013, 16:01
Аватар для sergh67
sergh67 sergh67 вне форума Активный участник
Регистрация: 02.08.2012 / Сообщений: 193
Поблагодарили 50 раз(а) / Репутация: 51

По умолчанию Вопрос по mql4

Надеюсь сильно не кто не обижен на меня, - если вдруг что?
Вопрос такой.
Допустим я поучил из некоего индикатора iCUSTOM.
PHP код:
A=iCustom(NULL,1440,"RTM",0,0,0,i); 
Далее я получаю визуальный сигнал:
PHP код:
if(A+1){SIG1440_direct="l";SIG1440_colordirect=Lime;}
       if(
A+1){SIG1440_text="D1";SIG1440_colortext=DarkGoldenrod;} 
Как видите это не работает хотя светится.
Если бы я сделал запись такого вида, то все прекрасно.
PHP код:
A[i]=iCustom(NULL,1440,"RTM",0,0,0,i); 
PHP код:
if([0]> A[]0+1){SIG1440_direct="l";SIG1440_colordirect=Lime;}
       if(
[0]> A[]0+1){SIG1440_text="D1";SIG1440_colortext=DarkGoldenrod;} 
Проблема заключается в том что мне надо вывести свыше 20 сигналов, но под каждый я не могу сделать буфер. Что делать в такой ситуации?

Последний раз редактировалось sergh67; 28.07.2013 в 16:03.
28.07.2013, 16:29
Регистрация: 13.03.2009 / Сообщений: 2,406
Поблагодарили 1,980 раз(а) / Репутация: 2057
Выражение if(A > A+1) всегда ложно, ибо в данном случае А+1 всегда больше А на еденицу.
Наверно хочешь сравнить индикатор на соседних барах? Вот так можно.
A=iCustom(NULL,1440,"RTM",0,0,0,0);
A1=iCustom(NULL,1440,"RTM",0,0,0,1);
if(A > A1)
А если надо много сравнений используй массивы, не обязательно они должны быть буферами. Это буферов в индюке может быть не более 8, а массивов можно сколько хочешь объявить. А можно двухмерный массив использовать
А [10][20]; вот например массив с 10 ячейками в ряду и 20 рядами.
Глубокое понимание процессов помогает в работе, но сильно мешает в отдыхе.
http://forexsystems.ru/signaturepics/sigpic3798_1.gif
Чужие программы не переделываю!
28.07.2013, 17:12
Аватар для sergh67
sergh67 sergh67 вне форума Активный участник
Регистрация: 02.08.2012 / Сообщений: 193
Поблагодарили 50 раз(а) / Репутация: 51
Массивы для меня к сожалению закрытая тема. Я еще не разу с ними дела не имел.
Вот еще вариант пробовал.
Брал основную линию и раскраску + 2 и сравнивал их.
В первом сравнении должен был высветиться зеленый, во втором случае красный. Но тоже путем сравнения нечего не получается. Хотя бы на основную линию, но нужно ставить буфер.
Вообщем видимо так и придется как есть 10 индюков друг на друга накладывать, потому как с массивом я пока слаб разобраться.
28.07.2013, 17:37
Аватар для sergh67
sergh67 sergh67 вне форума Активный участник
Регистрация: 02.08.2012 / Сообщений: 193
Поблагодарили 50 раз(а) / Репутация: 51
Кстати у вас нет никакого шаблона с массивами похожими на мой случай? Потому как с нуля в этом лесу дремучем мне трудно будет разобраться, что делать и как применить массивы в моем случае. У меня раскладка по tf если что. 21-28 буферов надо вывести.
28.07.2013, 17:42
Аватар для sergh67
sergh67 sergh67 вне форума Активный участник
Регистрация: 02.08.2012 / Сообщений: 193
Поблагодарили 50 раз(а) / Репутация: 51
Выражение if(A > A+1) всегда ложно, ибо в данном случае А+1 всегда больше А на еденицу.
Наверно хочешь сравнить индикатор на соседних барах? Вот так можно.
A=iCustom(NULL,1440,"RTM",0,0,0,0);
A1=iCustom(NULL,1440,"RTM",0,0,0,1);
if(A > A1)
А если надо много сравнений используй массивы, не обязательно они должны быть буферами. Это буферов в индюке может быть не более 8, а массивов можно сколько хочешь объявить. А можно двухмерный массив использовать
А [10][20]; вот например массив с 10 ячейками в ряду и 20 рядами.
если бы это просто был индикатор, - проблемы нет. Но так как я сравниваю tf у меня сбой сигналов по всем tf, кроме активного, того на котором нахожусь.

Последний раз редактировалось sergh67; 28.07.2013 в 17:45.
28.07.2013, 18:26
Аватар для sergh67
sergh67 sergh67 вне форума Активный участник
Регистрация: 02.08.2012 / Сообщений: 193
Поблагодарили 50 раз(а) / Репутация: 51
Не знаю точно, но поковырявшись, у меня что-то вроде бы стало получаться с массивами! Попробую дальше.
28.07.2013, 19:36
Аватар для sergh67
sergh67 sergh67 вне форума Активный участник
Регистрация: 02.08.2012 / Сообщений: 193
Поблагодарили 50 раз(а) / Репутация: 51
Я не пойму что же все таки получится? Я могу вызвать через iCUSNOM хоть сто переменных.
PHP код:
A=iCustom(NULL,1440,"RTM",0,0,0,i);
A_red=iCustom(NULL,1440,"RTM",0,0,1,i);
A_lime=iCustom(NULL,1440,"RTM",0,0,2,i); 
Я могу их разбить по цветовому сигналу
PHP код:
if(A== A_red){SIG1440_direct="l";SIG1440_colordirect=Lime;}
       if(
== A_lime){SIG1440_text="D1";SIG1440_colortext=DarkGoldenrod;} 
Все работает , но в пределе того TF на котором я нахожусь, но стоит мне изменить TF как идет сбой сигналов. Что делать?

Через массив я могу создать те же переменные которые могу вызвать через iCUSTOM. Но на переменной не работает TF. Что надо сделать чтобы сбоев на TF не было?

Последний раз редактировалось sergh67; 28.07.2013 в 19:42.
28.07.2013, 20:28
Аватар для sergh67
sergh67 sergh67 вне форума Активный участник
Регистрация: 02.08.2012 / Сообщений: 193
Поблагодарили 50 раз(а) / Репутация: 51
А куда делись бывалые программисты? Где передовое красное знамя Vik со своим мучебником? Уважаемые знатоки - Вы где?
29.07.2013, 10:16
Аватар для sergh67
sergh67 sergh67 вне форума Активный участник
Регистрация: 02.08.2012 / Сообщений: 193
Поблагодарили 50 раз(а) / Репутация: 51
Господа программисты не напрягайтесь. Переменные прекрасно выводя сигнал. Я просто допустил ошибку. Хороших вам выходных. Отдыхайте спокойно и расслабляйтесь.
Ответить


Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Выкл.
Pingbacks are Выкл.
Refbacks are Выкл.



Текущее время: 04:02. Часовой пояс GMT.


Перевод: zCarot
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
SEO by vBSEO