[ARQUIVO]Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por ela. Não posso ir a lugar nenhum sem você - 5. - página 265

 
vasabu2012:

Pessoal, eu não conheço Kim, talvez alguém conhecedor possa responder neste tópico.

Eu realmente apreciaria!

Aqui ele é Kim Igor V. E aqui estão algumas funções úteis da KimIV
 

Pergunta para profissionais: precisamos puxar os dados sobre o último fechamento
ordem, manter a contagem dos números de ordem não é possível porque
Se você quiser obter os dados sobre a última ordem fechada, você tem que manter a contagem de todos os números de ordem, é impossível porque vários EAs funcionam e todos colocam e fecham
Cada EA tem seu próprio feiticeiro.
A pergunta é sobre os dados da última ordem fechada no terminal?

QUEM SABE A RESPOSTA, POR FAVOR!!!

 
vasabu2012:
Pergunta para os profissionais: Precisamos extrair dados do último fechamento
ordem, para manter a contagem dos números de pedidos não é possível porque
Tenho alguns EAs funcionando e todos eles colocados e fechados
Cada EA tem seu próprio feiticeiro.
A pergunta é sobre os dados da última ordem fechada no terminal?

Não sou cientista, mas se você está procurando a última encomenda, encontre-a até o momento...
 
ESPECIFICAMENTE COMO?
 
Como faço para que uma EA funcione não apenas na demonstração?
Arquivos anexados:
sovetnik.ex4  31 kb
 
sergio7:
como faço para que uma EA funcione não apenas em demonstração?
Aquele que você postou aqui - NOTHING
 
sergio7:
Como faço para que uma EA funcione não apenas na demonstração?

Não é o código fonte! Deve ser mq4, não eh4!
 
paladin80:
A que você postou aqui NÃO É O NENHUMA.


O mesmo intruso em outro fio:

sergio704.04.2013 21:04
Ajude a fazer a EA funcionar não apenas em demonstração.
Arquivos anexos:
tpyokfcx.ex4(30.27 KB)
 

Eu decidi verificar as bibliotecas queTarasBy escreveu. Eu comecei com estehttps://www.mql5.com/ru/code/10659

Há algumas perguntas. Vou ser consistente. Por exemplo:

//IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+
//|  Автор : TarasBY, taras_bulba@tut.by                                              |
//+-----------------------------------------------------------------------------------+
//|        Получаем торговую информацию по символу                                    |
//IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+
void fGet_MarketInfo (string fs_Symbol, int fi_Ticket = 0)
{
//----
         if (fs_Symbol != bs_Symbol || fi_Ticket < 0)
         {
                  if (fi_Ticket > 0)
                  {
                     bs_Symbol = OrderSymbol();
                  }
                  else
                  {
                     bs_Symbol = fs_Symbol;
                  }
                  if (bs_Symbol == Symbol())
                  {
                      bi_SymDigits = Digits;
                      bd_SymPoint = Point;
                  }
                  else
                  {
                      bi_SymDigits = MarketInfo (fs_Symbol, MODE_DIGITS);
                      bd_SymPoint = MarketInfo (fs_Symbol, MODE_POINT);
                  }
        if (bd_SymPoint == 0.0)
        {
           bd_SymPoint = fGet_Point (fs_Symbol);
        }
                  bd_ProfitMIN = NDP (ProfitMIN_Pips);
         }
         if (fi_Ticket > 0)
         {
            fGet_OrderDetails (fi_Ticket);
         }
    //---- Получаем текущие цены по инструменту
    RefreshRates();
    bda_Price[0] = NDD (fGet_TradePrice (0, bb_RealTrade, bs_Symbol));
    bda_Price[1] = NDD (fGet_TradePrice (1, bb_RealTrade, bs_Symbol));
    bd_Spread = NDD (bda_Price[1] - bda_Price[0]);
//----
}

Podemos ver no próprio parâmetro de função:

fi_Ticket = 0

Normalmente tais funções já são chamadas após a seleção do pedido, o que significa que elas terão um bilhete. Por que devemos então atribuir um valor padrão de zero?

O próximo passo é ainda mais interessante:

if (fs_Symbol != bs_Symbol || fi_Ticket < 0)
{
   if (fi_Ticket > 0)
   {
      bs_Symbol = OrderSymbol();
   }
   else
   {
     bs_Symbol = fs_Symbol;
                  }
                  if (bs_Symbol == Symbol())
                  {
                      bi_SymDigits = Digits;
                      bd_SymPoint = Point;
                  }

A variável fs_Symbol é imediatamente comparada à bs_Symbol.

Osímbolo bs_Symbol acima não foi inicializado, onde aprópria funçãofGet_MarketInfo() é chamada. E para que serve este símbolo bs_Symbol?

também no estado em que se encontram:

if (fs_Symbol != bs_Symbol || fi_Ticket < 0)

condição, sefi_Ticket < 0, então próximo...

if (fi_Ticket > 0)
{
   bs_Symbol = OrderSymbol();
}

e isto já está em contradição com a condição. No início do código, a condiçãofi_Ticket < 0 deve ser mantida, e então dentro desta condição o bilhete > 0. Onde está a lógica?

Razão: