Ответ
 
Опции темы
Старый 07.06.2014, 06:13   #2821 (permalink)
Местный знаток
За призовое место в конкурсе 

 
Аватар для ansol
 
Регистрация: 22.04.2010
Сообщений: 2,009
Репутация: 829
ansol - ansol - ansol - ansol - ansol - ansol - ansol -
Сказал(а) спасибо: 236
Поблагодарили 843 раз(а) в 554 сообщениях
Поинты: 1308
Сообщение от abuuuuuu Посмотреть сообщение
есть стрелочный индикатор по нему нужно написать советника но как это сделать я не знаю
Попробуйте начать изучение MQL4 с этого:
Цитата:
ObjectFind

Ищет объект с указанным именем. Существует два варианта функции:

int ObjectFind(
long chart_id, // идентификатор графика
string object_name // имя объекта
);
Стрелка на графике - это объект, список объектов доступен по правой кнопке мыши на графике.
Или вам надо, что бы кто-нибудь другой написал?
Тогда индикатор в студию и не в этой теме
ansol вне форума   Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
abuuuuuu (07.06.2014)
Старый 09.06.2014, 16:47   #2822 (permalink)
Интересующийся
 
Аватар для salco85
 
Регистрация: 30.01.2013
Сообщений: 52
Репутация: 3
salco85
Сказал(а) спасибо: 42
Поблагодарили 2 раз(а) в 2 сообщениях
Поинты: 44
Всем здравствуйте!!! просьба подскажите пожалуйста как прописать в коде стандартного индикатора дивергенцию
salco85 вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 09.06.2014, 20:16   #2823 (permalink)
Активный участник
 
Аватар для ron2009
 
Регистрация: 03.04.2014
Адрес: Владивосток
Сообщений: 104
Репутация: 77
ron2009
Сказал(а) спасибо: 208
Поблагодарили 76 раз(а) в 32 сообщениях
Поинты: 34
Pomogite vstavit vtoroi indicator v exp_icustom v10 shablon.
Odin indicator strelochnii a vtoroi na izmenenie tsveta. Nuzhno shtobi oba uchitivalis na otkritie i na zakritie. Tknite nosom kakuyu shast exp_iCustom Scripta posmotret ili izmenit.
Ja znayu shto tolko rabotaet s odnim indicatorom na otkritie i vtoroi na zakritie.
ron2009 вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 10.06.2014, 06:23   #2824 (permalink)
◅ ♛ ♠ ♣ ♥ ♦ ♛ ▻
 
Аватар для tommy27
 
Регистрация: 16.10.2011
Адрес: Новосибирск
Сообщений: 1,054
Репутация: 3189
tommy27 tommy27 tommy27 tommy27 tommy27 tommy27 tommy27 tommy27 tommy27 tommy27 tommy27
Сказал(а) спасибо: 2,326
Поблагодарили 3,184 раз(а) в 875 сообщениях
Поинты: 570
Отправить сообщение для tommy27 с помощью Skype™
Сообщение от salco85 Посмотреть сообщение
Всем здравствуйте!!! просьба подскажите пожалуйста как прописать в коде стандартного индикатора дивергенцию
Один из вариантов "моторчика" будет выглядеть вот так:

Скрытый текст

PHP код:
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void CatchBullishDivergence(int shift)
  {
   if(
IsIndicatorTrough(shift) == false)
       return;
   
int currentTrough shift;
   
int lastTrough GetIndicatorLastTrough(shift);
   if(
OsMA[currentTrough] > OsMA[lastTrough] && Low[currentTrough] < Low[lastTrough])
     {
      
bullishDivergence[currentTrough] = OsMA[currentTrough];
      if(
drawDivergenceLines == true)
        {
          
DrawPriceTrendLine(Time[currentTrough], Time[lastTrough], Low[currentTrough], 
                             
Low[lastTrough], GreenSTYLE_SOLID);
          
DrawIndicatorTrendLine(Time[currentTrough], Time[lastTrough], OsMA[currentTrough],
                                 
OsMA[lastTrough], GreenSTYLE_SOLID);
        }
      if(
displayAlert == true)
          
DisplayAlert("Classical bullish divergence on: "currentTrough);  
     }
   if(
OsMA[currentTrough] < OsMA[lastTrough] && Low[currentTrough] > Low[lastTrough])
     {
      
bullishDivergence[currentTrough] = OsMA[currentTrough];
      if(
drawDivergenceLines == true)
        {
          
DrawPriceTrendLine(Time[currentTrough], Time[lastTrough], Low[currentTrough], 
                             
Low[lastTrough], GreenSTYLE_DOT);
          
DrawIndicatorTrendLine(Time[currentTrough], Time[lastTrough], OsMA[currentTrough],
                                 
OsMA[lastTrough], GreenSTYLE_DOT);
        }
      if(
displayAlert == true)
          
DisplayAlert("Reverse bullish divergence on: "currentTrough);   
     }      
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void CatchBearishDivergence(int shift)
  {
   if(
IsIndicatorPeak(shift) == false)
       return;
   
int currentPeak shift;
   
int lastPeak GetIndicatorLastPeak(shift);
   
   if(
OsMA[currentPeak] < OsMA[lastPeak] && High[currentPeak] > High[lastPeak])
     {
       
bearishDivergence[currentPeak] = OsMA[currentPeak];
       if(
drawDivergenceLines == true)
         {
           
DrawPriceTrendLine(Time[currentPeak], Time[lastPeak], High[currentPeak], 
                              
High[lastPeak], RedSTYLE_SOLID);
           
DrawIndicatorTrendLine(Time[currentPeak], Time[lastPeak], OsMA[currentPeak],
                                  
OsMA[lastPeak], RedSTYLE_SOLID);
         }
       if(
displayAlert == true)
           
DisplayAlert("Classical bearish divergence on: "currentPeak);  
     }
   if(
OsMA[currentPeak] > OsMA[lastPeak] && High[currentPeak] < High[lastPeak])
     {
       
bearishDivergence[currentPeak] = OsMA[currentPeak];
       if(
drawDivergenceLines == true)
         {
           
DrawPriceTrendLine(Time[currentPeak], Time[lastPeak], High[currentPeak], 
                              
High[lastPeak], RedSTYLE_DOT);
           
DrawIndicatorTrendLine(Time[currentPeak], Time[lastPeak], OsMA[currentPeak],
                                  
OsMA[lastPeak], RedSTYLE_DOT);
         }
       if(
displayAlert == true)
           
DisplayAlert("Reverse bearish divergence on: "currentPeak);   
     }   
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
bool IsIndicatorPeak(int shift)
  {
   if(
OsMA[shift] > && OsMA[shift] > OsMA[shift+1] && OsMA[shift] > OsMA[shift-1])
     {
       for(
int i shift 1Barsi++)
         {
           if(
OsMA[i] < 0)
              return(
true);
           if(
OsMA[i] > OsMA[shift])
              break;            
         }
     }   
   return(
false);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
bool IsIndicatorTrough(int shift)
  {
   if(
OsMA[shift] < && OsMA[shift] < OsMA[shift+1] && OsMA[shift] < OsMA[shift-1])
     {
       for(
int i shift 1Barsi++)
         {
           if(
OsMA[i] > 0)
               return(
true);
           if(
OsMA[i] < OsMA[shift])
               break;            
         }
     }   
   return(
false);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int GetIndicatorLastPeak(int shift)
  {
    for(
int i shift 5Barsi++)
      {
        if(
OsMA[i] >= OsMA[i+1] && OsMA[i] > OsMA[i+2] &&
           
OsMA[i] >= OsMA[i-1] && OsMA[i] > OsMA[i-2])
            return(
i);
      }
    return(-
1);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int GetIndicatorLastTrough(int shift)
  {  
    for(
int i shift 5Barsi++)
      {
        if(
OsMA[i] <= OsMA[i+1] && OsMA[i] < OsMA[i+2] &&
           
OsMA[i] <= OsMA[i-1] && OsMA[i] < OsMA[i-2])
            return(
i);
      }
    return(-
1);
  } 
[свернуть]


во вложении индюк из которого это взято.
Вложения:
Тип файла: mq4 FX5_Divergence_V2.1.mq4 (11.3 Кб, 10 просмотров)
tommy27 вне форума   Ответить с цитированиемОтветить с цитированием  
2 пользователя(ей) сказали cпасибо:
abuuuuuu (10.06.2014), salco85 (10.06.2014)
Старый 10.06.2014, 08:25   #2825 (permalink)
Интересующийся
 
Аватар для salco85
 
Регистрация: 30.01.2013
Сообщений: 52
Репутация: 3
salco85
Сказал(а) спасибо: 42
Поблагодарили 2 раз(а) в 2 сообщениях
Поинты: 44
Привет!!! я вчера это все проделывал не почучается,дело в том что индикатор ROC и как мне в нем прописать эти условия а тот индюк он то основан на OSME вообщем Вы понимаете!!!
salco85 вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 10.06.2014, 14:59   #2826 (permalink)
◅ ♛ ♠ ♣ ♥ ♦ ♛ ▻
 
Аватар для tommy27
 
Регистрация: 16.10.2011
Адрес: Новосибирск
Сообщений: 1,054
Репутация: 3189
tommy27 tommy27 tommy27 tommy27 tommy27 tommy27 tommy27 tommy27 tommy27 tommy27 tommy27
Сказал(а) спасибо: 2,326
Поблагодарили 3,184 раз(а) в 875 сообщениях
Поинты: 570
Отправить сообщение для tommy27 с помощью Skype™
Сообщение от salco85 Посмотреть сообщение
Привет!!! я вчера это все проделывал не почучается,дело в том что индикатор ROC и как мне в нем прописать эти условия а тот индюк он то основан на OSME вообщем Вы понимаете!!!
понимаю!!! в коде индюка FX5_Divergence прописываете входные параметры ROCa -если они есть и хотите их потом менять
и далее меняете
PHP код:
OsMA[i] = iOsMA(NULL0fastEMAslowEMAsignalPRICE_CLOSEi); 
на
PHP код:
OsMA[i] =iCustom(NULL,0,"ROC",параметрыi); 
ну и если без зачистки следов от осмы то это всё что необходимо сделать!!!

Последний раз редактировалось tommy27; 10.06.2014 в 15:06.
tommy27 вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 14.06.2014, 12:11   #2827 (permalink)
prt
Интересующийся
 
Аватар для prt
 
Регистрация: 14.06.2014
Сообщений: 3
Репутация: 1
prt
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Поинты: 8

По умолчанию Значение индикатора.


Здравствуйте. Никак не могу достать значение индикатора поданное в таком формате SetIndexBuffer(7, arrA);

При вызове с помощью

L7 = iCustom(NULL,0,"777",5,1,1,7,1);

Выводит результат Print("L7= ", NormalizeDouble(L7,5));

как L7= 2147483647.0

Спасибо.
prt вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 14.06.2014, 13:35   #2828 (permalink)
Программист mql4 mql5
 
Аватар для AlexeyVik
 
Регистрация: 19.11.2009
Сообщений: 2,519
Репутация: 3644
AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik
Сказал(а) спасибо: 1,111
Поблагодарили 3,648 раз(а) в 1,469 сообщениях
Поинты: 2006
Сообщение от prt Посмотреть сообщение
Здравствуйте. Никак не могу достать значение индикатора поданное в таком формате SetIndexBuffer(7, arrA);

При вызове с помощью

L7 = iCustom(NULL,0,"777",5,1,1,7,1);

Выводит результат Print("L7= ", NormalizeDouble(L7,5));

как L7= 2147483647.0

Спасибо.
На форуме mql4 тебе правильно ответили. Это пустое значение. Посмотри в окне данных показывает-ли значение на этом баре. Если хочешь более детальный ответ выложи индикатор о котором идёт речь.
AlexeyVik на форуме   Ответить с цитированиемОтветить с цитированием  
Старый 17.06.2014, 17:39   #2829 (permalink)
Прохожий
 
Аватар для Anna2014
 
Регистрация: 17.06.2014
Сообщений: 2
Репутация: 1
Anna2014
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Поинты: 2
Подскажите пожалуйста как добавить функцию Period() если единственный буфер == Low, и ни каких иных буферов или функций более нет.
Anna2014 вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 17.06.2014, 17:57   #2830 (permalink)
Прохожий
 
Аватар для Anna2014
 
Регистрация: 17.06.2014
Сообщений: 2
Репутация: 1
Anna2014
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Поинты: 2
Сообщение от Walt6730 Посмотреть сообщение
Господа,

Очень нужна помощь. Имеется индикатор, очень простой и всем, наверное, известный: Trend Magic. Основан на двух стандартных индикаторах: CCI(50) и ATR(5). Рисует очень красивые линии на графике. У меня, как чайника в программировании, имеется вопрос: как из значений CCI и ATR получается значение, которое отображается на графике цены и по которому рисуется эта самая линия? Можете вывести формулу?
Формула индикатора CCI:
Сначала рассчитывается характерная цена (Typical Price):

Рассчитывается простая скользящая средняя от характерной цены:

Рассчитывается вероятное (срединное) отклонение.

где
Формула самого индикатора CCI будет выглядеть следующим образом:

Расчетная формула ATR:

ATR = Moving Average(TRj, n),
где
TRj = максимальному из модулей трех значений
|High - Low|, |High - Closej-1|, |Low - Closej-1|.
Anna2014 вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 18.06.2014, 13:25   #2831 (permalink)
Почётный гражданин
 
Аватар для qqmber
 
Регистрация: 20.01.2013
Сообщений: 530
Репутация: 386
qqmber - qqmber - qqmber - qqmber -
Сказал(а) спасибо: 57
Поблагодарили 386 раз(а) в 254 сообщениях
Поинты: 439
Сообщение от Anna2014 Посмотреть сообщение
Подскажите пожалуйста как добавить функцию Period() если единственный буфер == Low, и ни каких иных буферов или функций более нет.
Что-то уж очень лаконично вопрос задан. Если нужно узнать Low другого периода, то есть функция iLow().
qqmber вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 18.06.2014, 14:21   #2832 (permalink)
Интересующийся
 
Аватар для tench72
 
Регистрация: 09.01.2012
Сообщений: 8
Репутация: 1
tench72
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Поинты: 6
Всем привет, подскажите пожалуйста как переделать код индикатора в функцию в коде другого индюка. Я использую iСustom(), там их две функции в одном коде индикатора, а iСustom() ооооочень сильно грузят мой терминал, хотя комп вроде нормальный по параметрам!!!!!!!
tench72 вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 18.06.2014, 14:50   #2833 (permalink)
Интересующийся
 
Аватар для tench72
 
Регистрация: 09.01.2012
Сообщений: 8
Репутация: 1
tench72
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Поинты: 6

По умолчанию Переделка индикатора в функцию


Совсем забыл нужно переделать во внутреннюю функцию индикатор стохастик Ди Наполи, функция должна возвращать значения нулевого буфера стохастика, не сигнальную линию
Код стохастика прикладываю в сообщениии, а в программе я использовал функцию iCustom() c параметрами:
BuferStoh[i] = iCustom(NULL,0,"StochasticDiNapoli",FastK,SlowK,Sl owD, 0, i);
И терминал грузится пипец, так как я еще использую внутри кода стандартную функцию iCCI()
Помогите плиз кто может
Вложения:
Тип файла: mq4 StochasticDiNapoli.mq4 (4.7 Кб, 4 просмотров)
tench72 вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 18.06.2014, 15:58   #2834 (permalink)
Программист mql4 mql5
 
Аватар для AlexeyVik
 
Регистрация: 19.11.2009
Сообщений: 2,519
Репутация: 3644
AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik
Сказал(а) спасибо: 1,111
Поблагодарили 3,648 раз(а) в 1,469 сообщениях
Поинты: 2006
Сообщение от tench72 Посмотреть сообщение
Совсем забыл нужно переделать во внутреннюю функцию индикатор стохастик Ди Наполи, функция должна возвращать значения нулевого буфера стохастика, не сигнальную линию
Код стохастика прикладываю в сообщениии, а в программе я использовал функцию iCustom() c параметрами:
BuferStoh[i] = iCustom(NULL,0,"StochasticDiNapoli",FastK,SlowK, SlowD, 0, i);
И терминал грузится пипец, так как я еще использую внутри кода стандартную функцию iCCI()
Помогите плиз кто может
Так в индикаторе 7 внешних параметров, а ты передаёшь только 3. Вот он и не понимает что от него хотят, может потому и грузит терминал попытками пересчёта.
AlexeyVik на форуме   Ответить с цитированиемОтветить с цитированием  
Старый 18.06.2014, 16:42   #2835 (permalink)
Интересующийся
 
Аватар для tench72
 
Регистрация: 09.01.2012
Сообщений: 8
Репутация: 1
tench72
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Поинты: 6
Я читал что можно не все параметры передавать, главное чтобы порядок следования не нарушать, а так вроде как можно и вообще один указать....
tench72 вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 18.06.2014, 17:00   #2836 (permalink)
Интересующийся
 
Аватар для tench72
 
Регистрация: 09.01.2012
Сообщений: 8
Репутация: 1
tench72
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Поинты: 6
Пробовал я передавать все параметры, ни чччО не помогло! так все и осталось грузиииит пипец.
tench72 вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 18.06.2014, 17:24   #2837 (permalink)
Программист mql4 mql5
 
Аватар для AlexeyVik
 
Регистрация: 19.11.2009
Сообщений: 2,519
Репутация: 3644
AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik
Сказал(а) спасибо: 1,111
Поблагодарили 3,648 раз(а) в 1,469 сообщениях
Поинты: 2006
Сообщение от tench72 Посмотреть сообщение
Я читал что можно не все параметры передавать, главное чтобы порядок следования не нарушать, а так вроде как можно и вообще один указать....
Если не передавать вообще, то применяются параметры по умолчанию в индикаторе, а вот изменить часть из них... лично я сомневаюсь. Совсем не сложно вставить их даже не переменными, а просто цифрами, но это будет страховка от непоняток MQ... Можешь проверить...
А по сути вопроса, вынести в отдельную функцию, извини мне лениво напрягать свой пьяный мозг. Там ничего сложного нет, требуется только внимательность.
AlexeyVik на форуме   Ответить с цитированиемОтветить с цитированием  
Старый 30.06.2014, 09:19   #2838 (permalink)
Активный участник
 
Аватар для oleg93
 
Регистрация: 27.03.2011
Адрес: Краснодар
Сообщений: 49
Репутация: 51
oleg93
Сказал(а) спасибо: 27
Поблагодарили 50 раз(а) в 21 сообщениях
Поинты: 21
Всем привет! Подскажите ,знающие, задать время первой точки в TrendLine как конкретное время - например 9:00 ?
oleg93 вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 30.06.2014, 10:32   #2839 (permalink)
Почётный гражданин
 
Аватар для qqmber
 
Регистрация: 20.01.2013
Сообщений: 530
Репутация: 386
qqmber - qqmber - qqmber - qqmber -
Сказал(а) спасибо: 57
Поблагодарили 386 раз(а) в 254 сообщениях
Поинты: 439
Сообщение от oleg93 Посмотреть сообщение
Всем привет! Подскажите ,знающие, задать время первой точки в TrendLine как конкретное время - например 9:00 ?
Обычно с помощью StrToTime()
qqmber вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 30.06.2014, 10:34   #2840 (permalink)
Активный участник
 
Аватар для oleg93
 
Регистрация: 27.03.2011
Адрес: Краснодар
Сообщений: 49
Репутация: 51
oleg93
Сказал(а) спасибо: 27
Поблагодарили 50 раз(а) в 21 сообщениях
Поинты: 21
Сообщение от qqmber Посмотреть сообщение
Обычно с помощью StrToTime()
Ок. Спасибо. Сейчас попробую!)
oleg93 вне форума   Ответить с цитированиемОтветить с цитированием  
Ответ

Метки
mql4, mql4 помощь, вопросы mql4


Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Выкл.
Pingbacks are Выкл.
Refbacks are Выкл.



Текущее время: 10:30. Часовой пояс GMT.


Перевод: zCarot
Copyright ©2000 - 2016, Jelsoft Enterprises Ltd.
SEO by vBSEO