Системы скальпинга на основе скорости котировок! Подводные камни!
Терминологический словарь рынка Forex – Основные понятия и определения
Описание
Разбираем примеры работы индикаторов рисующих и не рисующих. Отличие сигналов при программировании. Использование параметра shift
Предисловие
Данная статья была написана по просьбам наших друзей.
В моих советниках, при заказе на программирование советника, Вы получаете возможность регулировать сигнальный бар.
Довольно часто в интернете можно встретить жалобы на то, что некоторые советники неправильно работают по индикаторам. Я попытаюсь подробно рассказать о таких сигналах и доказать обратное: все индикаторы рисуют и их нужно правильно употреблять. В данной статье присутствует видеоверсия, но перед тем, как смотреть видео, рекомендую все таки прочитать текстовую версию.
shift (0,1,2…..) Номер бара
Данный параметр представляет собой номер бара, с которого Ваши индикаторы будут брать сигнал. При заказе эксперта Вы должны указать такие параметры определения сигнала: Открывать сделку сразу же после сигнала, или же ждать , пока сигнал сформируется на закрытом баре и открывать сделку только открытии следующего бараНекоторые индикаторы, в силу своих алгоритмов, имеют четкое определение: на каком баре подается сигнал. Если говорить о четкости и правильном исполнении приказа: то сделку необходимо обрабатывать только на закрытом баре т.е. параметр shift=1, Если же необходимо открывать сделку сразу же по наступлению сигнала на текущем баре и индикатор это позволяет необходимо ставить shift=0.
Советник
Советник написан с помощью нашего шаблона для написания советника. Все функции советника описаны на данной странице: Функции советника форекс
Скачать пакет можно по ссылке Пакет тестирования сигнального бара
Индикатор 1. Индикатор Mooving Average
Стандартные индикатор терминала МТ4 имеющий в настройках период усреднения, цены усреднения а также тип усреднения.
Стратегия торговли: Пересечение средних. Пересечение медленной МА и быстрой МА
Код стратегии:
double ExampleMA=iMA(Symbol(),0,20,0,MODE_SMA,PRICE_CLOSE,shift); // Пример Вызова МА
double ExampleMA2=iMA(Symbol(),0,50,0,MODE_SMA,PRICE_CLOSE,shift); // Пример Вызова МА
double ExampleMA23=iMA(Symbol(),0,20,0,MODE_SMA,PRICE_CLOSE,shift+1); // Пример Вызова МА
double ExampleMA22=iMA(Symbol(),0,50,0,MODE_SMA,PRICE_CLOSE,shift+1); // Пример Вызова МАif(ExampleMA23<ExampleMA22 && ExampleMA>ExampleMA2)Sig=1;
if(ExampleMA23>ExampleMA22 && ExampleMA<ExampleMA2)Sig=2;
Примеры работы при shift = 0
Примеры работы при shift = 1
Пояснение: Данный индикатор, в принципе, не рисует, поэтому можно использовать при любом shift.
Пример в видео:
2. Индикатор cross
Пользовательский индикатор по стратегии пересечения МА + какие то фишки. Рисует сильно с хитростью. Т.е. пересечение 1 бара рисует стрелку на 0 баре и постоянно ее перерисовывает.
Стратегия торговли: Торговля по стрелкам
Код стратегии:
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
Пояснение: Данный индикатор очень сильно рисует, при чем разработчик заведомо сделал перерисовку сигнала. Поэтому данный индикатор в качестве сигнального использовать опасно.
Пример в видео:
3. Индикатор CurrencyPowerMeter
Пользовательский индикатор измеряющий силу валют. Данный индикатор работает по объектам поэтому shift не имеет значения. стратегия торговли по данному индикатору основывается на выстаскивании значения не с буфера индикатора, а с показания объекта на графике
Стратегия торговли: Торговля разнице между силами валют
Код стратегии:
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);
Примеры работы
Пояснение: Данный индикатор не имеет индикаторных буферов а строится на объектах. Поэтому сигнальный бар не имеет значения. такие индикаторы нельзя тестировать или оптимизировать . Работа только в режиме реального времени.
Пример в видео:
4. Индикатор Fiji Trend
Пользовательский индикатор работающий на MA и ATR, сигналы в виде стрелок, не рисующий индикатор, но с маленькой хитростью, индикатор берет данные с закрытых баров, но ставит стрелку на текущем 0 баре. это Иллюзия обмана.
Стратегия торговли: торговля по стрелкам индикатора
Код стратегии:
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
Пояснение: Данный индикатор не рисует. Но ставит сигналы с хитростью, которую я указал Выше. Один из немногих индикаторов, которые дает вполне хорошие сигналы
Пример в видео:
5. Индикатор Fisher
Пользовательский индикатор, работающий на Хай Лоу баров и вычисляющий сигнал на основе своих формул. Рисует как показали тесты. Перерисовывает 3-5 баров на закрытых барах. сделан в виде гистограммы
Стратегия торговли: торговля по гистограмме. Пересечение гистограммой 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 – бай 2 – селл
return(Sig);
Примеры работы при shift = 0
Примеры работы при shift = 1
Пояснение: Данный индикатор рисует, поэтому брать с него сигналы я не рекомендую
Пример в видео:
6. Индикатор HMA color
Пользовательский индикатор, работающий на 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
Пояснение: Данный индикатор строит свой сигнал на основе одной линии на графике. Линия меняет цвет, поэтому для того, чтобы взять сигнал необходимо рассчитывать изменение цвета линии
Пример в видео:
7. Индикатор MACD
Стандартный индикатор терминала МТ.
Стратегия торговли: торговля по пересечнию сигнальной линии и гистограммы
Код стратегии:
int Sig=0;
double MACD_SIGNAL1=iMACD(Symbol(),0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,shift); // Пример Вызова МА
double MACD_SIGNAL2=iMACD(Symbol(),0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,shift+1); // Пример Вызова МАdouble MACD_MAIN1=iMACD(Symbol(),0,12,26,9,PRICE_CLOSE,MODE_MAIN,shift); // Пример Вызова МА
double MACD_MAIN2=iMACD(Symbol(),0,12,26,9,PRICE_CLOSE,MODE_MAIN,shift+1); // Пример Вызова МА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
Пояснение: Данный индикатор не перерисовывает на 1 закрытом баре, поэтому можно свободно использовать shift=1
Пример в видео:
8. Индикатор ZIGZAG
Стандартный индикатор терминала МТ. Строит вершины и впадины по хай лоу определенного участка.
Стратегия торговли: торговлю по образованию вершин и впадин. Не рекомендуется играть по индикатору позициями. Хорошая стратегия по лимитникам.
Код стратегии:
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
Пояснение: Данный индикатор рисует вершины и впадины, поэтому shift не имеет значения. Особые условия стратегия позволяют торговать по данному индикатору довольно успешно.
Пример в видео:
9. Работа по барам
Работа по обычнм барам терминала МТ.
Стратегия торговли: Если бар бычий открываем бай, если бар медвежий открываем селл.
Код стратегии:
int Sig=0;
if(Open[shift]<Close[shift])Sig=1;
if(Open[shift]>Close[shift])Sig=2;
Примеры работы при shift = 0
Примеры работы при shift = 1
Пояснение: Очень хороший пример работы параметра shift показывающий как можно играть стратегий по данному параметру
Пример в видео:
Выводы
Данная статья показывает Вам примеры использований разных иникаторов и разное значение параметра shift. Естественно все индикаторы индивидуальны, поэтому при разработке советника учитывается тип индикатора и его сигнал. Но перед тем как заказать программисту – советника. Пожалуйста проверьте Ваш индикатор на момент перерисовки. Ведь от этого зависит то, как Ваш робот будет торговать.
Советник
Советник написан с помощью нашего шаблона для написания советника. Все функции советника описаны на данной странице: Функции советника форекс