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

 
Seric29:

O problema é que eu aplico modelos a todas as funções que tomam arrays, e a exportação e importação de funções modelo não é possível, terá que duplicar funções para cada tipo, a mesma situação com dimensionalidade mql não quer dar para nada e novamente ter que duplicá-los por dimensionalidade torna-se uma espécie de sobrecarga, mas acrescentar argumentos adicionais não é necessário, no entanto isso também é código desnecessário, como para aumentar os argumentos de função mql também não dará apenas dados terá que duplicar funções e Então eu não acho que valha a pena, pensei em escrever minha própria língua, mas depois escrevi 15% do meu robô e gastei mais de um ano para calibrar tudo e torná-lo o mais universal possível e proporcionar um desempenho rápido e 3 anos para os cálculos. Eu simplesmente não tenho vida suficiente para escrever minha própria língua. É assim.

Ter seu próprio idioma é fantástico!

Mas talvez você devesse primeiro aprender MQL.

E então você verá que suas características não são pequenas, mesmo agora.

Mas se você aprender C++ você não terá nenhum problema na programação.

Sim, eu olhei o seu código em C++ e vi que você sabe muito pouco.

 
Koldun Zloy:

Sim, seu código em C++, eu olhei para ele e vi que você sabe muito pouco.

É melhor aprender programação aos 4 anos de idade, e eu já tenho 26, a probabilidade de me tornar um grande programador é muito pequena, lembre-se de pessoas como Elon Musk e outros que poderiam programar aos 9 anos de idade, eu pelo menos cumpriria a tarefa principal.

 

Há uma função

ArrayCopy

Mas não permite que você copie uma coluna específica. Depois há uma função

ArrayInitialize

e novamente o mesmo disparate, então há a função

ArrayFill

mas aqui também, não é possível especificar uma coluna. De que servem estas funções se você tem que escrever as suas próprias.

 
Seric29:

É melhor aprender a programar a partir dos 4 anos de idade, e eu já tenho 26.

Oh, você está fumando algo forte! )))))

você não pode ensinar programação de computador a partir dos 4 anos de idade, porque ele quer brincar com brinquedos jogando-os no chão, além disso, uma criança não é ensinada a ler, ele só sabe contar até dez (os prodígios podem contar até 100! )) )

Você não pode aprender nada aos 26 anos de idade... Nos três meses em que você tem escrito seu problema, você o teria resolvido se começasse a ler e ler, o fórum MQL é um dos poucos fóruns onde você pode obter uma resposta à sua pergunta em 1-2 horas, é muito legal! Bem, este é o seu modo de vida. Aqui encontrei um para o seu problema, não poderia ser melhor:

https://www.mql5.com/ru/forum/3457/page4494#comment_12804114

 
Seric29:

É melhor aprender a programar a partir dos 4 anos de idade, e eu já tenho 26, a probabilidade de me tornar um programador legal é muito baixa, lembre-se de pessoas como Elon Musk e outros que poderiam programar aos 9 anos de idade, eu completaria pelo menos a tarefa básica.

Eu não comecei aos 4 anos de idade, ou mesmo aos 9.

A probabilidade de se tornar um programador frio a partir dos 26 anos é muito alta.

 

Gente eu tenho uma pergunta, mas não riam porque este código não funciona

#property copyright "Copyright 2018, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
#define  Mkarr(q,w,e,r) switch(ArrayDimension(q)){case 3:q[w][e][r]=15;break;case 2:q[w][e]=15;break;}
int Mas[7],//#else
    Mas2[2][2]={{3,8},{4,17}},
    Mas22[2][2]={{31,128},{94,107}},
    Mas3[2][2][2];

int OnInit()
  {int Perem=ArrayDimension(Mas); 
   Mkarr(Mas2,0,0,0);
   return(INIT_SUCCEEDED);
  }

Diz que o acesso à matriz está errado Como ele sabe disso se todas as variantes do caso não são verificadas e tentadas se nada é verificado também e lança um erro? É possível pular o código em tempo de compilação ou não ajuda?

 
Seric29:

Gente eu tenho uma pergunta, mas não riam porque este código não funciona

Diz que o acesso à matriz está errado Como saber se todas as variantes do caso não são verificadas e tentadas se nada é verificado também e lança um erro? É possível pular o código no momento da compilação ou não ajuda?

Isso não é engraçado, me dá vontade de chorar.

por que você usa macros se não sabe como usá-las? descompilar a macro (basta copiar a porra!) e você deve ver onde está o erro

SIN: ..... "Os ratos choraram e choraram, mas continuaram a mastigar o cacto" ((((

 
Igor Makanu:

não tem graça, dá-me vontade de chorar.

por que você usa macros se não sabe como usá-las? desfaça a macro (basta copiar a porra!) e você deve ver onde está o erro

SZY: ..... "Os ratos choraram e choraram, mas continuaram a roer o cacto" ((((

Não entendo muito, a macro leva qualquer item e ao processá-lo no compilador há uma proteção de que um e o mesmo item não pode ser tanto aqueles e aqueles ao mesmo tempo. É possível implementar tal idéia?

 
Seric29:

Não sei muito sobre isso, a macro toma qualquer elemento e ao processá-lo no compilador há uma proteção de que um e o mesmo elemento não pode ser tanto aqueles como aqueles ao mesmo tempo, tenho tais pensamentos. Uma idéia desse tipo pode ser implementada?

mais uma vez... Pegue sua macrosubstituição em ME (ou pelo menos no bloco de notas!) e "ligue-o" em vez de usá-lo, substitua todos os parâmetros entre parênteses por seus números

Não sei nem como explicar mais facilmente... Leia Wiki se você não tem referência suficiente sobre MQL

Macrocomando

Pré-processador C

 
Igor Makanu:

mais uma vez... pegue sua substituição de macro em ME (mesmo no bloco de notas!) e "ligue-o" em vez de usá-lo, substitua todos os parâmetros entre parênteses por seus números

substituído para você, aqui está o código sem macros

//+------------------------------------------------------------------+
#property copyright "Copyright 2018, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
//#define Mkarr(q,w,e,r) switch(ArrayDimension(q)){case 3:q[w][e][r]=15;break;case 2:q[w][e]=15;break;}
int Mas[7],//#else
Mas2[2][2]={{3,8},{4,17}},
Mas22[2][2]={{31,128},{94,107}},
Mas3[2][2][2];
int OnInit()
  {
   int Perem=ArrayDimension(Mas);
//   Mkarr(Mas2,0,0,0);
   switch(ArrayDimension(Mas2))
     {
      case 3:Mas2[0][0][0]=15;
      break;
      case 2:Mas2[0][0]=15;
      break;
     }
   return(INIT_SUCCEEDED);
  }

eu não sei porque você está gastando tanto tempo trabalhando com arrays multidimensionais se você não consegue entender a sintaxe e o básico de C++ / MQL, você tem arrays definidos com uma dimensão e está tentando usá-los com outra, claro que posso estar errado, mas este truque não deve funcionar mesmo em Python, imho

Razão: