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

 
OlgaKom #:

Olá a todos!

Alguém pode me dizer como obter corretamente o valor do preço e o tamanho do carrapato

Ao obter isto para o símbolo

s vezes os valores recebidos diferem dos valores reais.

Alguém sabe o que isso tem a ver?

No 4 pode não funcionar corretamente se a moeda do depósito não for USD e não houver conversões necessárias na visão geral do mercado. O preço do ponto na moeda do depósito e o volume do depósito simplesmente não pode ser calculado, não há dados.

Para ser bom e correto - se depositar por exemplo em RUB, então TODOS os pares de rublo disponíveis devem ser incluídos. E é melhor manter os depósitos nas principais moedas, USD/EUR/JPY. Os menores de idade são apenas para o desespero.

PS/ Se o depósito não for em USD: O instrumento tem propriedades SYMBOL_CURRENCY_PROFIT,BASE,MARGIN - antes de negociá-lo/analisá-lo, adicione os pares apropriados com ACCOUNT_CURRENCY, através de SymbolSelect(). Com antecedência !

PPS/ Eu só tive tal situação em 4... Eu só não tinha contas exóticas em 5 ainda :-) Eu não vou dizer nada sobre isso

 

Não entendo por que os níveis de negociação não são exibidos em alguns símbolos e não há a possibilidade de definir a negociação com um clique.

 
Olá, eu tenho uma pergunta sobre o terminal MT4. Trabalho com o MT4 há vários anos, mas nunca encontrei tal coisa. Não sei o que fazer quando estou trabalhando em meu PC e não o tenho nos terminais que estão em um servidor remoto.
 

Boa tarde!!!!

Ajude-me a mudar uma função que calcula apenas as perdas de ordens não lucrativas em uma grade de ordens

//+----------------------------------------------------------------------------+
//| Калькуляция убыточных ордеров                                              |
//+----------------------------------------------------------------------------+
double Loss()
  {
   double oLoss = 0;
   for(int i = OrdersTotal()-1; i>=0; i--)
     {
      if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
        {
         if(OrderSymbol() == Symbol() && OrderMagicNumber() == Magic)
           {
            if(OrderType() == OP_BUY || OrderType() == OP_SELL)
              {
               if(OrderProfit()<0)
                 {
                  oLoss += OrderProfit();
                 }
              }
           }
        }
     }
   return(oLoss);
  }

Precisamos mudar a função que calcula apenas o tamanho mínimo do lote a partir de cada pedido na rede de pedidos. Lote mínimo=0,01

Obrigado!!!!

 

Bom dia! Comecei agora mesmo a aprender MQL4 e estou tentando escrever um EA baseado nos dados do indicador renko bricks v2. O problema é que a EA com cálculos simples parece ser muito lenta no testador. Funciona, mas corre muito lentamente. Acho que sou inexperiente o suficiente para escrever bobagens, então estou pedindo ajuda aos mais velhos).

Resumindo. O escalper Expert Advisor, comercializa no m1, aguarda a mudança de cor do tijolo e abre um acordo na direção de um novo movimento. Anexo abaixo o próprio código fonte conselheiro, e o próprio turndown. Obrigado de antemão!

Arquivos anexados:
 
Dmitri73 #:
Olá, pergunta sobre o terminal MT4. Há alguns anos eu trabalho com o MT4, mas nunca vi tal coisa. Nunca vi uma bagunça assim antes.

Estranho, qual é a construção?

 

Olá. Pergunta para especialistas em codificação, pois não consigo encontrar uma resposta para minha pergunta em nenhum lugar. Estou usando a função for para procurar velas, encontrar a vela certa e obter os dados dela, mas em uma enumeração de velas há várias, como posso chegar mais perto delas? Não consigo encontrá-lo.

int SvechaVniz()
  {
   for( a=2; a<55; a++)
     {
      if(iClose(Symbol(),TF_1,a)<iOpen(Symbol(),TF_1,a))
        {
         dn=a;
         dn_o=iOpen(Symbol(),TF_1,dn);
         dn_h=iHigh(Symbol(),TF_1,dn);
         dn_l=iLow(Symbol(),TF_1,dn);
         dn_c=iClose(Symbol(),TF_1,dn);
         Print(dn);
         в переменную dn приходит несколько индексов свечей, как их перебрать и выбрать ближайший?
        }
     }
   return(0);
  }
 
Александр Вараксин #:

Olá. Pergunta para especialistas em codificação, pois não consigo encontrar uma resposta para minha pergunta em nenhum lugar. Estou usando a função for para procurar velas, encontrar a vela certa e obter os dados dela, mas em uma enumeração de velas há várias, como posso chegar mais perto delas? Não consigo.

Se você iniciar o ciclo a partir da última vela, a última "vela necessária" será a que tiver o índice mais próximo.

for( a=55; a>2; a--)
 
Александр Вараксин #:

Olá. Pergunta para especialistas em codificação, pois não consigo encontrar uma resposta para minha pergunta em nenhum lugar. Estou usando a função for para procurar velas, encontrar a vela certa e obter os dados dela, mas em uma enumeração de velas há várias, como posso chegar mais perto delas? Não consigo encontrá-lo.

Você pode fazer isso assim:

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   
Alert("индекс свечи = ",SvechaVniz(0)); 
   
  }
//+------------------------------------------------------------------+

int SvechaVniz( int n=0)
  {  
  int  k=0;
  
   for(int a=0; a<55; a++)
     {
      if(iClose(Symbol(),0,a)<iOpen(Symbol(),0,a))
        {
         k++;
         if (k>n) return(a);
        }
     }
   return(0);
  }

A função retorna o índice da vela de que você precisa,

0 é o mais próximo, 1 é o próximo.

 
Alekseu Fedotov #:

Você pode fazer isso assim:

A função retorna o índice da vela que você deseja,

0 é o mais próximo, 1 é o próximo.

Obrigado, eu vou tentar.