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

 
Você pode ensinar como abrir e fechar uma negociação na MT4 a partir do mercado e de ordens pendentes?
 

Olá queridos programadores!!!
Estou fazendo um contador de carrapatos para o candelabro e devo ter me enganado! Quero fazer com que conte carrapatos quando o preço só está subindo, mas conta quando está subindo e quando está descendo (todos os carrapatos, e eu quero apenas carrapatos crescendo) Olhe para plz...

double CountTickBUY()
{

double old_price;
double delta_cur; 
double price = 0;
double old_open_price = 0;

for(int i = OrdersTotal() - 1; i >= 0; i--)
   {
         if(OrderSymbol() == _Symbol && OrderMagicNumber() == Magic && OrderType() == OP_BUY)
           {
           old_price = iClose(NULL, 0 , i);
           price = iOpen(NULL, 0 , i);

           delta_cur = old_price > price;
           if(delta_cur > 0) 
             {
             count_plusbuy++;
             }
           }
   }
   return(count_plusbuy);
}
 
sviter-pro:

Olá queridos programadores!!!
Estou fazendo um contador de carrapatos para a vela, e algo deu errado! Eu quero fazer com que conte carrapatos quando o preço só está subindo, mas conta quando está subindo e quando está descendo (todos os carrapatos, e eu quero apenas carrapatos crescendo) Olhe para plz...

int CountTickBUY()
{
   static double    old_price     = Bid;
   static datetime  time_bar      = Time[0];
   static int       count_plusbuy = 0;
   
   if( time_bar != Time[0] )
   {
      count_plusbuy = 0;
      time_bar      = Time[0];
   }
   
   if( Bid - old_price > 0 )
      count_plusbuy++;
   old_price = Bid;

   return(count_plusbuy);
}
 
Konstantin Nikitin:

Muito obrigado!

 

Konstantin Nikitin: Считает тики на кождой свече хорошо, но по 2 раза! Тоесть если отсчет пошел от 1.00000 и дошел до 1.00100 он 100 пунктов щитает, потом когда спустилась цена до 1.00080 он ждет и не считает, но когда цена опять начинает расти от 1.00080 то опять начинает считать пункты, а надо что бы ждал до 1.00100 и от нее считал дальше!!!

int CountTickBUY()
{
   static double    old_price     = Bid;
   static datetime  time_bar      = Time[0];
   static int       count_plusbuy = 0;
   
   if( time_bar != Time[0] )
   {
      count_plusbuy = 0;
      time_bar      = Time[0];
   }
   
   if( Bid - old_price > 0 )
      count_plusbuy++;
   old_price = Bid;

   return(count_plusbuy);
}



 

Favor explicar o que exatamente a função"IsTradeAllowed" verifica quando sua segunda forma é chamada.

Eu sei que o primeiro formulário verifica se o comércio automático é permitido e se o fluxo comercial é livre. E quanto ao segundo formulário? Quais são exatamente os controles que acontecem quando o segundo formulário é chamado?

 
Asa saas:

Favor explicar o que exatamente a função"IsTradeAllowed" verifica quando sua segunda forma é chamada.

Eu sei que o primeiro formulário verifica se o comércio automático é permitido e se o fluxo comercial é livre. E quanto ao segundo formulário? Quais são exatamente as verificações que acontecem quando o segundo formulário é chamado?

O segundo formulário retorna informações sobre a possibilidade de trocar por um símbolo especificado em um determinado momento.


Se o fluxo comercial é livre isTradeContextBusy

 
Alekseu Fedotov:

A segunda forma da chamada retorna informações sobre a capacidade de negociar por um determinado símbolo em um determinado momento.


Se o fluxo comercial é livre isTradeContextBusy

A primeira forma da função "IsTradeAllowed" não é também verificar se o fio comercial está livre ou não?

Estou apenas usando a segunda forma da função "IsTradeAllowed" para descobrir se o mercado está aberto antes de executar ordens.

Entretanto, não entendo bem se preciso usar uma função separada para verificar se um fluxo livre como "IsTradeContextBusy" está disponível ou se a segunda forma de "IsTradeAllowed" já faz essa verificação.

 
Asa saas:

A primeira forma de "IsTradeAllowed" não verifica também se o fluxo comercial é livre ou não?

Eu apenas uso a segunda forma da função "IsTradeAllowed" para descobrir se o mercado está aberto antes de executar ordens.

Entretanto, não tenho certeza se preciso usar uma função separadamente para verificar se um fluxo livre como "IsTradeContextBusy" está disponível ou se a segunda forma de "IsTradeAllowed" já faz essa verificação.

1. Não

2. Não, ele não permite o comércio utilizando Expert Advisors, mas pode fazê-lo manualmente

3. necessidade de usar outra função para verificar o fluxo comercial ("IsTradeContextBusy()")

 
Asa saas:

O primeiro formulário "IsTradeAllowed" também não verifica se o fluxo comercial é livre ou não?

Sim, é verdade. Pelo menos, diz o mesmo na documentação. Eu mesmo não sei por que isso é feito, mas o fato permanece o mesmo:

Возвращаемое значение

Возвращает true, если эксперту разрешено торговать и поток для выполнения торговых операций свободен, иначе возвращает false.

Eu simplesmente uso a segunda forma da função "IsTradeAllowed" para descobrir se o mercado está aberto antes de executar ordens.

Entretanto, não tenho certeza se a função para verificar se o fluxo livre está disponível como "IsTradeContextBusy" deve ser usada separadamente ou se o segundo formulário "IsTradeAllowed" já realiza tal verificação.

Mas não está claro com o segundo formulário. Ela é responsável pelo tempo no futuro ou pelo passado.

Razão: