| / | Форум |
|
maloma
09.04.2006 03:40
Уважаемые гуру и другие адепты MQ4
Я прикрепил схемку. Это стандартный ZigZag. Огромная просьба сделайте плиз кусочек кода, чтобы получить значение индикатора ZigZag в точках 1 и 2. Если не сложно, то и 3. Т. е. только те точки, на которых уже уголок образовался. А которая еще крайняя - ненадо. Плиз. |
|
Бесплатная Groupware для групп разработчиков Установите систему групповой работы TeamWox и объедините усилия всех разработчиков. Это поможет вашей команде работать быстрее и организованнее. Благодаря TeamWox станет намного проще ставить задачи и контролировать их выполнение. |
|
Integer
09.04.2006 10:16
Гарантия 0% |
|
KimIV
09.04.2006 10:54
|
|
maloma
09.04.2006 13:19
Уау. Спасибо. Вот профессиональный подход. Сразу видно. Очень
помогли, друзья.
|
|
Hell
14.04.2006 01:35
Integer: Обясните дураку что передает индикатор iCustom если он не где не описан?
Или лучше скажите какое значение примет "zz" в том или ином случае в описанных примерах. Заранее спасибо. |
|
Integer
14.04.2006 08:10
iCustom() - это функция для получения значений ползовательского индикатора
(индикатора, который расположен в каталоге indicators в виде файла
.mq4 и откомпилированого в .ex4).
Аргументы: 1 - Символ. NULL, значит тот символ, на который присоединен индикатор вызывающий эту функцию 2 - Тамфрейм. 0 - тот таймфрейм на который присоединен индикатор вызывающий эту функцию 3 - Имя пользовательского индикатора (имя файла без расширения). затем идут переменные-настройти вызываемого индикатора. Открываешь вызываемый пользовательский индикатор и смотришь какие в нем определены внешние extern переменные, и в том же порядке передаешь их в iCustom. У зигзага три переменных - ExtDepth,ExtDeviation,ExtBackstep. Можно и сразу числами передать, если настраивать не надо 12,5,3. Короче это параметры с которыми зигзаг строится. Предпоследний аргумент - номер буфера из пользовательского индикатора. У зиг-заго он один, значит пишем 0, что значит первый буфер. Если буферов больше, цепляешь индикатор на график, смотришь значений какой линии тебе нужны, затем смотришь в окне свойст во вкладке изменения цветов, на каком месте стоит эта линия, таким образом получаешь номер буфера. (Отсчет с нуля). Последний аргумент, i - номер бара с которого берешь значение индикатора. 0 - самый новый бар, и т.д. Там где нет излома зиг-заг обычно возвращает 0, иначе значение. Поэтому, для того чтобы найти излом проверяется неравенство значения zz нулю, и для универсальности EMPTY_VALUE, так у некоторых индикаторов может быть не определено пустое значение, как это сделано у зигзага, в этом случае он возвращает константу EMPTY_VALUE. |
|
Hell
14.04.2006 13:35
Integer: Спасибо!!!................. Непонятно почему при редактировании стёрлось моё первоначальное замечаниеи :( Вот оно: тааак-с, может глюки? Вчера в сообщении был вопрос "что Вы думаете по этому поводу?" Чтоб ответить, ума много не надо - 100% слив. Учась программировать, я много создал експертов используя подобную тему. Результат 100% слив. А я применяю правило, "в реале слив больше в 2 раза чем в МТС" |
|
Mihail
17.11.2006 17:48
Подскажите, в какой переменной в стандартном ZigZag появляется знаечение экстреммума? Попробовал if (res>0) не оно.
Или может у когото есть Zigzag который хранит значения нескольких
точек в глобальных переменных. А то, если искать экстреммумы
на i-том баре получается очень медленно.
|
|
Snegovik
29.09.2008 17:41
Добрый день. Уважаемые гуру. не могли бы вы в этой же теме подсказать,пожалуйста. Maloma просил, чтобы значения ЗигЗага подписывались от нулевого бара и дальше 3 значения...т.е. справа на лево. Может ли кто-нибудь помочь сделать кусочек кода...в котором каждое значения зигзага будет подписываться справа на лево..начиная с time_start. (time_start - дата с которой начинает работать индикатор). Подпись типа: low1_1.4315 high1_1.4326 low2_1.4320 high2_1.4345 low3_1.4329 high3_1.4370 и т.д. Спасибо. |
|
Snegovik
06.10.2008 08:58
Никто не подскажет? |
|
beruk
18.11.2008 15:09
приветствую. вот, воспользовался ZZ из терминала и кусочком кода от почуял что-то неладное и решил проверить правильно ли нумеруются вершины, добавил в код стрелку на первую вершину по рисунку в начале темы - оказалось что в разное время вершины нумерюются по-разному, хотя перелома ZZ еще небыло.: extern int ExtDepth = 12; extern int ExtDeviation = 5; extern int ExtBackstep = 3; extern int ShiftBars = 2; double y3, y2, y1, zz;// int x3, x2, x1, sh;// double ChangY1; //---------------------------------------------------------+ int start() { y3=0; y2=0; y1=0; sh=ShiftBars; while (y3==0) { zz=iCustom(NULL, 0, "ZigZag", ExtDepth, ExtDeviation, ExtBackstep, 0, sh); if (zz!=0 && zz!=EMPTY_VALUE) { if (y1==0) { x1=sh; y1=zz; } else if (y2==0) { x2=sh; y2=zz; } else if (y3==0) { x3=sh; y3=zz; } } sh++; } string name=TimeToStr(Time[x1]); ObjectCreate (name,22,0,Time[x1],High[x1]-15*Point); } //-------------------------------------------------------+ вот скриншоты: помогите разобраться что не так! |
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий