Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 2621

 
Maxim Kuznetsov #:

НЕТ, НЕЛЬЗЯ

по сути - надо экстренно вводить проф.тестирование для допуска во фриланс

и вы не первый раз переадресуете кусочки ваших заказов в "вопросы новичков"...да вы уже не первый год тут, давно пора научиться самому искать решения, читать доки и ставить опыты

Уважаемый господин, не разводите истерику. Это не для какого-то заказа, просто просматривал что есть в стоке и обратил внимание. Мало того, на практике из-за IndicatorBuffers у меня никогда проблем не было. Доки читал, но там есть неоднозначность, и только по этой причине зашел сюда.

Еще раз: буду благодарен за ответы по сути вопроса, а не за выливание негатива на форум. Всем хорошего дня, люблю вас. 

 
Maxim Kuznetsov #:


по сути - надо экстренно вводить проф.тестирование для допуска во фриланс

Поверь, мой код и мои решения это очень хороший вариант, учитывая что там пишется во множестве случаев.  Буквально сейчас делаю заказ где нужно расширить функционал, но из-за подхода предыдущего автора код был не поддерживаем, и пришлось переписать, при этом код сократился в 7 с половиной раз. 7.5 РАЗ КАРЛ!!! Было больше 7тысяч строк, стало меньше тысячи. И это учитывая те-же входящие параметры и остальное. Так-же у меня есть пропуски строк для разделения а у предыдущего не было.

А про тестирование на mql, для допуска на фриланс, или для галочки - мне было бы очень интересно, тк явно бы узнал свои пробелы чтоб их заполнить.  

 
Maxim Kuznetsov #:

НЕТ, НЕЛЬЗЯ

по сути - надо экстренно вводить проф.тестирование для допуска во фриланс

и вы не первый раз переадресуете кусочки ваших заказов в "вопросы новичков"...да вы уже не первый год тут, давно пора научиться самому искать решения, читать доки и ставить опыты

Не плохая идея. Хотя-бы сделали возможность проверять из фриланса, на валидаторе без размещения в маркет или в CodeBase 

И запретить темы о проблемах валидатора. 😊😊😊😊😊
[Удален]  
Andrei Sokolov #:
Подскажите пожалста. Заметил что в некоторых стоковых индикаторах в ините  IndicatorBuffers есть, а в некоторых нет. Почему так? Нужно ли это прописывать при написании индикаторов?
Если рисуешь объектами, то буферы не нужны.
 
Aleksei Stepanenko #:
Если рисуешь объектами, то буферы не нужны.

К примеру, в стоковом Alligator нет IndicatorBuffers. Он рисует не объектами.

 
Andrei Sokolov #:

К примеру, в стоковом Alligator нет IndicatorBuffers. Он рисует не объектами.

даже стало интересно, что это чудо называет "стоковым" 

потому-что в Alligator из поставки MT буферы (IndicatorBuffers) естественно есть

 
Maxim Kuznetsov #:

даже стало интересно, что это чудо называет "стоковым" 

потому-что в Alligator из поставки MT буферы (IndicatorBuffers) естественно есть

нет

//+------------------------------------------------------------------+
//|                                                    Alligator.mq4 |
//|                             Copyright 2000-2025, MetaQuotes Ltd. |
//|                                              http://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright   "2000-2025, MetaQuotes Ltd."
#property link        "https://www.mql5.com"
#property description "Bill Williams' Aligator"
#property strict

//---- indicator settings
#property indicator_chart_window
#property indicator_buffers 3
#property indicator_color1  Blue
#property indicator_color2  Red
#property indicator_color3  Lime
//---- input parameters
input int InpJawsPeriod=13; // Jaws Period
input int InpJawsShift=8;   // Jaws Shift
input int InpTeethPeriod=8; // Teeth Period
input int InpTeethShift=5;  // Teeth Shift
input int InpLipsPeriod=5;  // Lips Period
input int InpLipsShift=3;   // Lips Shift
//---- indicator buffers
double ExtBlueBuffer[];
double ExtRedBuffer[];
double ExtLimeBuffer[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
void OnInit(void)
  {
   IndicatorDigits(Digits);
//---- line shifts when drawing
   SetIndexShift(0,InpJawsShift);
   SetIndexShift(1,InpTeethShift);
   SetIndexShift(2,InpLipsShift);
//---- first positions skipped when drawing
   SetIndexDrawBegin(0,InpJawsShift+InpJawsPeriod);
   SetIndexDrawBegin(1,InpTeethShift+InpTeethPeriod);
   SetIndexDrawBegin(2,InpLipsShift+InpLipsPeriod);
//---- 3 indicator buffers mapping
   SetIndexBuffer(0,ExtBlueBuffer);
   SetIndexBuffer(1,ExtRedBuffer);
   SetIndexBuffer(2,ExtLimeBuffer);
//---- drawing settings
   SetIndexStyle(0,DRAW_LINE);
   SetIndexStyle(1,DRAW_LINE);
   SetIndexStyle(2,DRAW_LINE);
//---- index labels
   SetIndexLabel(0,"Gator Jaws");
   SetIndexLabel(1,"Gator Teeth");
   SetIndexLabel(2,"Gator Lips");
  }
//+------------------------------------------------------------------+
//| Bill Williams' Alligator                                         |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
   int limit=rates_total-prev_calculated;
//---- main loop
   for(int i=0; i<limit; i++)
     {
      //---- ma_shift set to 0 because SetIndexShift called abowe
      ExtBlueBuffer[i]=iMA(NULL,0,InpJawsPeriod,0,MODE_SMMA,PRICE_MEDIAN,i);
      ExtRedBuffer[i]=iMA(NULL,0,InpTeethPeriod,0,MODE_SMMA,PRICE_MEDIAN,i);
      ExtLimeBuffer[i]=iMA(NULL,0,InpLipsPeriod,0,MODE_SMMA,PRICE_MEDIAN,i);
     }
//---- done
   return(rates_total);
  }
//+------------------------------------------------------------------+
[Удален]  
Есть, через 
#property indicator_buffers 3

Здесь они заданы жестко 3 штуки, а функция IndicatorBuffers делает то же самое, но при помощи неё можно переопределять заданное ранее количество. А надо ли? Так что для нас эти два варианта идентичны. 

 
Aleksei Stepanenko #:
Есть, через 

Здесь они заданы жестко 3 штуки, а функция IndicatorBuffers делает то же самое, но при помощи её можно переопределять заданное ранее количество. А надо ли? Так что для нас эти два варианта идентичны. 

Благодарю за внятный ответ по сути вопроса. Только получается они не идентичны

Понятно, IndicatorBuffers  нужно если общее количество буферов больше чем в indicator_buffers.

 
Andrei Sokolov #:

Благодарю за внятный ответ по сути вопроса. Только получается они не идентичны

Понятно, IndicatorBuffers  нужно если общее количество буферов больше чем в indicator_buffers.