Da teoria à prática - página 532

 
Igor Makanu:

Ou seja, é mais fácil verificar as idéias em Matlab (ou fazê-las do zero em MQL), mas se você quiser portar uma idéia para MQL, você terá que estudar ALGLIB.

Para quê? Além de Alglib, há muitas libras e pacotes bem documentados. Tanto em R como em Python. E é muito mais amplo do que Alglib. Quase tudo está em C++. Porto e uso.

De modo geral, sem uma modelagem preliminar do lado mais ou menos complexa da estratégia na MQL é improvável. E então você nem vai querer traduzi-lo em MQL)).

SZZ Nos últimos 10 anos, por várias razões, mudei vários terminais e cheguei à conclusão de que o ATS não deveria depender do terminal. E agora estou trabalhando em 2 terminais diferentes. O terminal deve ser apenas o fornecedor de dados e o "executor" dos pedidos.

 
Yuriy Asaulenko:

Por quê? Há muitas libras e pacotes bem documentados, além de Alglib. Seja em R ou sob Python. E muito mais amplo que Alglib. Quase tudo está em C++. Porto e uso.

De modo geral, sem uma modelagem preliminar do lado mais ou menos complexa da estratégia na MQL é improvável. E então você nem vai querer traduzi-lo em MQL)).

SZZ Nos últimos 10 anos, por várias razões, mudei vários terminais e cheguei à conclusão de que o ATS não deveria depender do terminal. E agora estou trabalhando com 2 terminais diferentes. O terminal deve ser apenas um fornecedor de dados e "executor" de pedidos.

Bem, eu tenho portado AlgLib como uma prática de programação para MT5 - estou estudando para entender o conceito, por assim dizer, como AlgLib é construído - eu passei uma semana, o resultado é positivo

Bem, a verificação das idéias - é real portar rapidamente algo para o MT5, mas até a interface do usuário, a tarefa se torna mais complicada.

Bem, a vantagem não menos importante do Matlab é que ele tem um monte de coisas prontas na web, infelizmente não se teria vontade de entender R e Python, levará mais 3-4 meses de leitura e testes )))).

SZS: Alguém escreveu no fórum que as empresas de TI agora valorizam não a qualidade de escrever código, mas a rapidez de testar idéias. Eu entendo porque todo novo software é ávido de recursos, mas para nossos propósitos o conceito é correto!

 
Igor Makanu:

Bem, a verificação de idéias - algo pode ser rapidamente portado para o MT5, mas a tarefa torna-se mais complicada até a interface do usuário, enquanto com o Matlab é mais fácil - aqui está uma fórmula, basta escrevê-la, verificá-la e visualizá-la.

Bem, a vantagem não menos importante do Matlab é que ele tem um monte de coisas prontas na web, infelizmente não se teria vontade de entender R e Python, levará mais 3-4 meses de leitura e testes )))).

SZS: Alguém escreveu no fórum que as empresas de TI agora valorizam não a qualidade de escrever código, mas apenas a velocidade de testar idéias. Eu entendo porque todo novo software é ávido de recursos, mas para nossos propósitos o conceito é correto!

Bem, as vantagens do MathLab para modelagem não estão em disputa - ele é rápido, conveniente e ágil. R, Python, etc., não são inferiores neste aspecto, exceto que são livres.

Python (agora tentando fazer algo real em segundo plano, muito lentamente) é apreciado pelo fato de ser bom tanto como um ambiente de modelagem quanto de desenvolvimento. Isto é, após a modelagem, você tem um sistema pronto de imediato. Tudo o que resta é conectá-lo ao terminal. https://www.mql5.com/ru/forum/269426

Делаем торговую систему на Python для МТ.
Делаем торговую систему на Python для МТ.
  • 2018.07.30
  • www.mql5.com
Возникла мысль написать торговую систему на Python, и коли уж возникла, почему-бы не сделать эту систему общедоступной...
 
Yuriy Asaulenko:

Bem, não há discordância sobre as vantagens do MathLab para modelagem - rápido, conveniente, rápido. R, Python, etc., não são inferiores neste aspecto, exceto que são livres.

Python (agora tentando fazer algo real em segundo plano, muito lentamente) é apreciado pelo fato de ser bom tanto como um ambiente de modelagem quanto de desenvolvimento. Isto é, após a modelagem, você tem um sistema pronto de imediato. Tudo o que resta é conectá-lo ao terminal. https://www.mql5.com/ru/forum/269426

Se você tem um bom conhecimento de Python, você pode usá-lo como um ambiente de modelagem ou pode usar uma dll de estilo antigo.

ou tente fazê-lo 100% do zero no MT4 puro ))))

ZS: não há problema em verificar suas idéias, todas as plataformas estão bastante desenvolvidas - eu julgo pela comunidade, qualquer questão confusa é resolvida durante um dia - muitos fóruns em russo e participantes ativos, mas o problema é diferente.... nas áreas certas de pesquisa!

 
Igor Makanu:

mas o problema é algo mais.... na direção certa da pesquisa!

Bem, é para isso que serve a modelagem, não escrever um ATC de imediato.

Fiz o modelo do PBX anterior por cerca de seis meses. No final, acabou se tornando um sistema muito simples e bonito. Mas no processo, foram complicações mais do que suficientes).

Aqui quase não há visualização. Todos os registros são escritos no banco de dados Access.

 
RRR5:

como?


como linearizar a função y=ax2+bx+c?

fazer uma regressão múltipla regular, preços de entrada 2 - regular e ao quadrado

e a produção é apenas o preço

você simplesmente não precisa dele em sua forma nua

 
Maxim Dmitrievsky:

não compila, posso ter um exemplo de como utilizá-lo?

Mal-entendido. Este é um arquivo de suporte de depuração. Se você também o tomar, ele vai puxar muitas coisas.

Desinstale este arquivo e remova todos os ASSERTOS e TRACEs.

 
Georgiy Merts:

Este é um arquivo de suporte de depuração.

Apague-o e apague todos os ASSERTOS e TRACEs.

Sim ok, já descobri, obrigado... Não sei porque preciso disso, só para ver como as pessoas inteligentes codificam)

 

No indicador de regressão polinomial que afixo, a regressão é implementada através de uma função:

double regression_QRMA(int period,int shift,int price) 
  {
   double lwma= iMA(NULL,0,period,0,MODE_LWMA,price,shift);
   double sma = iMA(NULL,0,period,0,MODE_SMA,price,shift);
   double qwma= ma_qwma(period,shift,price);
   double value=3.0*sma+qwma *(10-15/(period+2))-lwma *(12-15/(period+2));
   return(value);
  }

onde

double ma_qwma(int period,int shift,int price) 
  {
   double sum=0;
   int j,i;
   for(j=shift,i=1;j<shift+period; j++,i++) 
     {
      sum+=switch_getPrice(price,j)*MathPow(period-i+1,2);
     }
   double value=6.0/(period *(period+1) *(2*period+1));
   return(value*sum);
  }


double switch_getPrice(int price,int shift) 
  {
   switch(price) 
     {
      case 0:
         return(Close[shift]);
      case 1:
         return(Open[shift]);
      case 2:
         return(High[shift]);
      case 3:
         return(Low[shift]);
      case 4:
         return((High[shift]+Low[shift])/2);
      case 5:
         return((High[shift]+Low[shift]+Close[shift])/3);
      case 6:
         return((High[shift]+Low[shift]+Close[shift]+Close[shift])/4);
      default:
         return(Close[shift]);
     }
  }


é correto?)
é possível implementar o ISC através de feiticeiros?)

 
RRR5:
Naquele indicador de regressão polinomial que afixei, a regressão é implementada através de uma função:
isto é correto?)
É possível implementar um ANC através de um boneco?)

Bem, correto - veja por si mesmo. Acho a fórmula de cálculo de valor bastante estranha. Claramente não é MNC, mas pode muito bem ser algo no meio.

Sobre o "MOC através de feiticeiros" - muito duvidoso. O método dos mínimos quadrados é uma busca dos coeficientes da curva aproximada, de modo que a soma dos quadrados de diferenças de valores da fonte e dos pontos aproximados seja mínima.

Tomamos os pontos iniciais, para cada abcissa, contamos as ordenadas aproximadas, subtraímos as ordenadas reais, ao quadrado, e somamos todos os quadrados. Diferenciamos esta soma por cada desconhecido (os desconhecidos são os coeficientes da curva aproximada), e obtemos um sistema de equações. Se o aproximamos por um polinômio, obtemos um sistema de equações algébricas lineares. Parece-me que não importa como você o torça, você não terá a mesma coisa.

Razão: