Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 212

 
paladin800:

Проходя по ссылке на индикатор, видно что там 8 input параметров. Два из них string (s1 и s2) не передают в индикатор значения, но их надо в вашем хендле как-то впихнуть. Сделайте так:

 Так работает, большое вам спасибо!
 

В окне графика в советнике у меня выводится профит, где как размер шрифта мал так и цвет шрифта такой сливается с остальными надписями, в коде это выглядит следующим образом  

Comment(profit) 

господа программисты помогите что изменить в коде что бы  изменить размер шрифта и неплохо бы было и цвет

 

 
rus-lot:

В окне графика в советнике у меня выводится профит, где как размер шрифта мал так и цвет шрифта такой сливается с остальными надписями, в коде это выглядит следующим образом  

Comment(profit) 

господа программисты помогите что изменить в коде что бы  изменить размер шрифта и неплохо бы было и цвет

Текстовая метка не подойдёт?
 
Господа, помогите, плиз. Срочно надо, так как в даный момент висят непонятные ордера... Если у автора сигнала закрылись некоторые сделки, а у меня не закрылись, это значит, что что-то работает неправильно, не так ли? Можно ли закрывать сделки вручную в таких случаях, или я что-то неправильно понимаю?
 
Silent:
Текстовая метка не подойдёт?
Буду пробовать хотя в этих делах я далёк но на первый взгляд здесь показано как перемещать текст а мой текст это ведь состояние профита так сказать изменяемое значение
 
rus-lot:
Буду пробовать хотя в этих делах я далёк но на первый взгляд здесь показано как перемещать текст а мой текст это ведь состояние профита так сказать изменяемое значение

profit делаете строковым (string), потом загоняете этот текст в метку

скрипт так писал, думаю, в кодобазе есть ещё примеры

 
Silent:

profit делаете строковым (string), потом загоняете этот текст в метку

скрипт так писал, думаю, в кодобазе есть ещё примеры

Дело в том что у меня там профит считается по 2 валютным парам
 
rus-lot:
Дело в том что у меня там профит считается по 2 валютным парам

Сложите профиты, потом преобразуйте (выведете результат операции),

или сложите строки (подробней тут) (выведете 2 значения в строку),

или две метки, соответственно, profit1 и profit2)...

какая разница, что выводить.

 
Silent:

Сложите профиты, потом преобразуйте (выведете результат операции),

или сложите строки (подробней тут) (выведете 2 значения в строку),

или две метки, соответственно, profit1 и profit2)...

какая разница, что выводить.

Человеку в этом деле тёмному это довольно сложно просто я подумал что если профит выводится в окне следующим образом

Comment(profit1+profit2

то чтобы опустить его ниже на одну строку достаточно внести следующий знак   "\n"

Comment("\n",  profit1+profit2 

вот поэтому и подумал что может чтобы шрифт увеличить то может можно будет добавить ещё какой знак в эту строку, а то что вы говорите для меня это будет сложно и не выполниму повторюсь я там не понимаю ничего. 

 
paladin800:

Проходя по ссылке на индикатор, видно что там 8 input параметров. Два из них string (s1 и s2) не передают в индикатор значения, но их надо в вашем хендле как-то впихнуть. Сделайте так:

От этого индикатора(https://www.mql5.com/ru/code/1806) я не могу получить сигналы на вход в рынок когда он находит дивергенцию. 

 

 MACD_Divergence__Handle=iCustom(NULL,0,"MACD_Divergence",
                                "---",
                                MACD_Divergence__fastEMA,
                                MACD_Divergence__slowEMA,
                                MACD_Divergence__signalMA,
                                "---",
                                drawIndicatorTrendLines,
                                drawPriceTrendLines,
                                displayAlert);
   if(MACD_Divergence__Handle==INVALID_HANDLE)                               
     {
      Print(" Не удалось получить хендл индикатора MACD_Divergence");
      return(INIT_FAILED);
     }
......................................
void OnDeinit(const int reason)
  {
IndicatorRelease(MACD_Divergence__Handle);

......................................
void OnTick()
  {
  ArraySetAsSeries(bullishDivergenceBuffer,true);
   ArraySetAsSeries(bearishDivergenceBuffer,true);
   ArraySetAsSeries(macdBuffer,true);
   ArraySetAsSeries(signalBuffer,true);
......................................
   if(CopyBuffer(MACD_Divergence__Handle,0,0,30,bullishDivergenceBuffer)<0 || CopyBuffer(MACD_Divergence__Handle,1,0,30,bearishDivergenceBuffer)<0)
      
           {
      Alert("Ошибка копирования значений индикаторных буферов индикатора MACD_Divergence :",GetLastError(),"!!");
      return;
           }
    if(
       CopyBuffer(MACD_Divergence__Handle,2,0,3,macdBuffer)<0 ||CopyBuffer(MACD_Divergence__Handle,3,0,3,signalBuffer)<0 )
           {
      Alert("Ошибка копирования значений индикаторных буферов индикатора MACD_Divergence :",GetLastError(),"!!");
      return;
           }       
           
           
Print(" !!!!!!!!!!!!!!!! bullishDivergenceBuffer =  ",bullishDivergenceBuffer[0]);
Print(" !!!!!!!!!!!!!!!! bearishDivergenceBuffer =  ",bearishDivergenceBuffer[0]);
Print(" !!!!!!!!!!!!!!!! macdBuffer =  ",macdBuffer[0]);
Print(" !!!!!!!!!!!!!!!! signalBuffer =  ",signalBuffer[0]);

 Технически вроде как все верно, ошибок типа GetLastError или INVALID_HANDLE   нет ни на каком из этапов, попробовал вывести значения бычей и медвежей дивергенции,  они пустые:

2014.03.14 19:34:15 Core 1 2014.03.03 16:00:00 !!!!!!!!!!!!!!!! bullishDivergenceBuffer = 1.797693134862316e+308
2014.03.14 19:34:15 Core 1 2014.03.03 16:00:00 !!!!!!!!!!!!!!!! bearishDivergenceBuffer = 1.797693134862316e+308
2014.03.14 19:34:15 Core 1 2014.03.03 16:00:00 !!!!!!!!!!!!!!!! signalBuffer = 0.001566958632905211
2014.03.14 19:34:15 Core 1 2014.03.03 16:00:00 !!!!!!!!!!!!!!!! macdBuffer = 0.001471813911680497
 

Как получить эти значения? В самом индикаторе значения есть, пробовал выводить ч/з  Print , и показывают значения экстренумов, почему они не передаются в советник?

 Перепробовал множество вариантов, но результат тот же. Возможно запрос  CopyBuffer должен  выглядеть иначе, но как ?  Поиском ничего не смог найти.

Или значение 0 бара в советнике и [currentExtremum] в индикаторе не сопоставляются?  Как их совместить?

MACD Divergence
MACD Divergence
  • голосов: 24
  • 2013.11.04
  • Alain Verleyen
  • www.mql5.com
Индикатор выводит линии дивергенции индикатора MACD и отображает сигналы на покупку и продажу при помощи стрелок.