[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 248

 
Meu irmão está aqui.
 
IndicadorBuffers( int count)

Aloca memória para buffers utilizados para cálculos de indicadores personalizados. O número de buffers não pode exceder 8 e não pode ser inferior ao valor especificado na propriedade indicator_buffers. Se o indicador personalizado requerer buffers adicionais para contagem, você deve utilizar esta função para especificar o número total de buffers.

Isto é, isso é correto?

#9 duplo ind_buffer1[]; // matriz para cálculos adicionais duplo ind_buffer2[]; duplo ind_buffer3[]; duplo ind_buffer4[]; duplo ind_buffer5[]; duplo ind_buffer6[]; duplo ind_buffer7[]; duplo ind_buffer8[];
double ind_buffer9[]; SetIndexBuffer(0,ind_buffer2); SetIndexBuffer(1,ind_buffer3); SetIndexBuffer(2,ind_buffer4); SetIndexBuffer(3,ind_buffer5);
SetIndexBuffer(4,ind_buffer6); SetIndexBuffer(5,ind_buffer7); SetIndexBuffer(6,ind_buffer8); SetIndexBuffer(7,ind_buffer9);
 

Alguém pode me aconselhar em particular como escrever uma EA? Em particular: Como eu prendo um lote duplo a uma parada de trilha?

 
Leo59:
IndicadorBuffers( int count)

O número de buffers não pode exceder 8 e não pode ser inferior ao valor especificado na propriedade indicator_buffers. Se um indicador personalizado requer buffers adicionais para contagem, você deve usar esta função para especificar o número total de buffers.

Isto é, é permitido.

Não.
#property indicator_buffers 9
"O número de tampões não pode exceder 8" são as palavras-chave tanto para #property indicator_buffers quanto para IndicatorBuffers.
O número de buffers indicadores de propriedade especifica o número de buffers de desenho, então IndicatorBuffers = #property indicator_buffers+número de buffers não-desenhados para calcular. Se todos os amortecedores estiverem desenhados, então IndicatorBuffers = #property indicator_buffers. Neste caso, o uso de IndicatorBuffers é opcional.
 

Estou pedindo a ajuda de especialistas. Já fiz esta pergunta algumas vezes aqui, dei um emprego no mql5.com/pt/job, até agora muito tempo, dinheiro e esforço foram gastos, mas nenhum resultado... :(

O objetivo do problema é escrever uma função que verificaria se existe uma ordem em uma faixa de preços.

Ainda mais simples - quando perguntado se há uma ordem de baía na faixa de 0,9995 a 1,0005, por exemplo.

Quem postou aqui tem uma solução funcional. por exemplo $15...

MT4...

 
granit77:
Não.
#property indicator_buffers 9
"O número de tampões não pode exceder 8" são palavras-chave tanto para #property indicator_buffers quanto para IndicatorBuffers.
O número de buffers indicadores de propriedade especifica o número de buffers de desenho, então IndicatorBuffers = #property indicator_buffers+número de buffers não-desenhados para calcular. Se todos os amortecedores estiverem desenhados, então IndicatorBuffers = #property indicator_buffers. Neste caso, o uso de IndicatorBuffers é opcional.

Caro Granito77! Se você não se importa, por favor, faça correções diretamente no código, se algo estiver errado. Será claro e compreensível.

#8 duplo ind_buffer1[]; // matriz para cálculos adicionais duplo ind_buffer2[]; duplo ind_buffer3[]; duplo ind_buffer4[]; duplo ind_buffer5[]; duplo ind_buffer6[]; duplo ind_buffer7[]; duplo ind_buffer8[]; duplo ind_buffer9[];   

int init() { IndicatorBuffers(9); SetIndexBuffer(0,ind_buffer2); SetIndexBuffer(1,ind_buffer3); SetIndexBuffer(2,ind_buffer4); SetIndexBuffer(3,ind_buffer5);
SetIndexBuffer(4,ind_buffer6); SetIndexBuffer(5,ind_buffer7); SetIndexBuffer(6,ind_buffer8); SetIndexBuffer(7,ind_buffer9); return(0); }
 
w_ersoc:

Estou pedindo a ajuda de especialistas. Já fiz esta pergunta algumas vezes aqui, dei um emprego no mql5.com/pt/job, até agora muito tempo, dinheiro e esforço foram gastos, mas nenhum resultado... :(

O objetivo da tarefa é escrever uma função que verificaria se existe uma ordem na faixa de preço.

Para simplificar ainda mais, quando perguntado se há uma ordem de baía na faixa de 0,9995 a 1,0005, por exemplo.

Quem postou uma solução de trabalho aqui... por exemplo $15...

MT4...

No laço, passe por todas as posições abertas, se o tipo de ordem selecionada for igual ao que foi passado para a função, se o símbolo da ordem for igual ao que foi passado para a função, se o preço de abertura da ordem cair dentro da faixa especificada (maior ou igual a 0,9995 e menor ou igual a 1,0005), então a função retorna verdadeira, caso contrário retorna falsa.

É uma simples enumeração de pedidos com uma verificação de coincidência.

ZS. Por 15 libras uma mulher recebe um sorvete, e as crianças recebem flores... Ou vice versa ... :)

 
artmedia70:

No laço, passe por todas as posições abertas se o tipo de ordem selecionada for igual à ordem passada para a função, se o número mágico da ordem for igual ao número passado para a função, se o preço aberto da ordem cair dentro da faixa especificada (maior ou igual a 0,9995 e menor ou igual a 1,0005), então a função retorna verdadeiro, caso contrário retorna falso.

É uma simples enumeração de pedidos com uma verificação de coincidência.

ZS. Por 15 libras uma mulher recebe um sorvete, e as crianças recebem flores... Ou vice versa ... :)

Sim, é elementar, mas não funciona.

Você pode argumentar, mas tantas pessoas disseram que é uma merda, mas no final nada ((

 
w_ersoc:

Mm-hmm. É elementar, mas não funciona.

Você pode argumentar, mas tantas pessoas disseram que é uma besteira e no final nada ((


Aqui está:

//+------------------------------------------------------------------+
//|          Function  : GetOrdersInThePrice(min,max,&tickets[])bool |
//|          Copyright © 2012, XrustSolution.  mail:xrustx@gmail.com |
//|          https://www.youtube.com/user/opmlv http://forexrust.info |
//+------------------------------------------------------------------+
//|   Description: Пишет в массив тикеты ордеров с ценою открытия    |
//| между максимальной и минимальной ценой, если ордеров нет = false |
//+------------------------------------------------------------------+
bool GetOrdersInThePrice(double pr1,double pr2,int &tickets[]){int i,ii;double min,max;
   min = MathMin(pr1,pr2);
   max = MathMax(pr1,pr2);
   ArrayResize(tickets,100);
   for(i=OrdersTotal()-1;i>=0;i--){
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){
         if(OrderSymbol()!=Symbol()){continue;}
         if(OrderOpenPrice()>max){continue;}
         if(OrderOpenPrice()<min){continue;}
         tickets[ii] = OrderTicket();
         ii++;
      }
   }
   if(ii<1){return(false);}
   ArrayResize(tickets,ii);
   return(true);
}
 
FAQ:


Aqui está:

erros de tipos incompatíveis

Razão: