Discussão do artigo "Migrando do MQL4 para o MQL5" - página 7

 
Trintoro:

Adorei esse artigo.

Sua ideia de criar um emulador de mt4 é muito boa...

Concordo com Trintoro. Este artigo não é sobre migração, é mais sobre emulação. Eu me preocupo muito com a velocidade de execução, especialmente depois de ler este artigo e a resposta de Rosh a este tópico. Acho que o que acontece com esse tópico é que o usuário ainda pensa em MQL4. Talvez por hábito, por isso não posso culpá-lo.

É melhor aprender de novo e escrever tudo diretamente no mql5 em vez de usar os comandos que esse artigo sugere.

No entanto, é bom saber as diferenças que este artigo mostrou.

A PROPÓSITO. Por hábito:

1. Pressionar F5 (ou F7, mas raramente uso) no MetaEditor MQL4 irá compilar, no MetaEditor MQL5 é F7 para compilar, F5 irá iniciar / retomar a depuração.

2. No MQL4 MetaEditor, pressionar Esc mostrará/ocultará a janela Toolbox. No MQL5 MetaEditor, nada acontecerá.

Essa migração é irritante para mim :)

 
Obrigado!!!!!! Trabalho bacana, massivo, muito necessário e útil!!!! Mesmo com suas falhas individuais, ele é muito útil ao traduzir um robô de um idioma para outro. Não estou falando de uma tradução completamente substring, não, apenas quando você olha para o robô no quarto idioma e não sabe onde procurar isso na ajuda do quinto idioma que não compila, digamos... E aqui você pode encontrar explicações detalhadas!!! É muito necessário e útil!
 

Você poderia me dizer qual código em MQL5 pode ser usado para obter o mesmo que o abaixo para MQL4?

double AccountFreeMarginCheck(string symbol,
                              int cmd,
                              double volume)
SEM análogo
AccountFreeMarginCheck
Retorna a quantidade de fundos livres que permanecerão após a abertura da posição especificada ao preço atual na conta atual.
AccountFreeMarginCheck - Документация на MQL4
  • docs.mql4.com
AccountFreeMarginCheck - Документация на MQL4
 
solandr:

Você poderia me dizer qual código em MQL5 pode ser usado para obter o mesmo que o abaixo para MQL4?

...
Dê uma olhada nas funções OrderCalcProfit(...) e OrderCalcMargin(...) .
 

Erro no iBarShift.

Leia mais https://www.mql5.com/ru/forum/11243/

 

Prezados colegas,

Chamo a função abaixo em meu indicador. Mas recebi 7 mensagens de aviso. Posso melhorar a função abaixo para que não mostre a mensagem de aviso:

double MarketInfoMQL4(string symbol,
                      int type)
  {
   switch(type)
     {
      case MODE_LOW:
         return(SymbolInfoDouble(symbol,SYMBOL_LASTLOW));
      case MODE_HIGH:
         return(SymbolInfoDouble(symbol,SYMBOL_LASTHIGH));
      case MODE_TIME:
         return(SymbolInfoInteger(symbol,SYMBOL_TIME));
      case MODE_BID:
         //return(Bid);
      case MODE_ASK:
         //retorno(Ask);
      case MODE_POINT:
         return(SymbolInfoDouble(symbol,SYMBOL_POINT));
      case MODE_DIGITS:
         return(SymbolInfoInteger(symbol,SYMBOL_DIGITS));
      case MODE_SPREAD:
         return(SymbolInfoInteger(symbol,SYMBOL_SPREAD));
      case MODE_STOPLEVEL:
         return(SymbolInfoInteger(symbol,SYMBOL_TRADE_STOPS_LEVEL));
      case MODE_LOTSIZE:
         return(SymbolInfoDouble(symbol,SYMBOL_TRADE_CONTRACT_SIZE));
      case MODE_TICKVALUE:
         return(SymbolInfoDouble(symbol,SYMBOL_TRADE_TICK_VALUE));
      case MODE_TICKSIZE:
         return(SymbolInfoDouble(symbol,SYMBOL_TRADE_TICK_SIZE));
      case MODE_SWAPLONG:
         return(SymbolInfoDouble(symbol,SYMBOL_SWAP_LONG));
      case MODE_SWAPSHORT:
         return(SymbolInfoDouble(symbol,SYMBOL_SWAP_SHORT));
      case MODE_STARTING:
         return(0);
      case MODE_EXPIRATION:
         return(0);
      case MODE_TRADEALLOWED:
         return(0);
      case MODE_MINLOT:
         return(SymbolInfoDouble(symbol,SYMBOL_VOLUME_MIN));
      case MODE_LOTSTEP:
         return(SymbolInfoDouble(symbol,SYMBOL_VOLUME_STEP));
      case MODE_MAXLOT:
         return(SymbolInfoDouble(symbol,SYMBOL_VOLUME_MAX));
      case MODE_SWAPTYPE:
         return(SymbolInfoInteger(symbol,SYMBOL_SWAP_MODE));
      case MODE_PROFITCALCMODE:
         return(SymbolInfoInteger(symbol,SYMBOL_TRADE_CALC_MODE));
      case MODE_MARGINCALCMODE:
         return(0);
      case MODE_MARGININIT:
         return(0);
      case MODE_MARGINMAINTENANCE:
         return(0);
      case MODE_MARGINHEDGED:
         return(0);
      case MODE_MARGINREQUIRED:
         return(0);
      case MODE_FREEZELEVEL:
         return(SymbolInfoInteger(symbol,SYMBOL_TRADE_FREEZE_LEVEL));

      default: return(0);
     }
   return(0);
  }
 
advali82:

Prezados colegas,

Chamo a função abaixo em meu indicador. Mas recebi 7 mensagens de aviso. Posso melhorar a função abaixo para que não mostre a mensagem de aviso:

O que são esses avisos?
 
RaptorUK:
O que são os avisos?

O aviso é:

possível perda de dados devido à conversão de tipos Ciiio.mq5 676 10

Documentation on MQL5: Language Basics / Data Types / Typecasting
  • www.mql5.com
Language Basics / Data Types / Typecasting - Documentation on MQL5
 

O artigo Migração de MQL4 para MQL5 conclui com a seguinte declaração

3. Está planejada a criação de um emulador que permitirá que você execute seus programas MQL4 no novo terminal MT5.

Quem pode me dizer se esse emulador já está disponível ou quando ele aparecerá?

 
Novikov:

O artigo Migração de MQL4 para MQL5 conclui com a seguinte declaração

Quem pode me dizer se esse emulador já está disponível ou quando ele aparecerá?

Sim, ele foi criado ao mesmo tempo que o artigo. Mas não há sentido nisso, sem funções de negociação!