Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 1099

 
alvlaf:
Попробовал, первые пять минут работал нормально, потом стал открывать одновременно несколько сделок (4) причем по одной и той же паре с увеличенным лотом. Александр, мне не совсем понятно в твоём варианте   каким образом глобальная переменная получает и изменяет своё значение?
Так ты начни последовательно. Сначала тест на одной паре все возможные варианты сделок, потом только на нескольких запускай. (4) - это количество сделок?
При запуске советника переменной присваивается 1, если такой переменной нет (в твоем случае она точно есть, т.к. хранится 4 недели). На каждом тике эта переменная разрешает или запрещает новые сделки - вот ее единственный смысл. Если сделка убыточная илм неприбыльная, то AllowNewOrders=0, если нет то =1. Перед проверкой сигналов на покупку/продажу эта переменная проверяется и выкидывает из цикла, не открывая ордера. Еслм по одной паре открывается 4! сделки, да еще с увеличенным лотом, то явно не работает CountTrades. Я сам посмотреть не могу, т.к. там где я нахожусь очень очень очень плохой интернет. И у меня кстати по опционам Grand Capital на любом таймфрейме новый тик приходит только с новой свечой - у тебя так же?

 
A13ksandr:
Так ты начни последовательно. Сначала тест на одной паре все возможные варианты сделок, потом только на нескольких запускай. (4) - это количество сделок?
При запуске советника переменной присваивается 1, если такой переменной нет (в твоем случае она точно есть, т.к. хранится 4 недели). На каждом тике эта переменная разрешает или запрещает новые сделки - вот ее единственный смысл. Если сделка убыточная илм неприбыльная, то AllowNewOrders=0, если нет то =1. Перед проверкой сигналов на покупку/продажу эта переменная проверяется и выкидывает из цикла, не открывая ордера. Еслм по одной паре открывается 4! сделки, да еще с увеличенным лотом, то явно не работает CountTrades. Я сам посмотреть не могу, т.к. там где я нахожусь очень очень очень плохой интернет. И у меня кстати по опционам Grand Capital на любом таймфрейме новый тик приходит только с новой свечой - у тебя так же?

Александр, думаю присваивать глобальной переменной при запуске 1 это не правильно, ведь нужно дождаться пока откроется хотя бы один ордер. По-моему нужно привязать значение AllowNewOrders к OrdersTotal или CountTrades, чтобы она изменялась когда откроется первая серия. Буду сегодня пробовать это сделать, но у меня очень мало опыта, поэтому-то если ты напишешь как это правильно прописать в коде буду тебе очень благодарен. У меня в терминале тики приходят в любой момент текущего бара даже на М1. (4) - это количество это одновременно открытых ботом сделок. И тестировал я так, как ты  советуешь.
 
trader_fx:
https://docs.mql4.com/ru/objects/objectgetdouble
https://docs.mql4.com/ru/objects/objectgetinteger

Спасибо ! Все понял. Теперь такой вопрос.  Эти функции работают для получения значения от объектов. Но как получить значения , допустим , стрелок,

которые видны на графике, но не видны в списке объектов. Например, если стрелки прорисованы , например :

SetIndexStyle(0, DRAW_ARROW);

SetIndexArrow(0, 234); 

\\\\ 

ObjectsTotal() ( да и другие функции объектов) эти стрелки не видят.... 

 
ilmel:

Спасибо ! Все понял. Теперь такой вопрос.  Эти функции работают для получения значения от объектов. Но как получить значения , допустим , стрелок,

которые видны на графике, но не видны в списке объектов. Например, если стрелки прорисованы , например :

SetIndexStyle(0, DRAW_ARROW);

SetIndexArrow(0, 234); 

\\\\ 

ObjectsTotal() ( да и другие функции объектов) эти стрелки не видят.... 

 iCustom в помощь

 
Здравствуйте! Кто-нибудь знает, что это было 2-го сентября? см.файл.              
 

Добрый вечер! Подскажите где ошибка, индикатор взял из учебника mql4 https://book.mql4.com/ru/samples/icustom. Но хочу чтоб огибающая была в отдельном окне. На скрине в основном окне индикатор из учебника, в нижнем окне то что получилось у меня

.скрин

 

#property strict
#property indicator_separate_window
#property indicator_minimum 1
#property indicator_buffers 1
#property indicator_color1 Blue

double Buf_0[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
  SetIndexBuffer(0,Buf_0);
  SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,clrAqua);
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
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 i,                           // Индекс бара
       Counted_bars;                // Количество просчитанных баров 
    Counted_bars=IndicatorCounted(); // Количество просчитанных баров 
   i=Bars-Counted_bars-1;           // Индекс первого непосчитанного
   while(i>=0)                      // Цикл по непосчитанным барам
     {
      Buf_0[i]=Close[i];             // Значение 0 буфера на i-ом баре     
      i--;                          // Расчёт индекса следующего бара
     }
   return(rates_total);
  }
//+------------------------------------------------------------------+
 
bobrush:

Добрый вечер! Подскажите где ошибка, индикатор взял из учебника mql4 https://book.mql4.com/ru/samples/icustom. Но хочу чтоб огибающая была в отдельном окне. На скрине в основном окне индикатор из учебника, в нижнем окне то что получилось у меня


А минимум зачем задавать?

#property indicator_minimum 1???

Да и цвет два раза тозе, зачем, причём разный? 

Но главная ошибка - в стиле буфера, с количеством параметров  чутка промашка вышла.

 SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,0,indicator_color1);

В общем, как-то вот так:

#property strict
#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 Blue

double Buf_0[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
  SetIndexBuffer(0,Buf_0);
  SetIndexStyle(0,DRAW_LINE,0,0,indicator_color1);
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
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 i=rates_total-prev_calculated-1;
   if(prev_calculated>0)     i++;

   while(i>=0)                      // Цикл по непосчитанным барам
     {
      Buf_0[i]=сlose[i];             // Значение 0 буфера на i-ом баре     
      i--;                          // Расчёт индекса следующего бара
     }
   return(rates_total);
  }
 
evillive:

А минимум зачем задавать?

#property indicator_minimum 1???

Да и цвет два раза тозе, зачем, причём разный? 

Но главная ошибка - в стиле буфера, с количеством параметров  чутка промашка вышла.

 SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,0,indicator_color1);

В общем, как-то вот так:

 

 Огромнейшее спасибо! По поводу #property indicator_minimum 1 я вообще не знаю для чего это :) , если не сложно разъясните?? Мой опыт программирования это 3 сливных советника

 
bobrush:По поводу #property indicator_minimum 1 я вообще не знаю для чего это :)  , если не сложно разъясните?

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

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