[ARQUIVO]Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por ela. Não posso ir a lugar nenhum sem você - 5. - página 219

 

Obrigado, colado este código na EA, a compilação dá "(' - definição da função inesperada após bool ExistOrders, há um parêntese extra ou algo assim...

para (int k=0;k<OrdensTotal();k++)//Nós revisamos entre todas as ordens abertas
{
OrderSelect(k,SELECT_BY_POS,MODE_TRADES);
se (!ExistOrders(Symbol(), OP_SELLLIMIT, Magic) )
OrderSend(Symbol(),OP_SELLLIMIT,Lots,Ask+(Shag/0.2)*Point,3,0,0,0,",123,0,Red);
bool ExistOrders(string sy="", int op=-1, int mn=123)
{
int i, k=OrdensTotal(), ty;
se (sy=="0") sy=Símbolo();
para (i=0; i<k; i++)
{
se (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
ty=OrderType();
se (ty<6)
{
if ((OrderSymbol()==sy || sy==="") && (op<0 || ty===op))
{
se (mn<0 || OrderMagicNumber()==mn) return(True);
}}}} retorno(Falso);
}
//----
retorno(0);
}
 
Graall:

Obrigado, colado este código na EA, a compilação dá "(' - definição da função inesperada após bool ExistOrders, há um parêntese extra ou algo assim...


Tirar a funçãoExistOrders da função start .
int start()
{
.....
for (int k=0;k<OrdersTotal();k++)//Производим просмотр среди всех открытых ордеров
   {
    OrderSelect(k,SELECT_BY_POS,MODE_TRADES);
    if (!ExistOrders(Symbol(), OP_SELLLIMIT, Magic) )  
     OrderSend(Symbol(),OP_SELLLIMIT,Lots,Ask+(Shag/0.2)*Point,3,0,0,"",123,0,Red);
}
   return(0);
 }

    bool ExistOrders(string sy="", int op=-1, int mn=123) 
     {
      int i, k=OrdersTotal(), ty; 
      if (sy=="0") sy=Symbol();
      for (i=0; i<k; i++) 
      {
       if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) 
       {
        ty=OrderType();
        if (ty<6) 
        {
          if ((OrderSymbol()==sy || sy=="") && (op<0 || ty==op)) 
         {
          if (mn<0 || OrderMagicNumber()==mn) return(True);
      }}}}  return(False);
          }
 
 

Sim, entendi, a funçãoExistOrders é uma função personalizada, tirou-a da função inicial, o erro é o mesmo, está combatendo algo na primeira parte da EA, estou colando-a completamente


//+------------------------------------------------------------------+

//| 1.mq4 |
//| Oleg 2013 |
//| |
//+------------------------------------------------------------------+
#define Magic 123

