Discussão do artigo "Que testes deve passar o robô de negociação antes da publicação no Mercado" - página 23

 
Não entendo por que o robô em funcionamento não pula. Traduzi todos os comentários para o inglês, pois deu um erro e, depois de tudo isso, deu esse tipo de erro

teste em EURUSD,H1 (netting) 2022.02.01 09:36:20 falha na venda instantânea de 1 EURUSD a 0.00000 sl: 1.12832 tp: 1.12078 [Preço inválido] 2022.02.01 09:37:40 falha na venda instantânea de 1 EURUSD a 0.00000 sl: 1.12837 tp: 1.12081 [Preço inválido] 2022.02.01 09:37:59 falha na venda instantânea de 1 EURUSD a 0.00000 sl: 1.12836 tp: 1.12080 [Preço inválido] 2022.02.01 09:38:00 falha na venda instantânea de 1 EURUSD a 0.00000 sl: 1.12837 tp: 1.12081 [Preço inválido] 2022.02.01 09:38:20 falha na venda instantânea de 1 EURUSD a 0.00000 sl: 1.12836 tp: 1.12080 [Preço inválido] 2022.02.01 09:41:40 falha na venda instantânea de 1 EURUSD a 0.00000 sl: 1.12847 tp: 1.12057 [Preço inválido] 2022.02.01 09:41:59 falha na venda instantânea de 1 EURUSD a 0.00000 sl: 1.12847 tp: 1.12057 [Preço inválido] 2022.02.01 09:42:00 falha na venda instantânea de 1 EURUSD a 0.00000 sl: 1.12847 tp: 1.12057 [Preço inválido] 2022.02.01 09:44:40 falha na venda instantânea de 1 EURUSD a 0.00000 sl: 1.12850 tp: 1.12060 [Preço inválido] 2022.02.01 09:44:59 falha na venda instantânea de 1 EURUSD a 0.00000 sl: 1.12847 tp: 1.12057 [Preço inválido] 2022.02.01 09:45:00 falha na venda instantânea de 1 EURUSD a 0.00000 sl: 1.12848 tp: 1.12058 [Preço inválido] 2022.02.01 17:43:40 falha na venda instantânea de 1 EURUSD a 0.00000 sl: 1.13007 tp: 1.11921 [Preço inválido] 2022.02.01 17:44:40 falha na venda instantânea de 1 EURUSD a 0.00000 sl: 1.13014 tp: 1.11928 [Preço inválido] 2022.02.01 17:44:59 falha na venda instantânea de 1 EURUSD a 0.00000 sl: 1.13014 tp: 1.11928 [Preço inválido] 2022.02.01 17:45:00 falha na venda instantânea de 1 EURUSD a 0.00000 sl: 1.13016 tp: 1.11930 [Preço inválido] 2022.02.01 17:45:40 falha na venda instantânea de 1 EURUSD a 0.00000 sl: 1.13000 tp: 1.11908 [Preço inválido] 2022.02.01 17:45:59 falha na venda instantânea de 1 EURUSD a 0.00000 sl: 1.13003 tp: 1.11911 [Preço inválido] 2022.02.01 17:46:00 falha na venda instantânea de 1 EURUSD a 0.00000 sl: 1.13005 tp: 1.11913 [Preço inválido] 2022.02.01 17:46:20 falha na venda instantânea de 1 EURUSD a 0.00000 sl: 1.13000 tp: 1.11908 [Preço inválido] 2022.02.01 17:59:40 falha na venda instantânea de 1 EURUSD a 0.00000 sl: 1.13003 tp: 1.11911 [Preço inválido] 2022.02.01 17:59:59 falha na venda instantânea de 1 EURUSD a 0.00000 sl: 1.13020 tp: 1.11928 [Preço inválido] não há operações de negociação

Não é possível que o robô de negociação não consiga abrir uma negociação, pois eu pessoalmente uso esse robô e aqui está ele!!!!
 

Por favor, ajude-me, pois não entendo o que faz com que minha validação apareça assim. Se eu entender o problema, saberei onde corrigir meu código. Obrigado pela ajuda

Erro de exibição do validador

 
Mean Pichponreay #:

Por favor, ajude-me, pois não entendo o que faz com que minha validação apareça assim. Se eu entender o problema, saberei onde corrigir meu código. Obrigado pela ajuda


Olá, você precisa verificar as posições para Margin Stop Out e fechar as posições antes de Stop Out.

ACCOUNT_MARGIN_SO_SO

 
Nauris Zukas #:

Olá, você precisa verificar as posições para o Margin Stop Out e fechar as posições antes do Stop Out.

ACCOUNT_MARGIN_SO_SO

Muito obrigado, senhor, vou tentar corrigir agora.

 
Estou enfrentando o mesmo problema. Não importa o que eu tente, nada parece funcionar. Até implementei um mecanismo de negociação simulado em meu Expert Advisor (EA), mas isso não resolveu o problema. Espero que alguém possa nos ajudar a descobrir como contornar esse erro e, ao mesmo tempo, manter nossa estratégia de negociação do EA.
 

Eu realmente preciso de ajuda - estou preso aqui com um erro de "nenhuma operação de negociação". Gostaria de receber qualquer conselho ou ajuda sobre como corrigir meu código para que eu possa resolver esse problema. Tentei vários atalhos, mas não importa o que eu faça, continuo encontrando esse erro.





Arquivos anexados:
Capture.PNG  20 kb
 

Olá, estou tentando carregar um EA, mas sempre recebo o mesmo erro

test on EURUSD,H1 (hedging)
 2022.02.03 15:40:40   failed modify #11 comprar 0.55 EURUSD sl: 1.12910, tp: 1.13310 -> sl: 1.13260, tp: 1.13310 [Paradas inválidas]
 2022.02.03 15:40:59   failed modify #11 comprar 0.55 EURUSD sl: 1.12910, tp: 1.13310 -> sl: 1.13225, tp: 1.13310 [Paradas inválidas]
 2022.02.03 15:41:00   failed modify #11 comprar 0.55 EURUSD sl: 1.12910, tp: 1.13310 -> sl: 1.13225, tp: 1.13310 [Paradas inválidas]
 2022.02.03 15:41:20   failed modify #11 comprar 0.55 EURUSD sl: 1.12910, tp: 1.13310 -> sl: 1.13240, tp: 1.13310 [Paradas inválidas]
 2022.02.03 15:41:40   failed modify #11 comprar 0.55 EURUSD sl: 1.12910, tp: 1.13310 -> sl: 1.13155, tp: 1.13310 [Paradas inválidas]
 2022.02.03 15:41:59   failed modify #11 comprar 0.55 EURUSD sl: 1.12910, tp: 1.13310 -> sl: 1.13210, tp: 1.13310 [Paradas inválidas]
 2022.02.03 15:42:00   failed modify #11 comprar 0.55 EURUSD sl: 1.12910, tp: 1.13310 -> sl: 1.13210, tp: 1.13310 [Paradas inválidas]
 2022.02.03 15:42:20   failed modify #11 comprar 0.55 EURUSD sl: 1.12910, tp: 1.13310 -> sl: 1.13210, tp: 1.13310 [Paradas inválidas]
 2022.02.08 09:13:40   failed modify #21 vender 0.55 EURUSD sl: 1.14345, tp: 1.13945 -> sl: 1.14035, tp: 1.13945 [Paradas inválidas]
 2022.02.08 09:13:59   failed modify #21 vender 0.55 EURUSD sl: 1.14345, tp: 1.13945 -> sl: 1.14055, tp: 1.13945 [Paradas inválidas]
 2022.02.08 09:14:00   failed modify #21 vender 0.55 EURUSD sl: 1.14345, tp: 1.13945 -> sl: 1.14055, tp: 1.13945 [Paradas inválidas]
 2022.02.08 09:14:20   failed modify #21 vender 0.55 EURUSD sl: 1.14345, tp: 1.13945 -> sl: 1.14065, tp: 1.13945 [Paradas inválidas]
 2022.02.08 09:14:40   failed modify #21 vender 0.55 EURUSD sl: 1.14345, tp: 1.13945 -> sl: 1.14030, tp: 1.13945 [Paradas inválidas]
 2022.02.08 09:14:59   failed modify #21 vender 0.55 EURUSD sl: 1.14345, tp: 1.13945 -> sl: 1.14035, tp: 1.13945 [Paradas inválidas]
 2022.02.08 09:15:00   failed modify #21 vender 0.55 EURUSD sl: 1.14345, tp: 1.13945 -> sl: 1.14035, tp: 1.13945 [Paradas inválidas]
 2022.02.08 09:15:20   failed modify #21 vender 0.55 EURUSD sl: 1.14345, tp: 1.13945 -> sl: 1.14040, tp: 1.13945 [Paradas inválidas]
 2022.02.08 09:15:40   failed modify #21 vender 0.55 EURUSD sl: 1.14345, tp: 1.13945 -> sl: 1.13985, tp: 1.13945 [Paradas inválidas]
 2022.02.08 09:15:59   failed modify #21 vender 0.55 EURUSD sl: 1.14345, tp: 1.13945 -> sl: 1.14025, tp: 1.13945 [Paradas inválidas]
 2022.02.08 09:16:00   failed modify #21 vender 0.55 EURUSD sl: 1.14345, tp: 1.13945 -> sl: 1.14025, tp: 1.13945 [Paradas inválidas]
 2022.02.08 09:16:20   failed modify #21 vender 0.55 EURUSD sl: 1.14345, tp: 1.13945 -> sl: 1.14025, tp: 1.13945 [Paradas inválidas]
 2022.02.08 09:16:40   failed modify #21 vender 0.55 EURUSD sl: 1.14345, tp: 1.13945 -> sl: 1.14050, tp: 1.13945 [Paradas inválidas]
strategy tester report 100 total trades

Executo o mesmo teste localmente, mas não recebo nenhum erro. O que pode estar acontecendo para causar esses erros?

