Народ, помогите!
Работал с индюками, а сейчас решил освоить советников.
По индикаторам работа была как правило по принципу пересечение двух линий = сигнал. Для формирования буферов вывода мы работали с ценами, использовали циклы, условия выхода из которых опирались на функцию IndicatorCounted. И все было ясно.
С совой не понятен один момент - чем заменить IndicatorCounted и как правильно формировать массив (сформировать раз, а далее дополнять новым элементом только при появлении нового бара) с переменными double, чтобы работать как с ними, так и с их iMa??
Если в индюке было так, то чем заменять в сове?
Народ, помогите!
Работал с индюками, а сейчас решил освоить советников.
По индикаторам работа была как правило по принципу пересечение двух линий = сигнал. Для формирования буферов вывода мы работали с ценами, использовали циклы, условия выхода из которых опирались на функцию IndicatorCounted. И все было ясно.
С совой не понятен один момент - чем заменить IndicatorCounted и как правильно формировать массив (сформировать раз, а далее дополнять новым элементом только при появлении нового бара) с переменными double, чтобы работать как с ними, так и с их iMa??
Если в индюке было так, то чем заменять в сове?
Вам возможно и не нужно много элементов, часто используется только по закрытому бару, в таком случае достаточно
double MA = iMA(NULL,0,13,8,MODE_SMMA,PRICE_MEDIAN,1);
Если нужно больше, то пробежать в цикле на образовании нового бара, и получить по номеру бара его значение
for(int i=10; i>0; i--) { // ищем по последним 10 барам MA = iMA(NULL,0,13,8,MODE_SMMA,PRICE_MEDIAN,i); // если нашли - запись значения: MA=? и выход: break; }
Вариантов много, всё зависит от задачи
Запихнуть индикатор в советник поможет "#resource"
#resource "\\Indicators\\myInd.ex4"
Получить значение индикатора
double Ind = iCustom(_Symbol,0,"::Indicators\\myInd.ex4",0,1);
Вам возможно и не нужно много элементов, часто используется только по закрытому бару, в таком случае достаточно
Если нужно больше, то пробежать в цикле на образовании нового бара, и получить по номеру бара его значение
Вариантов много, всё зависит от задачи
Запихнуть индикатор в советник поможет "#resource"
Получить значение индикатора
Виталий, я так и думал сделать. Мне нужны будут 2 периода усреднения 9 и 120. Думал есть более корректные способы, чтобы не гонять заново по 120 барам.
Попробую сделать и так и с подключением индюка.
Спасибо!
никакие буферы и всякие массивы не нужны по идее. Просто изучи стандартные роботы MACDsample и MovingAverage, которые есть в МТ4.
А отдельный индикатор будет тормозить тестирование на тестере.
Народ, помогите!
Работал с индюками, а сейчас решил освоить советников.
По индикаторам работа была как правило по принципу пересечение двух линий = сигнал. Для формирования буферов вывода мы работали с ценами, использовали циклы, условия выхода из которых опирались на функцию IndicatorCounted. И все было ясно.
С совой не понятен один момент - чем заменить IndicatorCounted и как правильно формировать массив (сформировать раз, а далее дополнять новым элементом только при появлении нового бара) с переменными double, чтобы работать как с ними, так и с их iMa??
Если в индюке было так, то чем заменять в сове?
Делаю так:
//+------------------------------------------------------------------+ //| ProjectName | //| Copyright 2012, CompanyName | //| http://www.companyname.net | //+------------------------------------------------------------------+ double ind[53]; bool stat=true; datetime Tm[1]; //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { //--- int i; datetime NTm[1]; CopyTime(_Symbol,_Period,0,1,NTm); if(Tm[0]!=NTm[0]) { if(stat==true) { for(i=52;i>0;i--) IND(i); stat=false; } IND(0); //--- //--- for(i=52;i>0;i--) ind[i]=ind[i-1]; //--- Tm[0]=NTm[0]; } //--- return; //--- } //+------------------------------------------------------------------+
Делаю так:
Всем большое спасибо!
Разобрался!!
индюка запихнуть в сову
Погуглите эту фразу. Может что полезного найдёте. :)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Народ, помогите!
Работал с индюками, а сейчас решил освоить советников.
По индикаторам работа была как правило по принципу пересечение двух линий = сигнал. Для формирования буферов вывода мы работали с ценами, использовали циклы, условия выхода из которых опирались на функцию IndicatorCounted. И все было ясно.
С совой не понятен один момент - чем заменить IndicatorCounted и как правильно формировать массив (сформировать раз, а далее дополнять новым элементом только при появлении нового бара) с переменными double, чтобы работать как с ними, так и с их iMa??
Если в индюке было так, то чем заменять в сове?