//--- parâmetros de entrada
Exterior int TakeProfit = 100;
Lotes duplos externos = 0,1;
Exterior int Shag = 100;
sy. de cordas;
int ty;
op. int;
int mn;
int k;
int i;
//--------------------------------------------------------------------------------------------
int start()
{
// busca do primeiro elemento zero
int total=OrdensTotal();
se (total==0)
{
OrderSend(Symbol(),OP_SELLLIMIT,Lots,Ask+(Shag/0.2)*Point,3,0,0,0,",123,0,Red);
OrderSend(Symbol(),OP_BUYLIMIT,Lots,Ask-(Shag/0.2)*Point,3,0,0,",123,0,Blue);
para (int i=0;i<OrdensTotal();i++)//Ver todas as ordens abertas
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
se ( OrderType()==OP_SELLLIMIT)
OrderModify(OrderTicket(), OrderOpenPrice(), OrderStopLoss(),Ask-(TakeProfit/0.2)*Point, 0);
se ( OrderType()==OP_BUYLIMIT)
OrderModify(OrderTicket(), OrderOpenPrice(), OrderStopLoss(),Ask+(TakeProfit/0.2)*Point, 0);
}
}
para (int k=0;k<OrdensTotal();k++)//Ver entre todas as ordens abertas
{
OrderSelect(k,SELECT_BY_POS,MODE_TRADES);
se (!ExistOrders(Symbol(), OP_SELLLIMIT, Magic) )
OrderSend(Symbol(),OP_SELLLIMIT,Lots,Ask+(Shag/0.2)*Point,3,0,0,0,",123,0,Red);

//----
retorno(0);
}
//+------------------------------------------------------------------+
bool ExistOrders(string sy="", int op=-1, int mn=123)
{
int i, k=OrdensTotal(), ty;
se (sy=="0") sy=Símbolo();
para (i=0; i<k; i++)
{
se (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
ty=OrderType();
se (ty<6)
{
if ((OrderSymbol()==sy || sy==="") && (op<0 || ty===op))
{
se (mn<0 || OrderMagicNumber()==mn) return(True);
}}}} retorno(Falso);
}
 
Graall:



Verifique o emparelhamento de parênteses {} (cuidadosamente). O erro significa que há pelo menos um fechamento faltando na função de início ().
 
alsu:

Verifique o emparelhamento de parênteses {} (cuidadosamente). O erro significa que falta pelo menos um fechamento na função de início ().


direito, após

para (int k=0;k<OrdensTotal();k++)//Watch entre todas as ordens abertas

{
OrderSelect(k,SELECT_BY_POS,MODE_TRADES);
se (!ExistOrders(Symbol(), OP_SELLLIMIT, Magic) )

OrderSend(Symbol(),OP_SELLLIMIT,Lots,Ask+(Shag/0.2)*Point,3,0,0,0,",123,0,Red);

perdido } obrigado!

 
Olá, meu tempo no terminal não coincide com o tempo real, agora se eu colocar o cursor sobre a vela M5 mostra 18,45, e na verdade na Ucrânia 19,45, como mudar o tempo?
 
sanktum:
Olá, meu tempo no terminal não coincide com o tempo real, agora se você pairar sobre o castiçal M5 mostra 18,45, mas na verdade na Ucrânia 19,45, como mudar o tempo?

Nenhuma. O tempo nos candelabros é o tempo do servidor.

 

Boa tarde.

Estou escrevendo dados para um arquivo em cada abertura de um novo bar:

int handle=FileOpen(Symbol1+Symbol2+".csv",FILE_WRITE|FILE_READ|FILE_CSV);
      if(handle>0)
        {
         FileSeek(handle,0,SEEK_END);
         FileWrite(handle,TimeToString(TimeCurrent(),TIME_DATE|TIME_MINUTES), DoubleToString(Pr1,2),DoubleToString(Pr2,2),DoubleToString(Pr3,2),DoubleToString(Pr4,2));
         FileClose(handle);
        }

Preciso do indicador para ler estes dados e construir um gráfico sobre os intervalos de tempo registrados.

Quero ter um indicador que leia estes dados e os desenhe no gráfico a cada abertura de um novo bar.

 

Eu instalei o MT4 (Versão: 4.00 Build 451) e notei que na pasta Experts Logs existe apenas um arquivo datado do dia em que o terminal foi instalado, ou seja, o 13º. Não há mais arquivos de log, embora eu tenha ligado e desligado a plataforma muitas vezes.

Quaisquer comentários sobre este fenômeno serão bem-vindos.

 
Geowind64:

Eu instalei o MT4 (Versão: 4.00 Build 451) e notei que na pasta Experts Logs existe apenas um arquivo datado do dia em que o terminal foi instalado, ou seja, o 13º. Não há mais arquivos de log, embora eu tenha ligado e desligado a plataforma muitas vezes.

Quaisquer comentários sobre este fenômeno serão bem-vindos.


Preciso executar pelo menos um especialista/indicador/script, eles são os que escrevem nesta pasta.