[ARQUIVO!] Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 4. - página 221

 

Deixe-me tentar "traduzir" a primeira entrada para você:

if(((OrderSymbol() == Symbol() && OnlyThisSymbol) || !OnlyThisSymbol))

"Se pelo menos uma das expressões 1. ou 2. for verdadeira, então ... "
1.o instrumento de pedido é o mesmo que o instrumento gráfico e a variável externa Somente este Símbolo tem o valor verdadeiro
2. a variável externa OnlyThisSymbol tem um valor igual a falso.

Agora, o significado desta entrada:
Há uma enumeração de ordens a serem fechadas por posições com diferentes filtros. Este registro é um filtro por instrumento. Se você definir o valor da única variável externaThisSymbol, você pode escolher se deseja fechar ordens somente por símbolos gráficos ou ordens por quaisquer símbolos.

 
alsu:

Não exatamente. A questão é que a variável Peritos já tem tipo int, portanto a conversão do tipo deve ocorrer ANTES de atribuir um valor a ela, ou seja, o compilador

* tirou da caixa um valor do tipo duplo (não tem nome em seu programa, e é escrito simplesmente em algum endereço conhecido do compilador na memória principal ou no registro da CPU)

* fez todas as mudanças necessárias no valor da variável acima e escreveu um novo valor (do tipo int!) na variável Especialistas,

* atribuiu este valor (do tipo int!) à variável New_Experts. Eles têm o mesmo tipo, portanto é apenas uma questão de transferir um valor de um local de memória para outro.


P.S. É ótimo ver que há pessoas que compreendem seus atos com tanto detalhe. Na verdade, sem brincadeira. Mantenha-se em contato.


Bom dia... Lidando com suas últimas e penúltimas mensagens, estou perplexo. Em particular (sua mensagem da resposta anterior): "Então quando tiramos um valor da caixa, ele é do tipo duplo, mas se dermos o comando para escrever o resultado em uma variável do tipo int, o compilador automaticamente toma todas as ações necessárias para colocar o valor em uma nova caixa". E sua mensagem da última resposta: "A questão é que a variável Especialistas já tem o tipo int... Não a convertemos para digitar o dobro no momento em que a "colocamos" em uma caixa de variáveis GV?

Obrigado antecipadamente pela resposta

 

Vocês podem me aconselhar, amigos? A MQL4 permite definir programticamente o valor do Saldo da Conta, e não apenas nas condições iniciais do testador?

Explicarei por que preciso dele, apenas para deixar a pergunta clara. Quero que o Expert Advisor mude o tamanho do saldo da conta como uma variável durante a otimização.

 

Boa tarde.

Estou tentando criar um indicador para exibir Sl e Tp no gráfico baseado em (H-L)/2, ele não funciona - ele apenas se aproxima do fim da barra, qual é o problema?

Como a base foi tomada por um indicador ATR.

//+------------------------------------------------------------------+
//|                                                          Tp/Sl.mq4 |
//|                      Copyright © 2005, MetaQuotes Software Corp. |
//|                                       http://www.metaquotes.net/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2005, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net/"

