Função personalizada MQL4
Results 1 to 8 of 8

Thread: Função personalizada MQL4

  1. #1
    Olá pessoal,

    Eu estou tentando fazer minha própria função personalizada para me mostrar ordens abertas (Compra Venda). Este código funciona, mas falta algumas coisas.

    Código inserido void OpenOrders () {BuyOrdersOpen = 0; SellOrdersOpen = 0; int TotalOrders; TotalOrders = OrdersTotal (); para (int iii = TotalOrders-1; iiigt; = 0; iii--) {OrderSelect (iii, SELECT_BY_POS); if (OrderSymbol ()! = Symbol ()) continuar; if (OrderType () == OP_BUY) {ComprarOrdersOpen = BuyOrdersOpen 1; } if (OrderType () == OP_SELL) {SellOrdersOpen = VendaOrdersOpen 1; }}} Meu problema até agora é que eu trabalho com variáveis ​​globais para obter os resultados da função (BuyOrdersOpen, SellOrdersOpen). Eu sei que posso de alguma forma fazer a função retornar os valores e ter os valores disponíveis, se eu apenas chamar a função correta. Não sei como chegar lá ...

    Alguém pode me ajudar?

  2. #2

    Olá pessoal, estou tentando fazer a minha própria função personalizada para me mostrar ordens abertas (compra venda). Este código funciona, mas falta algumas coisas. [code] void OpenOrders () {BuyOrdersOpen = 0; SellOrdersOpen = 0; int TotalOrders; TotalOrders = OrdersTotal (); para (int iii = TotalOrders-1; iiigt; = 0; iii--) {OrderSelect (iii, SELECT_BY_POS); if (OrderSymbol ()! = Symbol ()) continuar; if (OrderType () == OP_BUY) {ComprarOrdersOpen = BuyOrdersOpen 1; } if (OrderType () == OP_SELL) {...
    pesquisa no retorno do arquivo de ajuda. Agora você fez algumas perguntas de programação muito novatas recentemente. talvez você deva colocar o mql e fazer alguma leitura de luz em algo como qbasic ou python ou alguma coisa nesse sentido ... ou se você puder encontrar um tutorial C decente. você simplesmente não pode continuar vindo aqui para perguntar o que soa como perguntas de lição de casa. O mql é uma merda para tentar aprender como fazer qualquer coisa relacionada ao código. é meio c-like e metade algo abo, e o arquivo de ajuda está em inglês quebrado que geralmente faz pouco sentido. vá ler sobre algum outro idioma. brincar com isso. depois volte para o mql. então você pode ter algumas perguntas específicas do mql em vez de bater a cabeça contra o básico e perguntar a todos aqui. um bom programador não precisa conhecer todas as pequenas funções fornecidas por uma linguagem. eles só precisam entender os fundamentos de como a linguagem opera e, em seguida, saber como encontrar nos arquivos de ajuda (e on-line) as especificidades de todas as outras coisas que podem ser feitas. você precisa aprender e entender os fundamentos ... mql não é o lugar para começar. diabos, talvez até algo como robotbattle fosse um começo. pelo menos, pode ser semi-interessante (e, em seguida, core wars se você realmente entrar em coisas e progredir de um novato na codificação para um pouco mais avançado). edit: e para seguir a partir de codemeister .... também olhar para passar variáveis ​​por referência ou por valor.

  3. #3
    O problema com as funções MQL (e outras linguagens) é que elas retornam apenas um único valor. Eu me encontro no mesmo enigma de tempos em tempos. Usar globals não é uma má escolha considerando algumas das alternativas. Alguns sugerem usar 2 funções, uma que retorna o número de Buy e outra para as vendas. Mas isso significa chamar as duas vezes mais a duplicação do código. Eu vi algumas pessoas retornarem um valor como o valor da função eo outro como um código global - feio e não faz nenhum sentido.

  4. #4
    Talvez eu seja apenas old school - aprendi C antes de aprender MQL - mas a solução para esse problema existe desde ... bem C, eu acho.
    http://docs.mql4.com/basis/variables/formal

  5. #5

    Olá pessoal, estou tentando fazer a minha própria função personalizada para me mostrar ordens abertas (compra venda). Este código funciona, mas falta algumas coisas.
    Algo parecido com isto (passando parâmetros por referência) e retornando o total? Dessa forma, você obtém todos os três valores: buyopenorders, sellopenorders (por referência da lista de parâmetros) e o valor de totalopenorders retornados da função. Além disso, observe as alterações no recuo. O objetivo do recuo é mostrar onde os blocos de início e fim de código (como loops ou blocos) para fácil inspeção visual. Certifique-se de que as suas chaves enquadrem os blocos corretamente. Corretamente significa as linhas de chaves (justificadas à esquerda) com o loop associado ou bloco. Código dentro do bloco (dentro das chaves) é recuado. Código inserido int OpenOrders (int BuyOrdersOpen, int SellOrdersOpen) {BuyOrdersOpen = 0; SellOrdersOpen = 0; int TotalOrders = OrdersTotal (); para (int iii = TotalOrders-1; iiigt; = 0; iii--) {OrderSelect (iii, SELECT_BY_POS); if (OrderSymbol ()! = Symbol ()) continuar; if (OrderType () == OP_BUY) {BuyOrdersOpen = 1; } if (OrderType () == OP_SELL) {SellOrdersOpen = 1; }} retornar TotalOrders; }

  6. #6

    O problema com as funções MQL (e outras linguagens) é que elas retornam apenas um único valor. Eu me encontro no mesmo enigma de tempos em tempos. Usar globals não é uma má escolha considerando algumas das alternativas. Alguns sugerem usar 2 funções, uma que retorna o número de Buy e outra para as vendas. Mas isso significa chamar as duas vezes mais a duplicação do código. Eu vi algumas pessoas retornarem um valor como o valor da função eo outro como um código global - feio e não faz nenhum sentido.
    Eu ouço a preocupação. Eu costumo pensar que o código repetido (loops particulary) é frequentemente uma má ideia. O MT4 é ineficiente o suficiente, não é necessário ajudá-lo a ser menos eficiente. No entanto, a passagem de parâmetros por referência pode dificultar a leituracompreensão do código para alguns ou em alguns casos. Se isso acontecer, talvez valha a pena o acerto de desempenho ou o uso de uma variável global que prefiro repetir loops. Minha preferência é fazer um único loop sempre que possível e passar referências como no código acima. Globals também funcionam, mas depois fica menos claro o que é uma função reutilizável e o que é código frágil. Não que eu não use uma variável global com frequência por design. Às vezes, tornar o código reutilizável ou generalizado é mais um esforço do que vale a pena. Eu não reutilizo tudo.

  7. #7

    Algo parecido com isto (passando parâmetros por referência) e retornando o total? Dessa forma, você obtém todos os três valores: buyopenorders, sellopenorders (por referência da lista de parâmetros) e o valor de totalopenorders retornados da função. Além disso, observe as alterações no recuo. O objetivo do recuo é mostrar onde os blocos de início e fim de código (como loops ou blocos) para fácil inspeção visual. Certifique-se de que as suas chaves enquadrem os blocos corretamente. Significa corretamente as linhas de suporte (justificado à esquerda) com o associado para ...
    Eu acho que você não gosta muito do conceito 'ensine um homem a pescar' e está mais interessado em dar o peixe para qualquer um que perguntar. e esse recuo machuca minha cabeça. Eu sei que muitos fazem assim, mas eu sou mais um estilo 1TBS eu mesmo. depois de alguns milhares de linhas de código no 1TBS, essas chaves de abertura desperdiçadas teriam realmente contribuído para muitas linhas extras desperdiçadas, dificultando signifiivamente a legibilidade. apenas uma observação ociosa, já que este segmento está basicamente concluído. kr indentation deve estar fora do caminho nos dias de hoje (de acordo comigo, pelo menos).

  8. #8

    Eu acho que você não gosta muito do conceito 'ensine um homem a pescar' e está mais interessado em dar o peixe para qualquer um que perguntar.
    Eu sou tudo sobre ensinar uma pessoa a pescar, mas senti que ele fez um esforço honesto baseado em qual código foi postado e o que foi perguntado. Ele sabia o que não sabia e não era orgulhoso demais para pedir ajuda.
    e esse recuo machuca minha cabeça. Eu sei que muitos fazem assim, mas eu sou mais um estilo 1TBS eu mesmo. depois de alguns milhares de linhas de código no 1TBS, essas chaves de abertura desperdiçadas teriam realmente contribuído para muitas linhas extras desperdiçadas, dificultando signifiivamente a legibilidade. apenas uma observação ociosa, já que este segmento está basicamente concluído. kr indentation deve estar fora do caminho nos dias de hoje (de acordo comigo, pelo menos).
    Eu também prefiro 1TBS devido a economia de tela, mas como Mike estava tendo dificuldade em alinhar os suportes, eu não queria enlouquecer.

Permissões de Publicação

  • Não pode publicar novos tópicos
  • Não pode publicar respostas
  • Não pode publicar anexos
  • Não pode editar as suas publicações
  •  
  • Código BB está Ativo
  • Smilies estão Ativos
  • Código [IMG] está Ativo
  • Código [VIDEO] está Ativo
  • Código HTML está Desligado
O site da tradingintuitivo utiliza cookies
O site da tradingintuitivo utiliza cookies, alguns já foram definidos. Pode ler sobre a nossa utilização de cookies aqui. Por favor, clique no botão à direita para aceitar os nossos cookies. Se continuar a usar o site da tradingintuitivo, vamos supor que aceita os nossos cookies.