Perguntas de Iniciantes MQL4 MT4 MetaTrader 4 - página 2

 
Vladimir Karputov:

Como você sugeriu, o compilador jura.

{
   Ticket=OrderSend(NULL,OP_BUY,Lot,Ask,slippage,0,0,NULL,magic,0,Blue);
   if(!Ticket>0)Print(GetLastError());
   else
   {
    if(OrderSelect(Ticket,SELECT_BY_TICKET,MODE_TRADES)==true)
    if((OrderMagicNumber()==magic) && (OrderSymbol()==Symbol()))
    {
     TP=NormalizeDouble(Bid+TakeProfit*Point,Digits);
     bool modify=OrderModify(OrderTicket(),OrderOpenPrice(),TP,0,0);
      return;
    }
   }

Não funciona.

 
Nickolay72:

Como você sugeriu, o compilador jura.

{
   Ticket=OrderSend(NULL,OP_BUY,Lot,Ask,slippage,0,0,NULL,magic,0,Blue);
   if(!Ticket>0)Print(GetLastError());
   else
   {
    if(OrderSelect(Ticket,SELECT_BY_TICKET,MODE_TRADES)==true)
    if((OrderMagicNumber()==magic) && (OrderSymbol()==Symbol()))
    {
     TP=NormalizeDouble(Bid+TakeProfit*Point,Digits);
     bool modify=OrderModify(OrderTicket(),OrderOpenPrice(),TP,0,0);
      return;
    }
   }

Não funciona.

Aqui está o seu código:

if(! Ticket>0)Print(GetLastError())--- O bilhete é um número inteiro, ou seja, "2354865". Agora uma pergunta: um número inteiro não pode ser ( !2354865) Um número inteiro pode ser maior que "> 0" ou menor que "< 0" . Este valor de bool pode ser falso/verdadeiro ( ! )

Além disso, esta construção:if(OrderSelect(Ticket,SELECT_BY_TICKET,MODE_TRADES)==verdadeiro) --- enumera parâmetros por bilhete, e se você visualizar um bilhete concreto, não faz sentido verificar seu número mágico ou símbolo, ou seja, é obviamente desnecessário:if((OrderMagicNumber()==magic) && (OrderSymbol()==Symbol()))

E por último, tais construções são melhor agrupadas para especificar explicitamente a ordem das tarefas matemáticas:NormalizeDouble(Bid+( TakeProfit*Point),Dígitos);
 
Vitaly Muzichenko:


E por último, é melhor agrupar tais construções para especificar explicitamente a ordem das tarefas da matriz:NormalizeDouble(Bid+( TakeProfit*Point),Dígitos);

Não, você pode fazer isso sem parênteses. Mas quando a soma tem que ser multiplicada, então são necessários parênteses.

 
poman:

pode tomar o valor de 0 bar de tempo aberto com o período D1, + adicionar o número de segundos,

na condição de comparar o tempo atual com o tempo obtido na primeira linha

em uma ordem pendente é possível colocar um número de segundos, tempo de vida da ordem.

Data_1=iTime(Symbol(),PERIOD_D1,0)+86400;  //время жизни ордера


Obrigado pela dica!) Ajudou)
 

Ajuda com o código, o conselheiro passa por todas as barras, como fazê-lo passar pelas últimas 200 barras! Obrigado

int  i, k=iBars(Symbol(), 0);
for (i=1; i<k; i++)
 

Sinal_Provedor

Fórum sobre comércio, sistemas comerciais automatizados e estratégias comerciais de teste

Perguntas de principiantes

Provider_Signal, 2016.11.09 18:38

Como fechar todos os pedidos na EA na sexta-feira à noite ? Para não deixá-lo para o fim de semana.

Função encontrada DayOfWeek().

Eu posso passar um cheque

if (DayOfWeek() == 5)
{
//
}

Mas que tipo de cheque devemos escrever pelo tempo. Por exemplo, e se fossem 22:00 ?


 
Vladimir Karputov:

Sinal_Provedor

Mas que tipo de cheque a ser passado na época. Por exemplo, o que seriam 22:00 ?
extern int St_Hour   = 22;

if (Hour()==St_Hour)
 
Aibek Mugiynov:

Ajuda com o código, o conselheiro passa por todas as barras, como fazê-lo passar pelas últimas 200 barras! Obrigado

int  i, k=iBars(Symbol(), 0);
for (i=1; i<k; i++)
for (i=1; i<200; i++)
 

Olá, ajuda.

Se nenhum amortecedor for preenchido em três barras, eu preencho o amortecedor.


     int BarCount=3;
    BER=true;
   for(int il=1;il<=BarCount;il++)
     {
      if(BufferPointUp[il]!= EMPTY_VALUE){BER=false;break;}
     }
     if(BER) BufferPointUp[i]=high[i];

Preenche em todas as barras, indiscriminadamente.

Mas tudo está correto se eu fizer isso.

if(BufferPointUp[i+1]== EMPTY_VALUE&&BufferPointUp[i+2]== EMPTY_VALUE&&BufferPointUp[i+3]== EMPTY_VALUE)BufferPointUp[i]=high[i];

Como fazeresta verificação em loop ?

 
mila.com:
extern int St_Hour   = 22;

if (Hour()==St_Hour)
Obrigado
Razão: