Функция Print ничего не выводит в журнал - страница 2

 

Не наводите панику, принты нормально работают:

#property indicator_chart_window
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
   Print("OnInit");
   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[])
  {
//---
   Print("OnCalculate");
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+


 
MetaQuotes:

Не наводите панику, принты нормально работают:


прошу прощения, это моя ошибка. "не в ту вкладку смотрел", почти)

работал почему-то старый советник, а не новый. изменил имя, и все заработало

большое спасибо

 
МТ4. А в скрипте Print() куда должен выводить ?
Я нигде не найду :(
 
Mikhail Tkachev #:
МТ4. А в скрипте Print() куда должен выводить ?
Я нигде не найду :(

Если функция Print печатает отчаянно много и безумно часто, то часть вывода МОЖЕТ НЕ ПОПАДАТЬ во вкладку терминала.

в любом случае спустя некоторое время вывод будет записан в <каталог_данных>/logs/<текущий_журнал> ( конечно если терминал не упадёт раньше :-) )

 
Mikhail Tkachev #:
МТ4. А в скрипте Print() куда должен выводить ?
Я нигде не найду :(

Здравствуйте, Михаил! Если очень нужно в режиме реального времени выводить информацию на экран, то попробуйте вместо Print() использовать функцию Alert() или MessageBox().

С уважением, Владимир.

 
Maxim Kuznetsov #:

Если функция Print печатает отчаянно много и безумно часто, то часть вывода МОЖЕТ НЕ ПОПАДАТЬ во вкладку терминала.

в любом случае спустя некоторое время вывод будет записан в <каталог_данных>/logs/<текущий_журнал> ( конечно если терминал не упадёт раньше :-) )

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

Вопрос задан без подвоха и только в целях саморазвития.

С уважением, Владимир.

 
MrBrooklin #:

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

Вопрос задан без подвоха и только в целях саморазвития.

С уважением, Владимир.

кто ему запретит ? вполне может спамить в бесконечном цикле..

 

Уважаемый топикстартер! Для вывода информации о результате работы функции OrderSend() рекомендую использовать конструкции вот такого типа:

int TicketBuy=OrderSend(Symbol(),OP_BUY,LOT,LevelUstanovki,100,SL,TP,NULL,MAGIC,0,CLR_NONE);
  if(TicketBuy<0){
    Print("Ask = ",Ask," PR = ",PR," SL= ",SL," TP = ",TP," MinLevel = ",MinLevel);
    Print("Ошибка № ",GetLastError()," при установке стартового Buy-ордера");
  }
  else{
    Print("Бай-Ордер № ",TicketBuy," установлен из блока расстановки стартовых ордеров");
  }

Если ордер не встанет, Вы получите и номер ошибки, и исходные данные, которые Вы подали на вход функции ОрдерСенд. В противном случае Вы увидите его тикет и сообщение о том, из какого участка кода он установлен.

 
Vitaly Murlenko #:

Уважаемый топикстартер! Для вывода информации о результате работы функции OrderSend() рекомендую использовать конструкции вот такого типа:

Если ордер не встанет, Вы получите и номер ошибки, и исходные данные, которые Вы подали на вход функции ОрдерСенд. В противном случае Вы увидите его тикет и сообщение о том, из какого участка кода он установлен.

Как-то вот, примерно, чтобы видеть откуда принтует

#define Print(x) ::Print(__FILE__+":"+IntegerToString(__LINE__)+" "+__FUNCTION__+" "+x)

 
Месье, ваша дама давно ушла. А в принт можно просто воткнуть циферку. 
Причина обращения: