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

 
Leanid Aladzyeu:
...
Как получить значения массивов не обращаясь. к функции ? Или как сделать что бы массив запоминал последние значения которые были записаны? 
...


Для того, чтобы что-то взять из массива, в массив сначала нужно это "что-то" записать.

 

Leanid Aladzyeu:
...
Или как сделать что бы массив запоминал последние значения которые были записаны? 
...
Для каких условий: массив нужно сохранять при переключении таймфрейма графика или после перезагрузки терминала?
 
Karputov Vladimir:


Для того, чтобы что-то взять из массива, в массив сначала нужно это "что-то" записать.

 

Для каких условий: массив нужно сохранять при переключении таймфрейма графика или после перезагрузки терминала?

нет при работе советника

 Ставлю в функции ретурн в случае когда ордер есть в рынке он мне даёт нулевые масивы ( ретурн установил до обнуления массивов ) , 

 
Leanid Aladzyeu:

Ставлю в функции ретурн в случае когда ордер есть в рынке он мне даёт нулевые масивы ( ретурн установил до обнуления массивов ) , 

Что за массивы, которые "даёт ордер"? Где они объявлены и где они заполняются? И, ещё, код вставляйте, пожалуйста, правильно.
 
Karputov Vladimir:

Нужно параметры функций вернуть к первоначальному варианту, иначе они просто не будут вызываться:

 

 

Вот код стандартного файла  SignalAC

 //+------------------------------------------------------------------+

//| "Voting" that price will grow.                                   |

//+------------------------------------------------------------------+

int CSignalAC::LongCondition(void) 

 я понимаю так: код отправляет сигнал, а параметры  double& price,double& sl,double& tp,datetime& expiration  нужны для выставления ордера,

этим занимается другой блок эксперта? 

 

 

 

 

исправил код на вариант:

int CSampleSignal::ShortCondition(void)

 

эксперт стал что-то делать, спасибо за совет! 

 
pr0gre5:

исправил код на вариант:

int CSampleSignal::ShortCondition(void)

 

эксперт стал что-то делать, спасибо за совет! 

Не за что. Спрашивайте, спрашивайте когда и где нужно :)
 

Такой вопрос этот код служит для ограничения расчета - счет только один раз на новом баре?

static datetime TimeN=0;
   datetime TimeC=iTime(NULL,TF,0);
   if(TimeN==0)TimeN=TimeC;
   if(TimeN==TimeC) return(0);

 
-Aleks-:

Такой вопрос этот код служит для ограничения расчета - счет только один раз на новом баре?

static datetime TimeN=0;
   datetime TimeC=iTime(NULL,TF,0);
   if(TimeN==0)TimeN=TimeC;
   if(TimeN==TimeC) return(0);

Если новый бар на таймфрейме М1, то печатаем сообщение:

//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   static datetime TimeN;
   datetime TimeC=iTime(NULL,PERIOD_M1,0);
   if(TimeN==TimeC)
      return;
   TimeN=TimeC;
// новый бар, выполняем код
   Print("New bar");
   return;
  }
 
Karputov Vladimir:

Если новый бар на таймфрейме М1, то печатаем сообщение:

Значит я прав, это проверка на новый бар?
 
-Aleks-:
Значит я прав, это проверка на новый бар?
Если Вы имеет в виду мой код - тогда да, мой код - это проверка на новый бар.
Причина обращения: