nenhum assessor não trabalha no Metatrader 5 nenhum par de moedas - página 7

 

E aí vem a causa:

10030

TRADE_RETCODE_INVALID_FILL

Tipo de execução de ordem de saldo sem suporte especificado

Já foi mencionado:

Fórum sobre comércio, sistemas automatizados de comércio e teste de estratégias comerciais

nem um único assessor trabalha em metatrader 5 qualquer par de moedas

sandex, 2015.04.29 12:56

mudou para dólares, a EA interna não funciona, a minha funciona

o tipo de execução do pedido deve ser ORDER_FILLING_RETURN


 
Karputov Vladimir:

E aí vem a causa:

10030

TRADE_RETCODE_INVALID_FILL

Tipo de execução de ordem de saldo sem suporte especificado

o que já foi mencionado:


como fazer o tipo de execução a ser?ORDER_FILLING_RETURN
 
Então, corretoORDER_FILLING_ lá talvez FOG para RETURNAR... Eu também tentei com o MT5 - a menor interferência no código durante a negociação e perdi $100 nele, novos códigos também não funcionaram na demonstração até que eu acrescentei algumas de minhas características - talvez ele tenha sido projetado dessa forma ... Eu não sei para que... Abandonei o MT5 há muito tempo, embora tenha começado com ele - parecia mais seguro e mais simples...
 
chipo:
Então, corretoORDER_FILLING_ lá talvez FOG para RETURNAR... Eu também tentei com o MT5 - a menor interferência no código durante a negociação e perdi $100 nele, novos códigos também não funcionaram na demonstração até que eu acrescentei algumas de minhas características - talvez ele tenha sido projetado dessa forma ... Eu não sei para que... Abandonei o MT5 há muito tempo, embora eu tivesse começado com ele - parecia mais confiável e fácil de usar...
Não háORDER_FILLING-ORDER_FOK- LinhasFOK em 1 Expert Advisor padrão.
 
todos os EAs padrão são construídos em uma biblioteca padrão, você precisa editar a biblioteca
 
Alexander Bereznyak:
todos os EAs padrão são construídos sobre a biblioteca padrão, a biblioteca deve ser corrigida

Não há necessidade de editar a biblioteca padrão - esta é a abordagem errada. Basta salvar a EA com um novo nome e mudar um pouco o código. Por exemplo, salvar Moving Averages.mq5 sob um novo nome Moving Averages1.mq5.

No cabeçalho adicionar uma descrição de que esta EA usa a política de execução ORDER_FILLING_RETURN:

#property version   "1.00"
#property description "Политика исполнения: ORDER_FILLING_RETURN"
#include <Trade\Trade.mqh>

e adicionar uma linha de código em funções de fechamento e abertura de posição:

//+------------------------------------------------------------------+
//| Check for open position conditions                               |
//+------------------------------------------------------------------+
void CheckForOpen(void)
  {
   .
   .
   .
//--- additional checking
   if(signal!=WRONG_VALUE)
      if(TerminalInfoInteger(TERMINAL_TRADE_ALLOWED))
         if(Bars(_Symbol,_Period)>100)
           {
            CTrade trade;
            trade.SetTypeFilling(ORDER_FILLING_RETURN);
            trade.PositionOpen(_Symbol,signal,TradeSizeOptimized(),
                               SymbolInfoDouble(_Symbol,signal==ORDER_TYPE_SELL ? SYMBOL_BID:SYMBOL_ASK),
                               0,0);
           }
//---
  }
//+------------------------------------------------------------------+
//| Check for close position conditions                              |
//+------------------------------------------------------------------+
void CheckForClose(void)
  {
   .
   .
   .
//--- additional checking
   if(signal)
      if(TerminalInfoInteger(TERMINAL_TRADE_ALLOWED))
         if(Bars(_Symbol,_Period)>100)
           {
            CTrade trade;
            trade.SetTypeFilling(ORDER_FILLING_RETURN);
            trade.PositionClose(_Symbol,3);
           }
//---
  }
 
Karputov Vladimir:

Não há necessidade de editar a biblioteca padrão - esta é a abordagem errada. Basta salvar a EA com um novo nome e mudar um pouco o código. Por exemplo, salvar Moving Averages.mq5 sob um novo nome Moving Averages1.mq5.

No cabeçalho adicionar uma descrição de que esta EA usa a política de execução ORDER_FILLING_RETURN:

e adicionar uma linha de código para fechar e abrir posições:

Ótimo! Tudo funciona. Obrigado por seu trabalho duro e por suas explicações!
 
O tópico não será excluído? Talvez eu precise disso no futuro :)
Razão: