Функциональные особенности и параметры экспертов от expforex.com
Преимущества готовых Советников перед программистами / фрилансерами.
Описание
Давайте рассмотрим примеры поведения индикаторов (indicators), сосредоточившись на тех, которые рисуют (draw), и тех, которые этого не делают. Например, рассмотрим, как индикатор баров (bar indicator) может работать иначе по сравнению с другими.
Различия сигналов в программировании. Использование параметра сдвига (shift parameter)
Для лучшего понимания работы индикаторов (indicators) полезно изучить примеры как рисующих индикаторов (drawing indicators), так и нерисующих индикаторов (non-drawing indicators).
Рисующие индикаторы (Repaint) — это те, которые отображаются непосредственно на ценовом графике (price chart), в то время как нерисующие индикаторы (non-drawing indicators) показывают свои результаты в отдельном окне.?????? НЕТ
Рисующие или перерисовывающие индикаторы (Redrawing Indicators) — это технические инструменты, используемые в торговле, которые изменяют свои сигналы (signals) (например, стрелки) или направление сигнала (signal direction), чтобы предоставить более точные указания на текущих или предыдущих баров (bars).
Bar = Бар = Свеча:
Эти индикаторы (indicators) обладают способностью перерисовывать свои сигналы (signals), что может рассматриваться как нарушение торговой целостности и обманная практика.
Некоторые индикаторы (indicators) намеренно перерисовывают свои сигналы (signals) для повышения визуальной привлекательности, делая график более эстетичным.
Другие индикаторы (indicators) выполняют перерисовку как часть своих математических вычислений для улучшения точности и надежности генерируемых сигналов.
Однако нормальным поведением для всех индикаторов (indicators) является рисование на 0-м баре (bar) или на текущем баре (current bar). Это начальное рисование гарантирует, что индикатор правильно выровнен с последними рыночными данными.
Давайте исследуем основные причины, по которым индикаторы (indicators) перерисовывают свои сигналы (signals), и как это влияет на торговые стратегии.
Различие в сигналах между этими двумя типами индикаторов может быть значительным, поэтому понимание их поведения критически важно при программировании торговых стратегий (trading strategies).
Одним из способов влиять на поведение индикаторов (indicators) является использование параметра сдвига (shift parameter), который позволяет смещать вывод индикатора вперед или назад во времени.
Экспериментируя с различными значениями параметра сдвига (shift parameter), вы можете точно настроить свои индикаторы (indicators), чтобы они лучше соответствовали вашей торговой стратегии (trading strategy), тем самым увеличивая ваши шансы на успех на рынке.
И вы можете проверить такие индикаторы с помощью тестера стратегий, используя нашего универсального Советника (Expert Advisor):
EA The xCustomEA: Универсальный торговый советник (Expert Advisor) для iCustom Indicators. Создатель пользовательских стратегий (Custom Strategy Builder)
Или в тестере стратегий, используя наш Симулятор:
Предисловие
Эта статья написана по запросу наших партнеров.
При заказе программирования Советника (Expert Advisor) вы можете настроить сигнальный бар (signal bar) во всех моих советниках.
Часто можно встретить жалобы в интернете, что некоторые Советники (Expert Advisors) не работают корректно из-за их индикаторов (indicators).
Я подробно объясню эти сигналы и продемонстрирую обратное: все индикаторы (indicators) рисуют, и их просто нужно использовать правильно.
Существует видео версия этой статьи, но перед просмотром рекомендую прочитать текстовую версию для более глубокого понимания.
Сдвиг (shift) Бар Номер (0,1,2…..)
Этот параметр представляет номер Бара (Bar), с которого ваши индикаторы (indicators) будут брать сигнал.
При заказе Советника (Expert Advisor) необходимо указать следующие параметры определения сигнала: открыть сделку сразу после сигнала или дождаться формирования сигнала на закрытом Баре (Bar) и открыть сделку только при открытии следующего Бара (Bar).
Из-за их алгоритмов некоторые индикаторы (indicators) имеют четкое определение: на каком Баре (Bar) дается сигнал?
Если говорить о ясности и правильном выполнении заказа, то сделка должна обрабатываться только на закрытом Баре (Bar), то есть параметр shift=1.
Если необходимо открыть сделку сразу после возникновения сигнала на текущем Баре (Bar) и индикатор (indicator) позволяет это, требуется установить shift=0.
Советник (Expert Advisor)
EA написан с использованием нашего шаблона для написания EA. Все функции советника описаны на этой странице: Функции Советника Forex.
Вы можете скачать пакет по ссылке Сигнальный Бар Пакет для Тестирования
1. Индикатор Скользящей Средней (Moving Average Indicator)
Стандартный индикатор терминала MT4 включает период усреднения, усредняемые цены и тип усреднения в настройках.
Торговая Стратегия: Пересечение скользящих средних (Crossover of averages). Пересечение медленной MA и быстрой MA.
Код Стратегии:
double ExampleMA=iMA(Symbol(),0,20,0,MODE_SMA,PRICE_CLOSE,shift); // Вызов MA Example double ExampleMA2=iMA(Symbol(),0,50,0,MODE_SMA,PRICE_CLOSE,shift); // Вызов MA Example double ExampleMA23=iMA(Symbol(),0,20,0,MODE_SMA,PRICE_CLOSE,shift+1); // Вызов MA Example double ExampleMA22=iMA(Symbol(),0,50,0,MODE_SMA,PRICE_CLOSE,shift+1); // Вызов MA Example if(ExampleMA23<ExampleMA22 && ExampleMA>ExampleMA2) Sig=1; if(ExampleMA23>ExampleMA22 && ExampleMA<ExampleMA2) Sig=2;
Примеры работы с Shift = 0
Примеры работы с Shift = 1
Пояснение: Этот индикатор (indicator) (non-drawing) не рисует (draw), что позволяет использовать его с любым сдвигом (shift).
Видео Пример:
2. Индикатор Пересечения (Indicator Cross)
Пользовательский индикатор (indicator) основанный на стратегии пересечения MA с дополнительными функциями. Он явно рисует с точностью. Пересечение на 1 Баре (Bar) рисует стрелку на 0 Баре (Bar) и постоянно ее перерисовывает.
Торговая Стратегия: Торговля на стрелках
Код Стратегии:
int Sig=0; if(shift!=-1) { double UP=iCustom(Symbol(),0,"cross",0,shift); double DN=iCustom(Symbol(),0,"cross",1,shift); } if(shift==-1) for(int i=1;i<=100;i++) { UP=iCustom(Symbol(),0,"cross",0,i); DN=iCustom(Symbol(),0,"cross",1,i); if(UP!=EMPTY_VALUE || DN!=EMPTY_VALUE) break; } if(UP!=EMPTY_VALUE){Sig=1;} if(DN!=EMPTY_VALUE){Sig=2;}
Примеры работы с Shift = 0
Примеры работы с Shift = 1
Примеры работы с Shift = -1
Пояснение: Этот индикатор (indicator) явно рисует, и разработчик намеренно перерисовывает сигнал. Поэтому использование этого индикатора (indicator) в качестве сигнального индикатора (signal indicator) является рискованным.
Видео Пример:
3. Индикатор CurrencyPowerMeter
Пользовательский индикатор (indicator), измеряющий силу валют. Этот индикатор (indicator) работает с использованием объектов, поэтому сдвиг (shift) не имеет значения. Торговая стратегия (trading strategy) для этого индикатора (indicator) основана на извлечении значения не из буфера индикатора (indicator buffer), а из указания объекта на графике.
Торговая Стратегия: Торговля разницей в силе валют
Код Стратегии:
double EUR_HOUR[1]; double GBP_HOUR[1]; double AUD_HOUR[1]; double NZD_HOUR[1]; double USD_HOUR[1]; double CAD_HOUR[1]; double CHF_HOUR[1]; double JPY_HOUR[1]; double PervayaValuta; double VtorayaValuta; string note=" Authentication SETTINGS =="; string username = ""; string password = ""; double trend; string DATATRend; trend=iCustom(Symbol(),0,"CurrencyPowerMeter",0,0); EUR_HOUR[0]=StringToDouble(ObjectDescription("CPMEUR_Str_h")); GBP_HOUR[0]=StringToDouble(ObjectDescription("CPMGBP_Str_h")); AUD_HOUR[0]=StringToDouble(ObjectDescription("CPMAUD_Str_h")); NZD_HOUR[0]=StringToDouble(ObjectDescription("CPMNZD_Str_h")); USD_HOUR[0]=StringToDouble(ObjectDescription("CPMUSD_Str_h")); CAD_HOUR[0]=StringToDouble(ObjectDescription("CPMCAD_Str_h")); CHF_HOUR[0]=StringToDouble(ObjectDescription("CPMCHF_Str_h")); JPY_HOUR[0]=StringToDouble(ObjectDescription("CPMJPY_Str_h")); if(StringSubstr(Symbol(),0,3)=="USD") PervayaValuta=USD_HOUR[0]; if(StringSubstr(Symbol(),0,3)=="GBP") PervayaValuta=GBP_HOUR[0]; if(StringSubstr(Symbol(),0,3)=="EUR") PervayaValuta=EUR_HOUR[0]; if(StringSubstr(Symbol(),0,3)=="AUD") PervayaValuta=AUD_HOUR[0]; if(StringSubstr(Symbol(),0,3)=="NZD") PervayaValuta=NZD_HOUR[0]; if(StringSubstr(Symbol(),0,3)=="CAD") PervayaValuta=CAD_HOUR[0]; if(StringSubstr(Symbol(),0,3)=="CHF") PervayaValuta=CHF_HOUR[0]; if(StringSubstr(Symbol(),0,3)=="JPY") PervayaValuta=JPY_HOUR[0]; if(StringSubstr(Symbol(),3,3)=="USD") VtorayaValuta=USD_HOUR[0]; if(StringSubstr(Symbol(),3,3)=="GBP") VtorayaValuta=GBP_HOUR[0]; if(StringSubstr(Symbol(),3,3)=="EUR") VtorayaValuta=EUR_HOUR[0]; if(StringSubstr(Symbol(),3,3)=="AUD") VtorayaValuta=AUD_HOUR[0]; if(StringSubstr(Symbol(),3,3)=="NZD") VtorayaValuta=NZD_HOUR[0]; if(StringSubstr(Symbol(),3,3)=="CAD") VtorayaValuta=CAD_HOUR[0]; if(StringSubstr(Symbol(),3,3)=="CHF") VtorayaValuta=CHF_HOUR[0]; if(StringSubstr(Symbol(),3,3)=="JPY") VtorayaValuta=JPY_HOUR[0]; if(PervayaValuta - VtorayaValuta > 0) return(1); if(PervayaValuta - VtorayaValuta < 0) return(2); return(0);
Примеры работы
Пояснение: Этот индикатор (indicator) не имеет буферов индикатора (indicator buffers) и основан на объектах. Поэтому сигнальный бар (signal bar) не имеет значения. Такие индикаторы (indicators) не могут быть протестированы или оптимизированы и работают только в реальном времени.
Видео Пример:
4. Индикатор Fiji Trend
Пользовательский индикатор (indicator), работающий на сигналах MA и ATR в виде стрелок. Он не рисует (draw) индикатор, но с небольшим трюком индикатор берет данные из закрытых Баров (Bars) и размещает стрелку на текущем 0 Баре (Bar). Это иллюзия обмана.
Торговая Стратегия: Торговля на стрелках индикатора (indicator)
Код Стратегии:
int Sig=0; double DNSignal=iCustom(Symbol(),0,"Fiji Trend",3,shift); // Пример вызова пользовательского индикатора double UPSignal=iCustom(Symbol(),0,"Fiji Trend",2,shift); // Пример вызова пользовательского индикатора double DNTrend=iCustom(Symbol(),0,"Fiji Trend",1,shift); // Пример вызова пользовательского индикатора double UPTrend=iCustom(Symbol(),0,"Fiji Trend",0,shift); // Пример вызова пользовательского индикатора // Укажите сигналы для открытия: if( UPSignal!=EMPTY_VALUE) Sig=1; if( DNSignal!=EMPTY_VALUE) Sig=2;
Примеры работы с Shift = 0
Примеры работы с Shift = 1
Пояснение: Этот индикатор (indicator) (non-drawing) не рисует (draw). Однако он размещает сигналы, используя упомянутый трюк. Это один из немногих индикаторов (indicators), которые предоставляют разумно хорошие сигналы.
Видео Пример:
5. Индикатор Fisher
Пользовательский индикатор (indicator), работающий на Hi-Lo Баров (Bars) и вычисляющий сигналы на основе своих формул. Он рисует, как демонстрируют тесты, и перерисовывает 3-5 Баров (Bars) на закрытых Барах (Bars), представленных в виде гистограммы.
Торговая Стратегия: Торговля на гистограмме. Пересечение гистограммы с 0 меткой.
Код Стратегии:
int Sig=0; double DNSignal=iCustom(Symbol(),0,"Fiji Trend",3,shift); // Пример вызова пользовательского индикатора double Fisher1=iCustom(Symbol(),0,"fisher",0,shift); double Fisher2=iCustom(Symbol(),0,"fisher",0,shift); if( Fisher1>0 && Fisher2>0 ){ Sig=1; } if( Fisher1<0 && Fisher2<0 ){ Sig=2; } // 1 - Покупка (Buy), 2 - Продажа (Sell) return(Sig);
Примеры работы с Shift = 0
Примеры работы с Shift = 1
Пояснение: Этот индикатор (indicator) рисует, поэтому я не рекомендую брать сигналы с него.
Видео Пример:
6. Индикатор HMA Color
Пользовательский индикатор (indicator), работающий на MA и вычисляющий сигналы на основе своих формул.
Торговая Стратегия: Торговля на изменении цвета
Код Стратегии:
int Sig=0; double HMARED=iCustom(Symbol(),0,"HMA Color",3,shift); double HMAGREEN=iCustom(Symbol(),0,"HMA Color",1,shift); double HMARED2=iCustom(Symbol(),0,"HMA Color",3,shift+1); double HMAGREEN2=iCustom(Symbol(),0,"HMA Color",1,shift+1); // Укажите сигналы для открытия: if(HMAGREEN!=EMPTY_VALUE && HMAGREEN2==EMPTY_VALUE) Sig=1; if(HMARED!=EMPTY_VALUE && HMARED2==EMPTY_VALUE) Sig=2;
Примеры работы с Shift = 0
Примеры работы с Shift = 1
Пояснение: Этот индикатор (indicator) (non-drawing) не рисует (draw). Однако он размещает сигналы, используя упомянутый трюк. Это один из немногих индикаторов (indicators), которые предоставляют разумно хорошие сигналы.
Видео Пример:
7. Индикатор MACD
Стандартный индикатор (indicator) терминала MT.
Торговая Стратегия: Торговля на пересечении сигнальной линии и гистограммы
Код Стратегии:
int Sig=0; double MACD_SIGNAL1=iMACD(Symbol(),0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,shift); // Вызов MA Example double MACD_SIGNAL2=iMACD(Symbol(),0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,shift+1); // Вызов MA Example double MACD_MAIN1=iMACD(Symbol(),0,12,26,9,PRICE_CLOSE,MODE_MAIN,shift); // Вызов MA Example double MACD_MAIN2=iMACD(Symbol(),0,12,26,9,PRICE_CLOSE,MODE_MAIN,shift+1); // Вызов MA Example if(MACD_SIGNAL2<MACD_MAIN2 && MACD_SIGNAL1>MACD_MAIN1) Sig=1; if(MACD_SIGNAL2>MACD_MAIN2 && MACD_SIGNAL1<MACD_MAIN1) Sig=2;
Примеры работы с Shift = 0
Примеры работы с Shift = 1
Пояснение: Этот индикатор (indicator) не перерисовывает (redraw) на 1 закрытом Баре (Bar), поэтому вы можете свободно использовать shift=1.
Видео Пример:
8. Индикатор ZIGZAG
Стандартный индикатор (indicator) терминала MT. Строит вершины и впадины на основе high-low (максимум-минимум) определенной области.
Торговая Стратегия: Торговля на формировании вершин и впадин. Не рекомендуется торговать на индикаторе (indicator) с позициями. Это хорошая стратегия ограничения (limit strategy).
Код Стратегии:
int Sig=0; double PriceZZ1=GetExtremumZZPrice(Symbol(),0,1); double PriceZZ2=GetExtremumZZPrice(Symbol(),0,2); double priceUP, priceDN; if(PriceZZ2>PriceZZ1) { priceUP=PriceZZ2; priceDN=PriceZZ1; Sig=2; } if(PriceZZ2<PriceZZ1) { priceUP=PriceZZ1; priceDN=PriceZZ2; Sig=1; }
Примеры работы с Shift = 0
Пояснение: Этот индикатор (indicator) рисует вершины и впадины, поэтому сдвиг (shift) не имеет значения. Уникальные условия стратегии (strategy) позволяют успешно торговать на этом индикаторе (indicator).
Видео Пример:
9. Работа BARS по запросу
Работает на стандартных Барах (Bars) терминала MT.
Торговая Стратегия: Если Бар (Bar) бычий, открыть покупку (buy); если Бар (Bar) медвежий, открыть продажу (sell).
Код Стратегии:
int Sig=0; if(Open[shift] < Close[shift]) Sig=1; if(Open[shift] > Close[shift]) Sig=2;
Примеры работы с Shift = 0
Примеры работы с Shift = 1
Пояснение: Отличный пример того, как работает параметр сдвига (shift parameter), демонстрируя, как можно торговать стратегиями (strategies), основанными на этом параметре.
Видео Пример:
Заключение
Эта информативная статья предоставляет полезные примеры использования различных индикаторов (indicators) с разными значениями параметра сдвига (shift parameter).
Каждый индикатор (indicator) уникален, поэтому при создании Советника (Expert Advisor) необходимо учитывать тип индикатора (indicator) и его сигнал.
Перед наймом программиста для создания Советника (Expert Advisor) важно сначала протестировать ваш индикатор (indicator) на предмет потенциальных проблем с перерисовкой (redrawing).
Это критически важно, так как надежность и эффективность сделок вашего робота будут зависеть от точности вашего индикатора (indicator).
Поэтому рекомендуется тщательно проверить и протестировать ваш индикатор (indicator) перед созданием вашего Советника (Expert Advisor).
Советник (Advisor)
EA написан с использованием нашего шаблона для написания EA.
Все функции советника описаны на этой странице: Функции Советника Forex.
Если вы хотите создать оповещение для вашего индикатора (indicator), пожалуйста, прочитайте нашу статью:
Вопросы?
Если у вас есть вопросы, пожалуйста, задавайте их. Мы не продаем кота в мешке.
Каждый из наших продуктов можно протестировать перед покупкой.
Мы ценим ваши отзывы и пожелания по нашим продуктам и стремимся поддерживать высокие стандарты качества.
Спасибо, что вы с нами!
У вас есть вопрос?
This post is also available in: English Українська Portuguese Español Deutsch Chinese Русский Français Italiano Türkçe 日本語 한국어
Leave a Reply