#property indicator_chart_window
#property indicator_buffers 6
#property indicator_color1 Red
#property indicator_color2 Green
#property indicator_color3 Red
#property indicator_color4 Green
//---- input parameters
extern int PeriodMM=25;
//---- buffers
double SlBuffer[];
double TpBuffer[];
double SlBuffer2[];
double TpBuffer2[];
double TempBuffer[];
double TempBuffer2[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
   string short_name;
//---- 1 additional buffer used for counting.
   IndicatorBuffers(4);
//---- indicator line
   SetIndexStyle(0,DRAW_LINE);
   SetIndexBuffer(0,SlBuffer);
   SetIndexStyle(1,DRAW_LINE);
   SetIndexBuffer(1,TpBuffer);
   SetIndexStyle(2,DRAW_LINE);
   SetIndexBuffer(2,SlBuffer2);
   SetIndexStyle(3,DRAW_LINE);
   SetIndexBuffer(3,TpBuffer2);
   SetIndexBuffer(4,TempBuffer);
   SetIndexBuffer(5,TempBuffer2);
//----
   SetIndexDrawBegin(0,PeriodMM);
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Average True Range                                               |
//+------------------------------------------------------------------+
int start()
  {
   int i,counted_bars=IndicatorCounted();
//----
   if(Bars<=PeriodMM) return(0);
//---- initial zero
   if(counted_bars<1)
      for(i=1;i<=PeriodMM;i++)
      SlBuffer[Bars-i]=0.0;
      TpBuffer[Bars-i]=0.0;
      SlBuffer2[Bars-i]=0.0;
      TpBuffer2[Bars-i]=0.0;
//----
   i=Bars-counted_bars-1;
   while(i>=0)
     {
      double high=High[i];
      double low =Low[i];
      double close = Close[i];
      TempBuffer[i]=(high-low)/2;
      TempBuffer2[i]=(high-low)/2*2.5;
      i--;
     }
//----
   if(counted_bars>0) counted_bars--;
   int limit=Bars-counted_bars;
   for(i=0; i<limit; i++)
      SlBuffer[i]=Close[i]+iMAOnArray(TempBuffer,Bars,PeriodMM,0,MODE_SMA,i);
      TpBuffer[i]=Close[i]+iMAOnArray(TempBuffer2,Bars,PeriodMM,0,MODE_SMA,i);
      SlBuffer2[i]=Close[i]-iMAOnArray(TempBuffer,Bars,PeriodMM,0,MODE_SMA,i);
      TpBuffer2[i]=Close[i]-iMAOnArray(TempBuffer2,Bars,PeriodMM,0,MODE_SMA,i);
//----
   return(0);
  }
//+------------------------------------------------------------------+
 
Camaradas, não consigo entender porque os arquivos CSV não estão sendo criados, tudo estava funcionando antes.
//+------------------------------------------------------------------+
//|                                                          TP1.mq4 |
//|                                                      S.I.Shlikov |
//|                                                                  |
//+------------------------------------------------------------------+
#property copyright "S.I.Shlikov"
#property link      ""
int init()  
  {
   int h=FileOpen("H"+(Period()/60)+".csv",FILE_CSV|FILE_WRITE|FILE_READ,";");
    if(h<1)
      {
      Print("Файл не найден : ", GetLastError());
      return(false);
      }
   FileSeek(h, 0, SEEK_END);
   FileWrite(h,"Date","EURUSD","GBPUSD","NZDUSD","USDJPY","EURJPY","GBPJPY","USDCHF","EURCHF","GBPCHF");
   FileClose(h);        
  }
int start()
  {
   int h=FileOpen("H"+(Period()/60)+".csv",FILE_CSV|FILE_WRITE|FILE_READ,";");
    if(h<1)
      {
      Print("Файл не найден : ", GetLastError());
      return(false);
      }
   string Wtime=TimeToStr(TimeCurrent(),TIME_DATE|TIME_MINUTES);
   FileSeek(h, 0, SEEK_END);
   FileWrite(h,Wtime,DoubleToStr(iClose("EURUSD",Period(),0),MarketInfo("EURUSD",MODE_DIGITS)),
                     DoubleToStr(iClose("GBPUSD",Period(),0),MarketInfo("GBPUSD",MODE_DIGITS)),
                     DoubleToStr(iClose("NZDUSD",Period(),0),MarketInfo("NZDUSD",MODE_DIGITS)),
                     
                     DoubleToStr(iClose("USDJPY",Period(),0),MarketInfo("USDJPY",MODE_DIGITS)),
                     DoubleToStr(iClose("EURJPY",Period(),0),MarketInfo("EURJPY",MODE_DIGITS)),
                     DoubleToStr(iClose("GBPJPY",Period(),0),MarketInfo("GBPJPY",MODE_DIGITS)),
                     
                     DoubleToStr(iClose("USDCHF",Period(),0),MarketInfo("USDCHF",MODE_DIGITS)),
                     DoubleToStr(iClose("EURCHF",Period(),0),MarketInfo("EURCHF",MODE_DIGITS)),
                     DoubleToStr(iClose("GBPCHF",Period(),0),MarketInfo("GBPCHF",MODE_DIGITS))
                     );
   FileClose(h);   
   return(0);
  }
 
orb:
Camaradas, não consigo entender porque os arquivos CSV não estão sendo criados, tudo estava funcionando antes.

Qual é o número do erro?
 
sergeev:

qual é o número do erro?
sem número de erro...apenas sem arquivos criados, procurando por arquivos ALPARItester
 
orb:
sem número de erro... apenas não criando arquivos, procurando por arquivos ALPARIESTE

Bem, veja no outro.
 
sergeev:

Bem, procure em outro lugar.
Eu já o fiz.
 
orb:
já analisou o assunto.

Parabéns.