[Arquivo!] Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por ela. Não poderia ir a lugar algum sem você - 2. - página 295

 

Obrigado. Em princípio, basta substituir "|||" por "&&" (provavelmente quis verificar a desigualdade e depois continuar) e tudo funcionará, mas no testador funcionará de qualquer forma. Embora, é claro, sua versão será mais correta.

 

Bem, estas são nuances. Eu ainda tento reescrevê-lo para adequá-lo às minhas necessidades. Eu, por exemplo, não preciso de nenhuma seleção médica (nesta função). Também notei que a seleção em função Figar0 era da lista do histórico. O principal aqui é entender a idéia. A propósito, eu preciso de ordens da piscina, então tudo ficou muito mais fácil.

Obrigado pelas idéias e pela ajuda, pessoal.

PS: E, por favor, explique sobre

OrderType()>1
Já vi várias vezes que o OrderType é comparado como int. Qual é o truque aqui? Pensei que fosse uma variável de corda.
 
Pyro:

Bem, estas são nuances. Eu ainda tento reescrevê-lo para adequá-lo às minhas necessidades. Eu, por exemplo, não preciso de nenhuma seleção médica (nesta função). Também notei que a seleção em função Figar0 era da lista do histórico. O principal aqui é entender a idéia. A propósito, eu preciso de ordens da piscina, então tudo ficou muito mais fácil.

Obrigado pelas idéias e pela ajuda, pessoal.

PS: Você poderia explicar o seguinte?

Eu já vi o OrderType comparado como int poucas vezes. Qual é o truque aqui? Pensei que fosse uma variável de corda.

Esta é uma correspondência entre as constantes e seus valores.

OP_BUY corresponde a 0

OP_SELL corresponde a 1

__________________________________________________________________________________________________________-

Tipo de operação para a função OrderSend(). Pode ser qualquer um dos seguintes valores:

Constante Valor Descrição
OP_BUY 0 Compre
OP_SELL 1 Venda
OP_BUYLIMIT 2 COMPRA LIMITAR ordem pendente
OP_SELLLIMIT 3 Pedido de LIMITE DE VENDA Pendente
OP_BUYSTOP 4 Ordem STOP Pendente de compra
OP_SELLSTOP 5 Pendente da ordem de parada da venda
 
Pyro:

A propósito, eu preciso de ordens da piscina, então acabou sendo muito mais simples.

Ao selecionar um pedido por índice, são utilizadas duas listas - aberta e fechada. Isto é definido especificando em qual lista você deseja vê-los ( pool de parâmetros).

Portanto, se precisarmos selecionar a partir de uma lista de ordens abertas, podemos omitir a especificação deste parâmetro (ele é definido por padrão). Se quisermos escolher entre uma lista de ordens fechadas, devemos especificar MODE_HISTORY como um parâmetro.

Assim, se você quiser encontrar a última ordem aberta, o laço é feito em ordens abertas do terminal e você também deve verificar a hora de abertura do OrderOpenTime(), se você precisar da última ordem fechada (como nos exemplos acima), o laço deve ser feito em ordens fechadas do terminal e você deve verificar OrderCloseTime() para saber quando a ordem selecionada foi fechada.

E para sua referência, se você selecionar por bilhete, o pool de parâmetros será ignorado e a ordem será encontrada em ambas as listas. Uma vez que o pedido tenha sido encontrado, devemos verificar seu tempo de fechamento para descobrir de qual lista o pedido foi selecionado. Se o tempo de fechamento for superior a zero, a ordem é fechada e foi selecionada da lista de ordens fechadas. Se o tempo de fechamento de uma ordem aberta for sempre igual a zero. Portanto, se for igual a zero, a ordem foi selecionada da lista de ordens em aberto.

Além disso, se você procurar uma ordem pendente através de seu bilhete, ela pode aparecer em ambas as listas. Isto acontecerá se for convertido em uma ordem de mercado. Portanto, você também precisará verificar o tipo de pedido que você escolheu. E se a ordem pendente for fechada, e a ordem de mercado com o mesmo bilhete não for fechada, significa que a ordem pendente foi transformada em uma ordem de mercado.

 
Figar0:

Obrigado. Em princípio, basta substituir "|||" por "&&" (provavelmente quis verificar a desigualdade e depois continuar) e tudo funcionará, mas no testador funcionará de qualquer forma. Embora, é claro, sua versão será mais correta.

Eu mesmo às vezes cometo erros bobos ao postar código aqui... Então eu corrijo o código como escaldado antes de ser lido de forma imprópria. :)))
 
#property copyright "Copyright © 2011, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"

#property indicator_chart_window
#property indicator_buffers 2

extern int period=24;
double Buf_0[],Buf_1[];

//+------------------------------------------------------------------+
int init()
  {
//---- 
   SetIndexBuffer(0,Buf_0);
   SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,1);
   SetIndexBuffer(1,Buf_1);
   SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,1);
//----
   return;
  }
//+------------------------------------------------------------------+
int start()
  {
   int  i,counted_bars,maxValueIdx,minValueIdx; 
//----

   counted_bars=IndicatorCounted();
   i=Bars-counted_bars-1;
   
   while(i>=0)
   {
   maxValueIdx=ArrayMaximum(Close,(period-1),0); 
   minValueIdx=ArrayMinimum(Close,(period-1),0);
   Buf_0[i]=Close[maxValueIdx];
   Buf_1[i]=Close[minValueIdx];
   i--;
   }
   
   
//----
   return;
  }
//+------------------------------------------------------------------+
Olá, eu queria escrever um indicador que lesse o MAX e o MIN do preço de fechamento por um certo período. Estou seguindo o tutorial, mas os dados antigos não são mostrados de forma alguma, ele mostra duas linhas horizontais com os atuais MAX e MIN. Você pode me dizer o que estou fazendo de errado?
 
borisis:
Olá, eu queria escrever um indicador que contasse o MAX e o MIN do preço de fechamento por um certo período. Como tudo o que faço no tutorial, mas os dados antigos não são desenhados de forma alguma, ele mostra duas linhas horizontais com os atuais MAX e MIN. Você pode me dizer o que estou fazendo de errado?


maxValueIdx=ArrayMaximum(Close,(period-1), i);

minValueIdx= ArrayMinimum(Close,(period-1), i);

Caso contrário, você continua encontrando os mesmos índices a cada passo

 

Olá a todos! Como descobrir a que tipo de variável pertence: int OU duplo?

e, em segundo lugar, o que significa o erro "número duplo inválido como parâmetro 1 para a função DoubleToStr"?

 
todem:

Olá a todos! Como sei o tipo de variável: int OU duplo?

Curioso quanto ao porquê? Você pode descrever uma situação em que isso seria necessário?
 
Movido.

Valdemar 01.04.2011 16:31
Saudações a todos os mestres da programação! Dica para a idéia certa, se você não se importa: Aqui eu, digo que decidi ao final de uma determinada hora de negociação, colocar uma ordem de parada, afastar-me do alto e do baixo da hora em alguns pontos, o que eu deveria usar, escrever uma função de programação!