2025.02.01 11:34:52.756 2022.02.03 15:40:26   Ticket #4# 
2025.02.01 11:34:52.756 2022.02.03 15:40:26   new stopLoss: 1.1313000000000002
2025.02.01 11:34:52.756 2022.02.03 15:40:26   position modified [#4 comprar 0,55 EURUSD 1,13081 sl: 1,13130 tp: 1,13280]
2025.02.01 11:34:52.758 2022.02.03 15:40:26   CTrade::OrderSend: modify position #4 EURUSD (sl: 1.13130, tp: 1.13280) [done]
2025.02.01 11:34:52.759 2022.02.03 15:40:27   Ticket #4# 
2025.02.01 11:34:52.759 2022.02.03 15:40:27   new stopLoss: 1.1314000000000002
2025.02.01 11:34:52.759 2022.02.03 15:40:27   position modified [#4 comprar 0,55 EURUSD 1,13081 sl: 1,13140 tp: 1,13280]
2025.02.01 11:34:52.761 2022.02.03 15:40:27   CTrade::OrderSend: modify position #4 EURUSD (sl: 1.13140, tp: 1.13280) [done]
2025.02.01 11:34:52.763 2022.02.03 15:40:28   Ticket #4# 
2025.02.01 11:34:52.763 2022.02.03 15:40:28   new stopLoss: 1.13145
2025.02.01 11:34:52.763 2022.02.03 15:40:28   position modified [#4 comprar 0,55 EURUSD 1,13081 sl: 1,13145 tp: 1,13280].
2025.02.01 11:34:52.765 2022.02.03 15:40:28   CTrade::OrderSend: modify position #4 EURUSD (sl: 1.13145, tp: 1.13280) [done]
2025.02.01 11:34:52.765 2022.02.03 15:40:28   Ticket #4# 
2025.02.01 11:34:52.765 2022.02.03 15:40:28   new stopLoss: 1.13155
2025.02.01 11:34:52.767 2022.02.03 15:40:28   position modified [#4 comprar 0,55 EURUSD 1,13081 sl: 1,13155 tp: 1,13280]
2025.02.01 11:34:52.769 2022.02.03 15:40:28   CTrade::OrderSend: modify position #4 EURUSD (sl: 1.13155, tp: 1.13280) [done]
2025.02.01 11:34:52.770 2022.02.03 15:40:29   Ticket #4# 
2025.02.01 11:34:52.770 2022.02.03 15:40:29   new stopLoss: 1.1316000000000002
2025.02.01 11:34:52.770 2022.02.03 15:40:29   position modified [#4 comprar 0,55 EURUSD 1,13081 sl: 1,13160 tp: 1,13280].
2025.02.01 11:34:52.772 2022.02.03 15:40:29   CTrade::OrderSend: modify position #4 EURUSD (sl: 1.13160, tp: 1.13280) [done]
 
Francisco Jesus Alonso Martin #:

Olá, estou tentando carregar um EA, mas sempre recebo o mesmo erro

Executo o mesmo teste localmente, mas não recebo nenhum erro. O que pode estar acontecendo para causar esses erros?

Ok, já resolvi o problema, tive que verificar os níveis de stop em relação ao preço.

 

Olá, eu novamente.

Só me resta um erro, mas não consigo encontrar a solução para ele.

test on XAUUSD,D1 (hedging)
 2022.07.12 04:30:40   current account state: Balance: 1126.50, Credit: 0.00, Commission: 0.00, Accumulated: 0.00, Assets: 0.00, Liabilities: 0.00, Equity 1126.50, Margin: 0.00, FreeMargin: 1126.50
 2022.07.12 04:30:40   calculated account state: Assets: 0.00, Liabilities: 0.00, Equity 1126.50, Margin: 1132.76, FreeMargin: -6.26
 2022.07.12 04:30:40   not enough money for order [#7 stop de compra 0,65 XAUUSD em 1742,70].
strategy tester report 13 total trades

Estou sempre verificando a margem que tenho antes de fazer qualquer compra ou venda com esse método:

bool checkMoneyForTrade(string symb,double lots,ENUM_ORDER_TYPE type) {
//--- Obtendo o preço de abertura
    MqlTick mqltick;
    SymbolInfoTick(symb,mqltick);
    double price = mqltick.ask;
    if(type == ORDER_TYPE_SELL)
        price = mqltick.bid;
//--- valores da margem necessária e da margem livre
    double margin,free_margin = AccountInfoDouble(ACCOUNT_MARGIN_FREE);
    //--- chamada da função de verificação
    if(!OrderCalcMargin(type,symb,lots,price,margin)) {
        //--- algo deu errado, informe e retorne false
        Print("Error in ",__FUNCTION__," code=",GetLastError());
        return(false);
    }
    //--- se não houver fundos suficientes para realizar a operação
    if(margin > free_margin || free_margin < 0) {
        //--- relatar o erro e retornar falso
        Print("Not enough money for ",EnumToString(type)," ",lots," ",symb," Error code=",GetLastError());
        return(false);
    }
//--- verificação bem-sucedida
    return(true);
}
 

obtive um erro no processo de validação que não consegui encontrar quando voltei a testar o mqlf5 naquela data e não houve erro em meu terminal

nenhum erro