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

 
tommy27:
Obrigado, fiz isso com Close e como você aconselhou:
mas o resultado só é atualizado quando uma nova barra aparece e eu quero ver e registrar as mudanças em cada tic tac.

Se a EA não for ligada em loop, o resultado mudará a cada tick
 

Obrigado a todos vocês, separadamente tudo funciona:

//+------------------------------------------------------------------+
//|                                                        Delta.mq4 |
//|                                                          tommy27 |
//|                                                  tommy27@mail.ru |
//+------------------------------------------------------------------+
#property copyright "tommy27"
#property link      "tommy27@mail.ru"

double 
       StartPrice1,
       Delta1,
       Price00;


//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----
   Price00 = 5000;
StartPrice1 =  iClose(0,0,0);
//StartPrice1 = Close[0];
Delta1 = MathAbs (Price00 - StartPrice1);
//if (Delta1>1000) Delta1=0;
Comment (Delta1);
Print ("Raznica= ",Delta1);
//----
   return(0);
  }
//+------------------------------------------------------------------+

Mas o código principal só conta com o fechamento de barras, vou investigar isso.

 
PapaYozh:

Se a EA não for ligada em loop, o resultado mudará a cada tick
Obrigado.
 
Há duas opções em OrderSelect():
MODE_TRADES - ordem é selecionada entre ordens abertas e pendentes,
MODE_HISTORY - ordem é selecionada entre ordens fechadas e apagadas.

- Estou correto em entender que MODE_TRADES é usado somente com OrderTotal(), e MODE_HISTORY - somente com OrderHistoryTotal()?
- Em caso afirmativo, por que eles são necessários?
Obrigado!
 
chief2000:
Há duas opções em OrderSelect():
MODE_TRADES - ordem é selecionada entre ordens abertas e pendentes,
MODE_HISTORY - ordem é selecionada entre ordens fechadas e apagadas.

- Estou correto em entender que MODE_TRADES é usado somente com OrderTotal(), e MODE_HISTORY - somente com OrderHistoryTotal()?
- Se sim, por que eles são necessários?
Obrigado!


Você entendeu corretamente.

Sua segunda pergunta não está clara. Se você selecionar um pedido por sua posição, você precisa saber o número total de pedidos

 
PapaYozh:


Você entendeu corretamente.

Sua segunda pergunta não está clara. Se você selecionar um pedido por sua posição, você precisa saber o número total de pedidos

Ambos estes parâmetros (MODE_TRADES e MODE_HISTORY) são usados somente no caso de SELECT_BY_PO, mas você poderia removê-los completamente (use o padrão em MT4 - para OrderTotal() e OrderHistoryTotal() respectivamente).
Não se trata de uma questão de princípio, o principal para mim foi a resposta à primeira pergunta.
Obrigado!
 

alsu, compra aberta se o preço subiu mais de 20 pips nos últimos 10 minutos; venda aberta se o preço caiu mais de 20 pips nos últimos 10 minutos.

E se não for um problema: Compra aberta se o preço atual for superior ao máximo do bar anterior, venda aberta se o preço atual for inferior ao mínimo do bar anterior.

P.S. O código para abrir comprar e vender já está no quadro, por isso não preciso descrevê-los... Estou mais interessado em como escrever corretamente as condições de abertura descritas acima...

 
oDin48:

alsu, compra aberta se o preço subiu mais de 20 pips nos últimos 10 minutos; venda aberta se o preço caiu mais de 20 pips nos últimos 10 minutos.

Abro exatamente no momento em que o nível é atravessado ou após 10 minutos?)


E se não for muito incômodo: compra aberta se o preço atual for um pouco mais alto que o alto da barra anterior, venda aberta se o preço atual for um pouco mais baixo que o baixo da barra anterior.

extern int level = 10; //в пунктах

....
int start()
{
...

   RefreshRates();

   if(Bid>High[1]+level*Point)
   {
      //BUY
   }

   if(Bid<Low[1]-level*Point)
   {
      //SELL
   }
...
}
 

alsu, exatamente ao cruzar, verifique a hora e se ela se enquadra no intervalo de tempo que faz a troca.

Obrigado. Vou tentar agora.

 
oDin48:

alsu, exatamente quando você cruza, verifique o tempo e se ele cai no intervalo de tempo faça uma troca.

Em tal variante, você tem que se lembrar do histórico do tick durante os últimos 10 minutos... o código não é trivial