Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 834

 
Vladimir Pastushak:


Isto está errado e os outros exemplos também estão errados.

Se você colocar uma parada em 1.2356 e no novo tick você colocar uma parada em 1.2356 novamente, você terá erro 1

Isto é do primeiro bloco. Eu o mudei, mas o erro permaneceu. Esta condição com uma parada foi implementada para que a EA não fizesse passagens desnecessárias. E em um novo tique, a EA não irá definir a mesma parada novamente - porque depois desta condição eu verificarei outras condições, por exemplo, se a parada é igual ao valor que eu quero definir.

 
Alexandr Sokolov:

Isto é do primeiro bloco. Eu o mudei, mas o erro permanece. Eu fiz esta condição com uma parada para evitar que a EA fizesse passes desnecessários. E em um novo tick a EA não coloca a mesma parada novamente - porque depois que esta condição é verificada as outras, por exemplo, se a parada é igual ao valor a ser definido

OrderStopLoss()

Todos os pedidos...... () deve ser normalizada

 
Vladimir Pastushak:

Todos os pedidos...... () precisa ser normalizada.

Eu fiz isso - e isso também não ajudou. Ao mesmo tempo, como antes, não tenho esse erro no testador, mas a MQL de alguma forma o encontra

 
Onde o arquivo de texto deve ser salvo para que possa ser lido de outro terminal?
 
yiduwi:
Que caminho deve ser usado para salvar um arquivo de texto para que ele possa ser lido de outro terminal?

ENUM_TERMINAL_INFO_STRING

Identificador

Descrição

Tipo de propriedade

TERMINAL_LÍNGUA

Linguagem do terminal

corda

TERMINAL_EMPRESA

Nome da empresa

corda

TERMINAL_NAME

Nome do terminal

corda

TERMINAL_PATH

A pasta a partir da qual o terminal está funcionando

corda

CAMINHO_DE_DADOS_DO_TERMINAL

Pasta onde os dados do terminal são armazenados

corda

CAMINHO_DE_COMANDOS_DE_TERMINAIS

Pasta compartilhada de todos os terminais clientes instalados no computador

corda


Документация по MQL5: Проверка состояния / TerminalInfoString
Документация по MQL5: Проверка состояния / TerminalInfoString
  • www.mql5.com
Проверка состояния / TerminalInfoString - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
 
Artyom Trishkin:

Obrigado.

 
Seric29:
Quem pode ajudar a resolver o problema https://www.mql5.com/ru/forum/160683/page833#comment_11584454?

faça um exemplo a um do artigohttps://www.mql5.com/ru/articles/18

os códigos do artigo funcionam 100% no mt4, eu verifiquei em janeiro deste ano

Alternativamente, você tem um projeto compilado para uma dll de 64 bits, o terminal MT4 é de 32 bits, você precisa configurar e compilar o projeto para uma .dll de 32 bits

Как за 10 минут написать DLL библиотеку для MQL5 и обмениваться данными?
Как за 10 минут написать DLL библиотеку для MQL5 и обмениваться данными?
  • www.mql5.com
Так уж сложилось, что сейчас мало кто из разработчиков помнит, как написать простую DLL библиотеку и в чем особенности связывания разнородных систем. Я постараюсь за 10 минут на примерах показать весь процесс создания простых DLL библиотек и раскрою некоторые технические детали нашей реализации связывания. Демонстрация будет на примере Visual...
 

Olá, caros usuários do fórum.

Você pode explicar em que caso o código está escrito corretamente e em qual não está correto e por quê (veja abaixo)?

for (z=OrdersTotal()-1; z>=0; z --)
    {
      OrderSelect (z, SELECT_BY_POS);
      if (OrderSymbol()!=Symbol()) continue;
      if (OrderMagicNumber()!=MAGIC) continue;
      if(OrderType()==OP_BUY)  CloseBUY();
    }
for(int i=OrdersTotal()-1;i>=0;i--)
            {
            if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
            {
             if(OrderSymbol()==Symbol() && OrderMagicNumber()==magic)
             {
             if(OrderType()==OP_BUY)  CloseBUY();
             }
            }
            }

Se possível, com mais detalhes. Obrigado.

 
novichok2018:

Olá, caros usuários do fórum.

Você pode explicar em que caso o código está escrito corretamente e em qual não está correto e por quê (veja abaixo)?

Se possível, com mais detalhes. Obrigado.

Mesmo o compilador destacará para você no primeiro caso"o resultado da OrderSelect deve ser verificado" ;-)

Se você mudar para o primeiro se (!OrderSelect(...)) continuar; então as opções são idênticas.

No primeiro o código é visualmente linear, no segundo parece uma escadaria. Eu prefiro a primeira variante, é mais fácil de ler e, em geral, a ocorrência de abas lógicas profundas {{{{ }}}} indica que é hora de mudar alguma coisa :-)

Razão: