Aparentemente, você e Andrei deveriam parar de andar de trolha...
O ambiente é realmente hostil (como já mencionado acima). Eu vim aqui para discutir questões de MQLQL. Mas eu li algo que não é sobre a MQL. Do que você está falando?
Deixe que algum recém-chegado faça uma pergunta ou algo assim. Ou talvez ele tenha medo de...? Perca-se na briga entre você e Andrei... :)
Por favor, informe como escrever o código corretamente. Eu fecho vários pedidos ao mesmo tempo em diferentes direções, diferentes pares de moedas, de acordo com certas condições. Mas às vezes o comando não é executado devido à empresa de corretagem e alguma parte das ordens permanece em aberto. Posso prescrever Sleep para cada pedido. Mas eu quero algo mais curto.
makssub Sleep para cada pedido. Eu gostaria de ter algo mais curto.
Quando a condição de saída/encerramento for alcançada, devemos adicionar os carrapatos à matriz. Então, se a matriz não estiver vazia, o programa fará um loop através dela, chamando OrderClose para cada bilhete. Em seguida, verifique a existência de cada bilhete, e remova-o da lista. Repita estas ações a intervalos de 1-3 segundos até que a lista esteja vazia.
A troca e a comissão foram esquecidas para serem adicionadas! O spread já é levado em conta, pois está sempre entre o preço de entrada e o preço de saída.
Olá a todos. Por favor, diga-me onde posso encontrar um roteiro ou indicador que envie uma notificação para meu telefone, quando o preço atingir um determinado nível especificado por mim.
if(isNewBar()==true) {
if(Signal > clos ) { //--------------------- МА выше цены закрытия предыдущего бара.if(ExistPositions( NULL, OP_BUY, Magic) == true) //---------------- Если есть позиция BUY то
ClosePosWithMaxProfitInCurrency(); //-------- закрытие одной позиции с максимальным профитом в валюте депозита.if(ExistPositions( NULL, OP_BUY, Magic) == False) //----------- если позиции BUY отсутствуют то
ticket=OpenPosition(NULL,OP_SELL, NDLot(Lot),0,0, Magic, Com);} //------------ открываем позицию SELLif(Signal < clos ) { //--------------------- МА ниже цены закрытия предыдущего бара.if(ExistPositions( NULL, OP_SELL, Magic) == true) //---------------- Если есть позиция SELL то
ClosePosWithMaxProfitInCurrency(); //---------------------закрытие одной позиции с максимальным профитом в валюте депозита.if(ExistPositions( NULL, OP_SELL, Magic) == False) //----------- если позиции SELL отсутствуют то
ticket=OpenPosition(NULL,OP_BUY, NDLot(Lot),0,0, Magic, Com);} //------------ открываем позицию BUY
} return;
Adicione as linhas, que destaquei ao código fonte, solte-o na pasta Indicadores e compile-o. Este indicador pode ser adicionado ao gráfico quantas vezes desejar e receber sinais quando diferentes níveis forem cruzados. O código foi finalizado on-line. O resultado não é verificado.
Qual é a pergunta?)))
Aparentemente, você e Andrei deveriam parar de andar de trolha...
O ambiente é realmente hostil (como já mencionado acima). Eu vim aqui para discutir questões de MQLQL. Mas eu li algo que não é sobre a MQL. Do que você está falando?
Deixe que algum recém-chegado faça uma pergunta ou algo assim. Ou talvez ele tenha medo de...? Perca-se na briga entre você e Andrei... :)Boa tarde a todos.
Por favor, informe como escrever o código corretamente.
Eu fecho vários pedidos ao mesmo tempo em diferentes direções, diferentes pares de moedas, de acordo com certas condições. Mas às vezes o comando não é executado devido à empresa de corretagem e alguma parte das ordens permanece em aberto. Posso prescrever Sleep para cada pedido. Mas eu quero algo mais curto.
https://book.mql4.com/ru/trading/orderclose
Quando a condição de saída/encerramento for alcançada, devemos adicionar os carrapatos à matriz. Então, se a matriz não estiver vazia, o programa fará um loop através dela, chamando OrderClose para cada bilhete. Em seguida, verifique a existência de cada bilhete, e remova-o da lista. Repita estas ações a intervalos de 1-3 segundos até que a lista esteja vazia.
Olá.
Preciso calcular o lucro líquido do Expert Advisor no final do trabalho. Executo um loop em OrdersHistoryTotal() no OnDeinit e adiciono OrderProfit().
Lucro=Profit+OrderProfit();
Mas no final, o lucro é diferente daquele relatado no testador. Descobri que o valor do ponto difere em uma parte dos pedidos.
Qual é a razão para isto? A propagação é definida manualmente no testador.
Olá.
Preciso calcular o lucro líquido do Expert Advisor no final do trabalho. Executo um loop em OrdersHistoryTotal() no OnDeinit e adiciono OrderProfit().
Lucro=Profit+OrderProfit();
Mas no final, o lucro é diferente daquele relatado no testador. Descobri que o valor do ponto difere em uma parte dos pedidos.
Qual é a razão para isto? A propagação é definida manualmente no testador.
Troca e comissão foram esquecidas para serem adicionadas! O spread já é levado em conta, já que é sempre entre os preços de entrada e saída.
A troca e a comissão foram esquecidas para serem adicionadas! O spread já é levado em conta, pois está sempre entre o preço de entrada e o preço de saída.
Ah, é verdade! Muito obrigado!!!! )
Você pode me dizer qual é o problema, o código deve fechar as ordens e se elas estiverem faltando, deve abrir uma nova ordem.
Mas, por alguma razão, fecha apenas 1 pedido e pára até o próximo sinal.
2022.01.17 16:22:08.389 2022.01.04 08:00:00 e: Sinal 1.1322 < fechar 1.1304 ExistPosSell 0
2022.01.17 16:22:08.389 2022.01.04 08:00:00 e: Sinal 1.1322 > fechar 1.1304 ExistPosBuy 1
2022.01.17 16:22:08.366 2022.01.04 08:00:00 e: Sinal 1.1325 < fechar 1.1306 ExistPosSell 0
2022.01.17 16:22:08.366 2022.01.04 04 04:00:00 e: Sinal 1.1325 > fechar 1.1306 ExistPosBuy 1
2022.01.17 16:22:08.327 2022.01.04 2022.01.04 00:00:00 e: Sinal 1.1326 < fechar 1.1296 ExistPosSell 0
2022.01.17 16:22:08.327 2022.01.04 00:00:00 e: Sinal 1.1326 > fechar 1.1296 ExistPosBuy 1
2022.01.17 16:22:08.298 2022.01.03 20:00:00 e: Sinal 1.1328 < fechar 1.1283 ExistPosSell 0
2022.01.17 16:22:08.298 2022.01.03 20:00:00 e: fechar #1 comprar 0,01 EURUSD a 1.13598 ao preço 1.12831
2022.01.17 16:22:08.298 2022.01.03 20:00:00 e: Sinal 1.1328 > fechar 1.1283 ExistPosBuy 1
2022.01.17 16:22:08.190 2022.01.03 16:00:00 e: abrir #4 comprar 0,01 EURUSD em 1.13512 ok
2022.01.17 16:22:08.190 2022.01.03 16:00:00 e: Sinal 1.134 < fechar 1.135 ExistPosSell 0
2022.01.17 16:22:08.190 2022.01.03 16:00:00 e: Sinal 1.134 > fechar 1.135 ExistPosBuy 1
Recentemente escrevi um alerta:#18550. Mas pode ser melhorado adicionando a SendNotification:
Adicione as linhas, que destaquei ao código fonte, solte-o na pasta Indicadores e compile-o. Este indicador pode ser adicionado ao gráfico quantas vezes desejar e receber sinais quando diferentes níveis forem cruzados. O código foi finalizado on-line. O resultado não é verificado.