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

 
Vitalie Postolache:
Mais uma vez. OrderSelect deve vir primeiro quando se trabalha com uma ordem. Depois, tudo o resto.
Obrigado pela resposta ... Você está dizendo que a linha se(OrderSelect(i=0;i<accTotal;i++)==verdadeiro) não está escrita corretamente ou no lugar de código errado?
 
bablusut:
Obrigado pela resposta ... Você está dizendo que a linha se(OrderSelect(i=0;i<accTotal;i++)==verdadeiro) não está escrita corretamente, ou no lugar errado no código? ...
Acrescentei detalhes lá.
 

Renat Akhtyamov:
по ссылке пройдите, она у Вас в посте выделена.

Já dei uma olhada. Não tem as informações necessárias. Valor de 10 dígitos no buffer vazio e valor de preço quando há um sinal... Como o código mql4 denota a ausência ou presença de um valor no buffer? (Já o usei mais de uma vez, mas esqueci ...)

if( iCustom(iCustom(NULL,t, "T...c",1,b) != .......).....

 

atik441:уже смотрел. нет там нужной информации .в пустом буфере 10и значное значение  а при наличии сигнала - значение цены... и как в коде mql4 обозначается отсутствие или наличие значения в буфере ? (пользовался не раз ,да забыл ...) 

if( iCustom(NULL,t, "T...c",1,b) != EMPTY_VALUE).....
 
Vitalie Postolache:
if( iCustom(NULL,t, "T...c",1,b) != EMPTY_VALUE)..... O que precisamos... Obrigado pelo lembrete!
 

Ajude a entender. É possível executar ordens sequencialmente se duas direcionadas de forma diferente

as negociações abertas primeiro aciona o TP de qualquer uma das negociações, e depois somente SL, embora no processo de negociação o nível SL

qualquer uma das profissões foi aprovada primeiro?

 
ganri:

Ajude a entender. É possível executar ordens sequencialmente se duas direcionadas de forma diferente

as negociações abertas primeiro aciona o TP de qualquer uma das negociações, e depois somente SL, embora no processo de negociação o nível SL

qualquer uma das profissões foi aprovada primeiro?

analisar asc/bid
 
Vitalie Postolache:

Mais uma vez. OrderSelect deve vir primeiro quando se trabalha com uma ordem. E depois tudo mais.

Se estamos trabalhando em um loop de avaliação de pedidos, a ordem das ações é a seguinte

1. Verificando se(OrderSelect())

2. Verificando se é a ordem correta, normalmente verificamos o símbolo e o número mágico, e então verificamos o tipo se(OrderSymbol()==_Symbol && OrderMagicNumber()==Magic && OrderType()<2) - neste caso apenas ordens de mercado colocadas para o símbolo atual e com o número mágico especificado são processadas

Processamento de outros dados como OrderComment(), OrderProfit(), etc.

Seria algo parecido com isto:

for(int i=OrdersHistoryTotal()-1; i>=0; i--) //перебираем историю торгов
{
      if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)) //если ордер выбран то работаем дальше, иначе смысла нет
      {
         if(OrderSymbol()==_Symbol && OrderMagicNumber()==Magic && OrderType()<2) //Если ордер тот, что нам нужен (эту проверку можно и опустить, если нужно обработать все ордера в истории)
         {
            if(StringFind(OrderComment(),"[tp]",0)>-1) //если найден признак закрытия профитом
            Print("Order #",OrderTicket()," profit: ", OrderTakeProfit());
            if(StringFind(OrderComment(),"[sl]",0)>-1) //если найден признак закрытия стоплосс
            Print("Order #",OrderTicket()," loss: "OrderTakeProfit());
         }
      }
}

Obrigado por sua resposta ... Assim, para buscar ordens no histórico de negociação, usamos a funçãoOrdersHistoryTotal que, depois de descartar tudo o que não precisamos, se parece com isto

for(int i=OrdersHistoryTotal()-1; i>=0; i--) // - aqui está a pergunta, o que significa "accTotal"no modelo de função, que descartamos? e por que você tomou "i--" e não "i++" como no modelo?
- A segunda funçãoOrderComment retorna o comentário da ordem selecionada, se for selecionada pela função anteriorOrderHistoryTotal, toma a forma

if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)) //- onde "i", este é "i>=0" da função anterior, e "SELECT_BY_TICKET" foi substituído por "SELECT_BY_POS" e "MODE_HISTORY"foi adicionado- por quê?

- A terceira linha é a definição, na verdade não precisamos verificar a ordem necessária, uma vez que só temos ordens de mercado fechadas por TP e SL nesta história (podemos ter uma ordem pendente fechada, mas será rara), todos os outros parâmetros de ordem não são importantes para nós. A única coisa importante é que a quantidade de pedidos fechados na história aumentará constantemente, é possível fazer com que nosso recálculo tome certa quantidade dos últimos pedidos, por exemplo, 5-10, e não todos eles?

- As últimas quatro linhas são bastante claras, a única questão é sobre a função PlaySound, cujo código deve ser inserido após cada linha"Print("..." naforma a seguir:

bool PlaySound(

fio // nome do arquivo

);

... Ou também é convertido de alguma forma?

 
bablusut:

Leia sobre loops, como eles são limitados e como funcionam, e em geral, seria bom ler um livro sobre C++ para iniciantes, C++ é muito semelhante ao MQL, a única diferença está nas funções comerciais.

Os artigos no fórum estão na borda superior da janela com fundo azul. Você não pode simplesmente recontar e explicar todo o curso no fórum.

Учебник по MQL4
Учебник по MQL4
  • book.mql4.com
Учебник по MQL4
 
Vitalie Postolache:

Leia sobre loops, como eles são limitados e como funcionam, e em geral, seria bom ler um livro sobre C++ para iniciantes, C++ é muito semelhante ao MQL, a única diferença está nas funções comerciais.

Os artigos no fórum estão na borda superior da janela com fundo azul. Você não pode simplesmente recontar e explicar todo o curso no fórum.

ObrigadoVitalie Postolache por sua ajuda e conselhos, e é tarde demais para eu ler todos os livros didáticos no meu sexto aniversário - não poderei estudar muito, deveria ter feito isso mais cedo, mas não tive tempo. Estou realmente aborrecendo você aqui, desculpe, não vou mais incomodá-lo.
Razão: