Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 6. - página 594

 
DiPach:
P./S.: Por precaução, mencionarei que há uma resposta parcial à sua pergunta em "Nota" da ajuda "NormalizeDouble" também.

Eu mesmo costumava me esquecer de entrar no DoubleToS. ...e depois se perguntou pelos muitos números após o ponto. :)


Está escrito no Help :) Quem diria que eu teria ido lá porque é uma função conhecida e não tem sentido lê-lo no Help. Obrigado pela resposta.
 

Olá, você poderia me dizer como fazer o indicador no testador funcionar com os dados de outro par de moedas?

A foto mostra um MACD normal, mas com o símbolo "GBPUSD" escrito nele. No gráfico "EURUSD", ele é desenhado exatamente da mesma forma que no gráfico "GBPUSD".

Mas não quer trabalhar no Testador de Estratégia. Quando pressiono o indicador de pausa e colocação no gráfico EURUSD, a princípio tudo é desenhado corretamente, mas assim que começo o teste

Ele apenas desenha uma linha reta como na foto. Ou talvez você possa me dizer outro indicador que funcione. Não é o MACD que é importante, mas o princípio do desenho.

Arquivos anexados:
 
Quem é capaz de usar futuros de petróleo (#BRNM4) no testador? Eu recebo erro 4107.
 

Você pode me dizer como escrever a hora atual em uma variável global GlobalVariableSet, por exemplo? Ela não dá a data, a não ser um conjunto de dígitos...

 
ClanVi:

Você pode me dizer como escrever a hora atual em uma variável global GlobalVariableSet, por exemplo? Ela não dá a data, a não ser um conjunto de dígitos...


O tempo é armazenado como um valor inteiro
 

Olá. Feliz Dia da Vitória, a todos!

Com a nova construção, os objetos no canto inferior direito se arrastaram para a direita. É necessário movê-los ligeiramente para a esquerda para que todo o texto neles seja legível.

Como foi e como deve ser feito:

Agora eles rastejaram para longe:

Código:

#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()
  }
//-------------------------------------------------------------------------------------------
 

Eu mesmo o consegui mudando o ângulo de referência e ajustando as distâncias de coordenadas:

//----------------------------------------------Мониторинг---------------------  
   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() 
  }


 

E como você muda o tamanho e o fundo (a cor é provavelmente improvável) dos comentários dos objetos?


Bem, o número do bilhete Start # na foto é o deles.

Função:

//+------------------------------------------------------------------+
   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);
   }
//+------------------------------------------------------------------+

Os três últimos, parâmetros que se pensava afetarem de alguma forma. De jeito nenhum...

 
pako:


Este é um objeto de texto. E eu preciso mudá-lo em OBJ_TREND. Eu gostaria de poder fazer isso em um objeto, em vez de adicionar outro objeto de texto à linha de tendência.
 

O Depurador parou de funcionar - por quê?

Desde o meio do dia de 5 de maio, o Debugger deixou de emitir valores variáveis no ponto de parada. Em todos os programas para todas as variáveis. Ao mesmo tempo, os próprios programas funcionam como antes. Naquela época (e até agora) o editor era"ver. 5,00 build 934" e MetaTrader "ver. 4,00 build 646" .

Aqui está um roteiro simples, e isto é o que o Debugger mostra. Você pode me dizer, por favor, o que está errado?

Razão: