что бы вы ни пытались сделать, это, вероятно, не тот способ, который вам нужен.
Посмотрите в "Custiom индикаторы, эксперты и тестирование стратегий" - я объяснил способ использования iCustom...
Я думаю, вам следовало бы изменить индикатор и сделать два дополнительных буфера для получения этих данных.
низкое значение - это, например, LOWbuff[]
высокое значение - HIGHbuff[]
Теперь, если у вас есть новый максимум (внутри индикатора), вы проверяете, отличается ли он от значения, хранящегося сейчас... если да, то у вас есть новое значение...
1.2815 ZigZag max для примера
бар1
бар2
бар3
...
новое значение barx равно 1.2755
Ваше значение будет чем-то вроде HIGHBUFF[1.2815,1.2815,....,1.2815,1.2755,1.2755... ].
затем вы используете Icustom(NULL,0, "ZigZag",3,0); --> и вуаля! у вас есть ваше число.
Надеюсь, вы понимаете, о чем я говорю...
zolero
Посмотрите в "Custiom индикаторы, эксперты и тестирование стратегий" - я объяснил способ использования iCustom...
Я думаю, вам следовало бы изменить индикатор и сделать два дополнительных буфера для получения этих данных.
низкое значение - это, например, LOWbuff[]
высокое значение - HIGHbuff[]
Теперь, если у вас есть новый максимум (внутри индикатора), вы проверяете, отличается ли он от значения, хранящегося сейчас... если да, то у вас есть новое значение...
1.2815 ZigZag max для примера
бар1
бар2
бар3
...
новое значение barx равно 1.2755
Ваше значение будет чем-то вроде HIGHBUFF[1.2815,1.2815,....,1.2815,1.2755,1.2755... ].
затем вы используете Icustom(NULL,0, "ZigZag",3,0); --> и вуаля! у вас есть ваше число.
Надеюсь, вы понимаете, о чем я говорю...
zolero
zolero:
что бы вы ни пытались сделать, это, вероятно, не тот способ, который вам нужен.
Посмотрите в "Custiom индикаторы, эксперты и тестирование стратегий" - я объяснил способ использования iCustom...
Я думаю, вам следовало бы изменить индикатор и сделать два дополнительных буфера для получения этих данных.
низкое значение - это, например, LOWbuff[]
высокое значение - HIGHbuff[]
Теперь, если у вас есть новый максимум (внутри индикатора), вы проверяете, отличается ли он от значения, хранящегося сейчас... если да, то у вас есть новое значение...
1.2815 ZigZag max для примера
бар1
бар2
бар3
...
новое значение barx равно 1.2755
Ваше значение будет чем-то вроде HIGHBUFF[1.2815,1.2815,....,1.2815,1.2755,1.2755... ].
затем вы используете Icustom(NULL,0, "ZigZag",3,0); --> и вуаля! у вас есть ваше число.
Надеюсь, вы понимаете, о чем я говорю...
zolero
Нет, я действительно не понимаю, что бы вы ни пытались сделать, это, вероятно, не тот способ, который вам нужен.
Посмотрите в "Custiom индикаторы, эксперты и тестирование стратегий" - я объяснил способ использования iCustom...
Я думаю, вам следовало бы изменить индикатор и сделать два дополнительных буфера для получения этих данных.
низкое значение - это, например, LOWbuff[]
высокое значение - HIGHbuff[]
Теперь, если у вас есть новый максимум (внутри индикатора), вы проверяете, отличается ли он от значения, хранящегося сейчас... если да, то у вас есть новое значение...
1.2815 ZigZag max для примера
бар1
бар2
бар3
...
новое значение barx равно 1.2755
Ваше значение будет чем-то вроде HIGHBUFF[1.2815,1.2815,....,1.2815,1.2755,1.2755... ].
затем вы используете Icustom(NULL,0, "ZigZag",3,0); --> и вуаля! у вас есть ваше число.
Надеюсь, вы понимаете, о чем я говорю...
zolero
Все, что я хочу, это чтобы мой советник знал, в какую сторону направлен индикатор зигзаг (вверх или вниз). КАК МНЕ ЭТО СДЕЛАТЬ?
Все, что я хочу, это чтобы мой советник знал, в какую сторону направлен индикатор зигзаг (вверх или вниз). КАК МНЕ ЭТО СДЕЛАТЬ?
Вероятно, вы хотите знать два последних значения (так как зигзаг не всегда имеет значение). Поэтому вам нужно прочитать два последних значения индикатора:.
int n, i; double zag, zig; i=0; while(n<2) { if(zig>0) zag=zig; zig=iCustom(NULL, 0, "ZigZag", 0, i); if(zig>0) n+=1; i++; }теперь у вас есть два числа zig -- последнее значение и zag -- значение перед этим
if(zag>zig) индикатор показывает вниз
if(zig>zag) индикатор показывает вверх
zolero
zolero:
если(zag>zig) индикатор показывает вниз
если(zig>zag) индикатор показывает вверх
zolero
СПАСИБО, понял, работает как шарм
Все, что я хочу, это чтобы мой советник знал, в какую сторону направлен индикатор зигзаг (вверх или вниз). КАК ЭТО СДЕЛАТЬ?
Вероятно, вы хотите знать два последних значения (так как зигзаг не всегда имеет одно значение). Поэтому вам нужно прочитать два последних значения индикатора:int n, i; double zag, zig; i=0; while(n<2) { if(zig>0) zag=zig; zig=iCustom(NULL, 0, "ZigZag", 0, i); if(zig>0) n+=1; i++; }теперь у вас есть два числа zig - последнее значение и zag - значение перед этим.
если(zag>zig) индикатор показывает вниз
если(zig>zag) индикатор показывает вверх
zolero
c0d3:
ПОСЛЕ ТЕСТИРОВАНИЯ,
если(zag<zig) индикатор показывает вниз
если(zig<zag) индикатор показывает вверх
Я ДУМАЮ, ЧТО ЭТО ПРАВИЛЬНО, он давал противоположное направление с (zag>zig), (zig>zag).
zolero:
если(zag>zig) индикатор показывает вниз
если(zig>zag) индикатор показывает вверх
zolero
спасибо, понял, работает как шарм Все, что я хочу, это чтобы мой советник знал, в какую сторону направлен индикатор зигзаг (вверх или вниз). КАК ЭТО СДЕЛАТЬ?
Вероятно, вы хотите знать два последних значения (так как зигзаг не всегда имеет значение). Поэтому вам нужно прочитать два последних значения индикатора:int n, i; double zag, zig; i=0; while(n<2) { if(zig>0) zag=zig; zig=iCustom(NULL, 0, "ZigZag", 0, i); if(zig>0) n+=1; i++; }теперь у вас есть два числа zig - последнее значение и zag - значение перед этим.
если(zag>zig) индикатор показывает вниз
если(zig>zag) индикатор показывает вверх
zolero
ПОСЛЕ ТЕСТИРОВАНИЯ,
если(zag<zig) индикатор показывает вниз
если(zig<zag) индикатор показывает вверх
Я ДУМАЮ, ЧТО ЭТО ПРАВИЛЬНО, он давал противоположное направление с (zag>zig), (zig>zag).
c0d3:
Я смотрел последнюю линию уже на графике. Это означает, что последняя линия смотрела вниз [или вверх]. Это должно означать, что сейчас ожидается движение вверх [или вниз]. Но есть небольшая проблема с восприятием этого сигнала как сигнала вверх или вниз: зигзаг может [и часто делает это] перерисовать себя. Это означает, что если линия между двумя точками показывает на юг (от 1.2900 до 1.2850), то это не означает, что цена пойдет вверх. Скорее всего, она пойдет вверх, но есть большая вероятность, что после некоторого движения вниз у вас появится новая линия вниз (от 1.2900 до 1.2820) и так далее. Это я к тому, что наличие линии на графике не означает, что движение в этом направлении закончено.
Я ДУМАЮ, ЧТО ЭТО ПРАВИЛЬНО, Я ПРЕДСТАВЛЯЛ противоположное направление с (zag>zig), (zig>zag).
int n, i; double zag, zig;
i=0;
while(n<2)
{
if(zig>0) zag=zig;
zig=iCustom(NULL, 0, "ZigZag", 0, i);
if(zig>0) n+=1;
i++;
}
&nbint n, i; double zag, zig; i=0; while(n<2) { if(zig>0) zag=zig; zig=iCustom(NULL, 0, "ZigZag", 0, i); if(zig>0) n+=1; i++; }sp;int n, i; double zag, zig; i=0; while(n<2) { if(zig>0) zag=zig; zig=iCustom(NULL, 0, "ZigZag", 0, i); if(zig>0) n+=1; i++; }
Я немного изменил код зигзага, чтобы показать, что я имею в виду под ложным сигналом. Как говорится: одна картинка может рассказать больше, чем 1000 слов.....
Красная линия - это оригинальный зигзаг, и он идет снизу вверх и обратно в лучшие моменты... по крайней мере, так кажется. Но если вы кодируете ea, то ea получает сигналы, которые близки к желтой линии. это может быть еще хуже, как я сделал очень быстрый хак...
код перерисовывает линию вверх или вниз, пока не будет нарисована следующая линия, и так шаг за шагом изменяя желтую линию (удаляя максимальные и минимальные значения), пока не получится красная линия...
Красная линия - это оригинальный зигзаг, и он идет снизу вверх и обратно в лучшие моменты... по крайней мере, так кажется. Но если вы кодируете ea, то ea получает сигналы, которые близки к желтой линии. это может быть еще хуже, как я сделал очень быстрый хак...
код перерисовывает линию вверх или вниз, пока не будет нарисована следующая линия, и так шаг за шагом изменяя желтую линию (удаляя максимальные и минимальные значения), пока не получится красная линия...
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Вот что у меня получилось на данный момент:
ZigZagHigh=iCustom(NULL,0, "ZigZag",MODE_HIGH,0);
ZigZagLow=iCustom(NULL,0, "ZigZag",MODE_LOW,0);
Линии строятся на графике, но при запуске программы оба значения ZigZagHigh и ZigZagLow равны нулю.
Как мне определить тренд индикатора ZigZag с помощью функции icustom?
Спасибо