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 809

 
pycha:

Olá. Pesquisei a documentação mas não consegui encontrá-la. minha pergunta é esta. posso mudar esta imagem ao iniciar a EA para o meu logotipo?

#ícone de propriedade "\\\\Images\\\xxx.ico";
 
evillive:
# ícone de propriedade "\\\\Images\\\\xxx.ico";

E, após a compilação, o arquivo de ícones será incorporado ao arquivo *.ex4 e não haverá necessidade de mover o arquivo de ícones após o arquivo compilado.
 
obrigado))))
 
roymax:
e não foi fixado de forma alguma?

Como você pode ver.

No entanto, a maneira mais lógica e fácil de se fazer proxy é proibir a mudança da ferramenta janela MT. Por isso, sugiro que o consideremos um bug :)

 
Meu Expert Advisor analisa gráficos para um número de meses, mas há gráficos que retornam todo o histórico em um gráfico de minutos, e há gráficos que não mostram mais de um mês e meio, e mesmo que você rolar o gráfico de volta manualmente, ele não rola nem mesmo para além de uma determinada data.
 
pycha:
Meu consultor especializado analisa o gráfico para um certo número de meses, mas há gráficos que retornam todo o histórico no gráfico de minutos, e há gráficos que não querem retornar mais de um mês e meio, e até mesmo isso se você rolar o gráfico de volta manualmente, mesmo depois de uma certa data, ele não rola manualmente.
O corretor decide exatamente quanto histórico deve dar. Se o número máximo de barras for definido nas configurações do terminal, e houver menos delas no gráfico, então o corretor não dará mais.
 
Eu entendo, obrigado.
 

Olá Prezados usuários do fórum. Eu gostaria de fazer um pedido. Alguém seria capaz de postar um código com uma função iEnvelopesOnArray() funcional? Todas as minhas tentativas de domá-lo até agora foram infrutíferas. Suspeito que a culpa seja dos desenvolvedores. Aqui está um indicador para verificar seu trabalho.

//+------------------------------------------------------------------+
//|                                            Tester_EnvOnArray.mq4 |
//|     Copyright 2005 г. до нашей эры, MetaQuotes Software Company. |
//|                                              https://www.mql4.com |
//+------------------------------------------------------------------+
#property copyright   "2005 г. до нашей эры, MetaQuotes Software Company."
#property link        "https://www.mql4.com"
#property description "Пример индикатора для проверки работы функции iEnvelopesOnArray()"
#property strict

//--- indicator settings
#property  indicator_chart_window
#property  indicator_buffers 2
#property   indicator_color1  Green
#property   indicator_color2  Red

//--- indicator buffers
double     ExtEnvBuffer[];
double     ExtPriceBuffer[];

//--- bars minimum for calculation
#define  DATA_LIMIT  100

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
void OnInit(void)
  {
  IndicatorShortName("EnvOnArr");
  
  //--- 1 additional buffer are used for counting.
  IndicatorBuffers(2);
  IndicatorDigits(Digits + 2);
  
  //--- drawing settings
  SetIndexStyle(0, DRAW_LINE);
  SetIndexDrawBegin(0, DATA_LIMIT);
  
  SetIndexStyle(1, DRAW_NONE);
  SetIndexDrawBegin(1, DATA_LIMIT);
  
  //--- all indicator buffers mapping
  SetIndexBuffer(0, ExtEnvBuffer);
  SetIndexBuffer(1, ExtPriceBuffer);
  
  //--- name for DataWindow and indicator subwindow label
  SetIndexLabel(0, NULL);
  SetIndexLabel(1, NULL);
  }
  
//+------------------------------------------------------------------+
//| EnvelopesOnArray                                                 |
//+------------------------------------------------------------------+
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[])
  {
  int    i, limit;
  double prev = 0.0, Deviation = 1;
  
  //--- check for rates total
  if(rates_total <= DATA_LIMIT)
    return(0);
    
  //--- last counted bar will be recounted
  limit = rates_total - prev_calculated;
  
  if(prev_calculated > 0)
    {
    limit++;
    }
    
  //--- price counted in the 2-nd additional buffer
  for(i=0; i<limit-1; i++)
    ExtPriceBuffer[i] = close[i];
                       
  //--- price counted in the 1-st additional buffer
  for(i=0; i<limit-1; i++)
    ExtEnvBuffer[i] = iEnvelopesOnArray(ExtPriceBuffer, 0, 5, MODE_SMA, 0, 1, MODE_UPPER, i);
  
  //--- done
  return(rates_total);
  }
  
//+------------------------------------------------------------------+
Arquivos anexados:
 

Olá a todos. Estou recebendo erros durante o teste:

2014.12.25 18:04:31.125 2014.11.03 00:00 Teste3 EURUSD,H4: bilhete inválido para a função OrderModify

2014.12.25 18:04:31.125 2014.11.03 00:00 Teste3 EURUSD,H4: OrderModify error 4051

Eu verifiquei várias vezes, não há erro (até onde eu posso ver).

O fracasso ocorre nesta parte do programa:

ModifyBuy, ModifySell, SelectBuy, SelectSell - têm tipo bool

SendBuy, SendSell-int , int TP = 30


while(true)

 {

  

  SPREAD=MarketInfo(Symb,MODE_SPREAD);

  SelectBuy=OrderSelect(OrderTicketBuy,SELECT_BY_TICKET);//buy

  RefreshRates();

  if(NormalizeDouble(OrderOpenPrice()+TP*Point,Digits)<NormalizeDouble(Ask,Digits))

  {

  ModifyBuy=OrderModify(OrderTicket(),OrderOpenPrice(),Bid-(10-SPREAD)*Point,Bid+(30- SPREAD)*Point,0,0); 

  R=1;

  break;

  }//if2

    

  Timen=OrderCloseTime();

  if(Timen>0)

  {

  //--------------------------  

    Stop=StopLevel(Symb);

   StopLong();//значение Long2

   StopLoss_Func();//значение SL

//--------------------------  

   SendBuy=OrderSend(Symb,OP_BUYSTOP,Lote,Ask+Long2*Point,1,Bid-SL*Point,NULL);

   for(i=1;i>OrdersTotal();i++)

  {

   if(OrderSelect(i-1,SELECT_BY_POS,MODE_TRADES)==true)//Проверяем есть ли ордер

    {

     if(OrderSymbol()!=Symb) continue;     

     if(OrderType()==4)

      {

      OrderTicketBuy=OrderTicket();

      break;

      }

      else

      {

      continue;

      } 

     }

    }   

    continue;  

  }//if2

  

  SelectSell=OrderSelect(OrderTicketSell,SELECT_BY_TICKET,MODE_TRADES);//sell

  RefreshRates();

  if(NormalizeDouble(OrderOpenPrice()-TP*Point,Digits)>NormalizeDouble(Bid,Digits))

  {

   

   ModifySell=OrderModify(OrderTicket(),OrderOpenPrice(),Ask+(10-SPREAD)*Point,Ask-(30- SPREAD)*Point,0,0);

   R=2;

   break; //спред

  }//if2

  

   Timen=OrderCloseTime();

  if(Timen>0)

  {

 //--------------------------  

    Stop=StopLevel(Symb);

   StopLong();

   StopLoss_Func();

//--------------------------  

   SendSell=OrderSend(Symb,OP_SELLSTOP,Lote,Bid-Long2*Point,1,Ask+SL*Point,NULL);

    for(i=1;i>OrdersTotal();i++)

  {

   if(OrderSelect(i-1,SELECT_BY_POS,MODE_TRADES)==true)//Проверяем есть ли ордер

    {

     if(OrderSymbol()!=Symb) continue;     

     if(OrderType()==6)

      {

      OrderTicketSell=OrderTicket();

      break;

      }

      else

      {

      continue;

      } 

     }

    }   

    continue; 

  }//if2

}//while1



Se você precisa do código completo, aqui


Arquivos anexados:
test3_1.mq4  15 kb
 
Cavalheiros! Você pode me dizer o código que vai parar de testar uma EA quando não há margem suficiente para abrir uma posição?
Obrigado!