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

 
DiPach:
P./S.: На всякий случай всё же упомяну, что и в справке по NormalizeDouble, в "Примечание", есть частичный ответ на ваш вопрос.

Сама, бывало забывала прописать DoubleToS... и затем удивлённо рассматривала многие цифры после точки. :)


Да точно, в хелпе об этом написано :) кто бы мог подумать что надо лезть туда ведь функция известная и читать по ней хелп как бы и смысла нет. Спасибо за ответ.
 

Здравствуйте! Подскажите пожалуйста как заставить работать индикатор в тестере с данными другой валютной пары.

На рисунке обычный MACD, но с прописанным символом "GBPUSD". На графике "EURUSD" все рисуется точно так же как и на графике "GBPUSD".

Но в тестере работать не хочет. При нажатой паузе тестера, когда на график "EURUSD" устанавливаю индикатор сначала все рисуется правильно, но как только запускаю тест

рисуется ровная линия как на картинке. Или может подскажете другой индикатор который работает. Важен не MACD а сам принцип написания.

Файлы:
 
У кого получается в тестере использовать фьючерс на нефть(#BRNM4)? У меня ошибка 4107 выходит.
 

Подскажите как записать в глобальную переменную GlobalVariableSet, допустим текущее время? выдает совсем не дату а набор цифр...

 
ClanVi:

Подскажите как записать в глобальную переменную GlobalVariableSet, допустим текущее время? выдает совсем не дату а набор цифр...


Время хранится как целочисленное значение
 

Здравствуйте. Всех с Днём Победы!

С новым выходом билда объекты вправом нижнем углу уползли вправо. Надо их чуть сместить влево, чтобы текст в них читался весь.

Как было и как надо сделать:

Щас они уползли:

Код:

#include <stdlib.mqh>
#include <stderror.mqh>
#include <WinUser32.mqh>
//--------------------------------------------------------------- 3 --
#include <Variables_AU.mqh>          // Описание переменных 
#include <Terminal.mqh>              // Учёт ордеров
#include <Events.mqh>                // Функция слежения за событиями, обновлен.
#include <Inform.mqh>                // Информационная функция
#include <Trade.mqh>                 // Торговая функция
#include <Open_Ord.mqh>              // Открытие одного ордера заданного типа
#include <Open_Ord_balance_line.mqh> //Доливка по линии баланса -  установка одного отложенного ордера  
#include <Close_All.mqh>             // Закрытие  всех ордеров заданного типа
#include <Tral_Stop_All.mqh>         // Модификация лимитного ордера
#include <Lot_MM.mqh>                // Вычисление количества лотов
#include <Criterion.mqh>             // Торговые критерии
#include <Errors.mqh>                // Функция обработки ошибок.
//--------------------------------------------------------------- 4 --
int init()                             // Спец. функция init
  {
  
   IsExpertStopped = false;
   if (!IsTradeAllowed())  {Comment("Необходимо разрешить советнику торговать");IsExpertStopped = true; return (0);}      
  // if (!IsTesting()){if (IsExpertEnabled())    Comment("Советник запустится следующим тиком");else  Comment("Отжата кнопка \"Разрешить запуск советников\"");}   
      
   // Определяем переменные окружения
   Level_old=MarketInfo(Symbol(),MODE_STOPLEVEL );//Миним. дистаниция 
   Level_Freeze = MarketInfo(Symbol(),MODE_FREEZELEVEL ); 
   Spread = MarketInfo(Symbol(),MODE_SPREAD);
   Tick = MarketInfo(Symbol(), MODE_TICKSIZE);    //Mинимальный тик   
   // Пересчеты пунктов для пятизначного ДЦ   
   if ((Digits == 3) || (Digits == 5)){SlipPips = SlipPips*10; indent_Hight = indent_Hight * 10; indent_Low = indent_Low * 10;}    
  
   Terminal();                         // Функция учёта ордеров 
//----------------------------------------------Мониторинг---------------------  
   if(Monitor==true)
    {
    int a,y;
    for(a=0,y=5;a<=4;a++)
      {
      string N=DoubleToStr(a,0);
  
      ObjectCreate(N,OBJ_LABEL,0,0,0,0,0,0,0);
      ObjectSet(N,OBJPROP_CORNER,3);
      ObjectSet(N,OBJPROP_XDISTANCE,5);
      ObjectSet(N,OBJPROP_YDISTANCE,y);
      y+=20;
      }  
    }
      
   return(0);                             // Выход из init() 
  }
//-----------------------------------------------------------------------------
int start()                            // Спец. функция start
  {  
     
//------------- Вызов ф-ий учёта ордеров, принятия торговых решений и информации ----------   
  Terminal();                         // Функция учёта ордеров 
  Events();                           // Информация о событиях
  Trade (Criterion());                // Торговая функция
  Inform(0);                          // Для перекрашивания объектов
   
//-------------  МОНИТОРИНГ  --------------------------------------------------------------
  if(Monitor==true)
    {
     string str="Balance: "+DoubleToStr(AccountBalance(),2)+" $";
     ObjectSetText("0",str,10,"Arial Black",DarkOrange);
    
     str="Profit: "+DoubleToStr(AccountProfit(),2)+" $";
     ObjectSetText("1",str,10,"Arial Black",Salmon);
    
     str="Free Margine: "+DoubleToStr(AccountFreeMargin(),2)+" $";
     ObjectSetText("2",str,10,"Arial Black",Gold);
    
     str="OrdersTotal: "+DoubleToStr(OrdersTotal(),0);
     ObjectSetText("3",str,10,"Arial Black",MediumAquamarine);
    
     if (Lot_MM()==false)              // Средств не хватает на миним.
             return(0);                   // Выход из пользов. функции 
     str="Lots_Next: "+DoubleToStr(Lots_New,2);
     ObjectSetText("4",str,10,"Arial Black",Olive);
    }
   
   return(0);                             // Выход из start()
  }
//-------------------------------------------------------------------------------------------
int deinit()                           // Спец. функция deinit()
  {
   Inform(-1);                         // Для удаления объектов
   //----------------------------------------------------------------------------------------
  if(Monitor==true)
    {
    for(int a=0;a<=4;a++)
      {
      string N=DoubleToStr(a,0);
      ObjectDelete(N);
      } 
    }
//-------------------------------------------------------------------------------------------
   return(0);                             // Выход из deinit()
  }
//-------------------------------------------------------------------------------------------
 

Справился сам, поменяв угол привязки и установку расстояний координат:

//----------------------------------------------Мониторинг---------------------  
   if(Monitor==true)
    {
    int a,y;
    for(a=0,y=50;a<=4;a++)
      {
      string N=DoubleToStr(a,0);
  
      ObjectCreate(N,OBJ_LABEL,0,0,0,0,0,0,0);
      ObjectSet(N,OBJPROP_CORNER,0);
      ObjectSet(N,OBJPROP_XDISTANCE,50);
      ObjectSet(N,OBJPROP_YDISTANCE,y);
      y+=20;
      }  
    }
      
   return(0);                             // Выход из init() 
  }


 

