Function "_IsTradeAllowed" is not referenced and will be removed from exp-file - и чего теперь делать

 


прикрепляю так #include <TradeContext.mqh>.

при компилящии выдает:

Start function not found and cannot be run.

Function "_IsTradeAllowed" is not referenced and will be removed from exp-file

Function "TradeIsBusy" is not referenced and will be removed from exp-file

Function "TradeIsNotBusy" is not referenced and will be removed from exp-file

Файлы:
 

вы их не используете - потому они в ех4 файле ни к чему.

Такая логика компилятора.

Но вы же mqh компилируете.

Займитесь вплотную исполнимым модулем, именно там эти сообщения имеют указанный смысл.

;)

//Шаблон эксперта, использующего функции TradeIsBusy() и TradeIsNotBusy():
#include <TradeContext.mqh>
int start()
  {
// определяем необходимость входа в рынок
          ...
// расчитываем уровни Стоп Лосс, Тейк Профит и размер лота
          ...
// ждём освобождения торгового потока и занимаем его (если произошла ошибка, выходим)
          if(_IsTradeAllowed(1)<0) 
            { 
              return(-1); 
            }
// обновляем рыночную информацию
          RefreshRates();
// пересчитываем уровни Стоп Лосс и Тейк Профит
          ...
// открываем позицию
          Print ("market");
// освобождаем торговый поток
          TradeIsNotBusy();
  return(0);
  }
*/
//+-------------------------------
 
Sorento:

вы их не используете - потому они в ех4 файле не к чему.

Такая логика компилятора.

Но вы же mqh компилируете.

Займитесь вплотную исполнимым модулем, именно там эти сообщения имеют указанный смысл.

;)


не совсем понял что это значит???

вставил в эксперт выдат ошибку: Function "_IsTradeAllowed" is not referenced and will be removed from exp-file

 
dmmikl86:

не совсем понял что это значит???
Не надо отдельно компилировать файлы mqh. Компилируйте только советник, которых их вызывает.
 
granit77:
Не надо отдельно компилировать файлы mqh. Компилируйте только советник, которых их вызывает.

так и сделал. при компиляции советника выдает Function "_IsTradeAllowed" is not referenced and will be removed from exp-file

 
dmmikl86:

так и сделал. при компиляции советника выдает Function "_IsTradeAllowed" is not referenced and will be removed from exp-file

значит вы ее не используете и она (функция) была удалена из исполнимого файла...

Почти дословно.

;)

 
//=================================================================
   // открытие позиций
if(TradeIsBusy() < 0) 
   { 
   return(-1); 
   }
if(new_time!=Time[0])
{   
   if(BUY==true)
      {
       if(HA_open<HA_close) 
         {
          if(gmma_1<level_buy && gmma_0>level_buy)
            {
             OrderSend(Symbol(), OP_BUY, Lots, NormalizeDouble(Ask, Digits), 3, Low[1]-offset*Point, Ask+TP*Point, "a_GMMA&HA buy", magic, 0, Blue);
            }
         }
      }
   //----
   if(SELL==true)
      {
       if(HA_open>HA_close)
         {
          if(gmma_1>level_sell && gmma_0<level_sell)
            {
             OrderSend(Symbol(), OP_SELL, Lots, NormalizeDouble(Bid, Digits), 3, High[1]+(spread+offset)*Point, Bid-TP*Point, "a_GMMA&HA sell", magic, 0, Red);
            }
         } 
      }
new_time=Time[0];
}
TradeIsNotBusy();
вот кусок из кода, как я могу ее не использовать?
 
dmmikl86:

так и сделал. при компиляции советника выдает Function "_IsTradeAllowed" is not referenced and will be removed from exp-file

Что в вольном переводе значит "Функция не используется (не вызывается советником) и не будет помещена в скомпилированный (исполняемый) файл". Чисто информационное сообщение, не являющееся ошибкой компиляции и не влияющее на работу советника.
А вот сообщение: "Start function not found and cannot be run" появилось при прямой компиляции библиотеки, чего делать не следовало.

 
dmmikl86:
вот кусок из кода, как я могу ее не использовать?
посмотрите шаблон, что я прикрепил.
 
dmmikl86:
вот кусок из кода, как я могу ее не использовать?
Можете, можете. Найдете вызов функции _IsTradeAllowed в Вашем советнике? Не все функции из библиотеки TradeContext.mqh Вами используются, о чем компилятор тактично Вам и сообщает.
 
granit77:
Можете, можете. Найдете вызов функции _IsTradeAllowed в Вашем советнике? Не все функции из библиотеки TradeContext.mqh Вами используются, о чем компилятор тактично Вам и сообщает.

спасибо. убрал _IsTradeAllowed, и заработало. спасибо еще раз
Причина обращения: