Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
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 errado no código? ...
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)..... 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?
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?
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:
{
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?
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.
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.