А коим образом изменить размер и фонт (цвет наверное вряд ли) комментариев объектов?


Ну вот на рисунке Start #номер тикета - вот их.

Функция:

//+------------------------------------------------------------------+
   void SetTLine(color cl, long chartID, int wnd, string nm,
                 datetime t1, double p1, datetime t2, double p2,
                 bool ry=False, int st=0, int wd=1,string tx="",int sz=0) {
      if(DrawGraphics==0) return;
      if (ObjectFind(nm)<0) ObjectCreate(chartID, nm, OBJ_TREND, wnd, 0, 0, 0, 0);
      ObjectSetInteger(chartID,nm,OBJPROP_TIME1,t1);
      ObjectSetDouble(chartID,nm,OBJPROP_PRICE1,p1);
      ObjectSetInteger(chartID,nm,OBJPROP_TIME2,t2);
      ObjectSetDouble(chartID,nm,OBJPROP_PRICE2,p2);
      ObjectSetInteger(chartID,nm,OBJPROP_COLOR,cl);
      ObjectSetInteger(chartID,nm,OBJPROP_RAY,ry);
      ObjectSetInteger(chartID,nm,OBJPROP_STYLE,st);
      ObjectSetInteger(chartID,nm,OBJPROP_WIDTH,wd);
      ObjectSetString(chartID,nm,OBJPROP_TEXT,tx);
      ObjectSetString(chartID,nm,OBJPROP_FONT,"Tahoma");
      ObjectSetInteger(chartID,nm,OBJPROP_FONTSIZE,sz);
   }
//+------------------------------------------------------------------+

Последние три, параметра думал они как-то влияют. Нифига...

 
pako:


Ну это-то объект текст. А мне нужно менять в OBJ_TREND. Хотелось бы сразу в одном объекте иметь возможность, а не пририсовывать к трендовой линии ещё один текстовый объект.
 

Перестал работать Отладчик – почему?

С середины дня 5 мая Отладчик перестал выдавать значения переменных в точке останова. Во всех программах для всех переменных. При этом сами программы работают, как прежде. На тот момент (и до сих пор) Editor был “ver. 5.00 build 934”, а MetaTrader ver. 4.00 build 646” .

Вот простейший скрипт, и вот что Отладчик выдает. Подскажите, пожалуйста, в чем дело?

Причина обращения: