Discussion de l'article "Approche brute de la recherche de motifs (partie VI) : Optimisation cyclique"

 

Un nouvel article Approche brute de la recherche de motifs (partie VI) : Optimisation cyclique a été publié :

Dans cet article, je montrerai la première partie des améliorations qui m'ont permis non seulement de fermer toute la chaîne d'automatisation pour le trading sur MetaTrader 4 et 5, mais aussi de faire quelque chose de beaucoup plus intéressant. Désormais, cette solution me permet d'automatiser entièrement la création et l'optimisation des EA, ainsi que de minimiser les coûts de main-d'œuvre pour trouver des configurations de trading efficaces.

L'élément le plus important de toute cette idée est le système d'interaction entre le terminal et mon programme. Il s'agit en fait d'un optimiseur cyclique doté de critères d'optimisation avancés. Les plus importantes ont été abordées dans la section précédente. Pour que l'ensemble du système fonctionne, nous avons d'abord besoin d'une source de cotations, à savoir l'un des terminaux MetaTrader 5. Comme je l'ai déjà montré dans l'article précédent, les cotations sont écrites dans un fichier dans un format qui me convient. Cela se fait à l'aide d'un EA, qui fonctionne de manière assez étrange à première vue :

concept d’EA d'écriture de cotations

J'ai trouvé que c'était une expérience intéressante et bénéfique d'utiliser mon système unique pour le fonctionnement de l'EA. Il ne s'agit ici que d'une démonstration des problèmes que j'ai dû résoudre, mais tout ceci peut également être utilisé pour les EAs de trading : 

Exemple d'utilisation d'un EA pour écrire des cotations


Auteur : Evgeniy Ilin

 

формулы 2

facteur de linéarité

Comprenons ce que contient cette formule :

  • N - le nombre de positions de trading entièrement ouvertes et fermées dans l'ensemble du backtest ou de la section de trading.
  • B(i) - la valeur de la ligne d'équilibre après la position fermée correspondante "i".
  • L(i) - la ligne tracée de zéro au point d'équilibre le plus récent (équilibre final).

Il semble que ce soit presque Sharpe:

//--- calculer les logarithmes des incréments du tableau d'équité
   for(int i = 1; i < m_bars_counter; i++)
     {
      //--- n'ajouter que si l'équité a changé
      if(m_equities[i] != prev_equity)
        {
         log_return = MathLog(m_equities[i] / prev_equity); // logarithme de l'incrément
         aver += log_return;            // logarithme moyen des incréments
         AddReturn(log_return);         // remplir le tableau des logarithmes à partir des incréments
         counter++;                     // compteur de rendement
        }
      prev_equity = m_equities[i];
     }
//--- s'il n'y a pas assez de valeurs pour calculer le ratio de Sharpe, retourner 0
   if(counter <= 1)
      return(0);
//--- valeur moyenne du logarithme de l'incrément
   aver /= counter;
//--- calculer l'écart-type
   for(int i = 0; i < counter; i++)
      std += (m_returns[i] - aver) * (m_returns[i] - aver);
   std /= counter;
   std = MathSqrt(std);
//--- Ratio de Sharpe sur la période actuelle
   double sharpe = aver / std;
Математика в трейдинге: Коэффициенты Шарпа и Сортино
Математика в трейдинге: Коэффициенты Шарпа и Сортино
  • www.mql5.com
Доходность является самым очевидным показателем, который используют инвесторы и начинающие трейдеры для анализа эффективности торговли. Профессиональные трейдеры пользуются более надежными инструментами для анализа стратегии, среди них — коэффициенты Шарпа и Сортино.
 
fxsaber #:

Je pense que c'est presque un Sharpe:

Il y a quelque chose de similaire, mais seulement à première vue. Le modèle de croissance du bilan échappe à tout le monde. Si la pente de la croissance du bilan diminue constamment (la dérivée seconde de la courbe du bilan est négative), un tel modèle n'est pas préférable, car il pourrait bientôt devenir négatif. Il s'agit de sélectionner les courbes qui, graphiquement, semblent les plus prometteuses.

 
Evgeniy Ilin #:

Il y a des similitudes, mais seulement à première vue. Tout le monde regrette le modèle de croissance du solde. Si la pente de la croissance du solde est en baisse constante (la dérivée seconde de la courbe du solde est négative), ce modèle n'est pas préférable, car il risque de passer rapidement en territoire négatif. Il s'agit donc de sélectionner les courbes qui, graphiquement, sont les plus prometteuses.

L'algorithme de Sharpe pour les courbes descendantes donnera une valeur négative. Je ne vous ai donné qu'une analogie, il n'y a pas lieu de discuter de Sharpe....


Exemples tirés de mon expérience.

  • critère "belle courbe" - ne passe pas OOS.
  • Critère "courbe laide" - passe OOS, alors que la courbe elle-même s'est avérée belle.
  • Commission zéro - ne passe pas OOS.
  • La commission est fixée - passe OOS.

En d'autres termes, il s'avère que lorsque l'optimisation est axée sur la beauté, la composante d'ajustement est élevée. Lorsque l'on trouve quelque chose d'intéressant, c'est que c'est beau.

C'est pourquoi je ne cherche pas la beauté moi-même. Je me fie davantage au nombre d'accords et à l'algorithme du noyau TS. L'objectif est d'obtenir de la beauté sans critères de beauté. En règle générale, cette variante passe OOS.


ZY La variante avec commission est plus intéressante (mais, en règle générale, c'est l'inverse : moins de commission - plus de probabilité de trouver un modèle). Elle réduit en fait le nombre de transactions (signification statistique), mais augmente la probabilité d'une recherche fructueuse.

 
fxsaber #:

L'algorithme de Sharpe pour les courbes descendantes produira une valeur négative. Ceci n'est qu'une analogie, il n'y a pas lieu de discuter de Sharpe.....


Exemples tirés de mon expérience.

  • Le critère "belle courbe" - ne passe pas OOS.
  • Le critère "courbe laide" - passe OOS, mais la courbe elle-même est belle.
  • Commission zéro - ne passe pas OOS.
  • Commission fixée - passe OOS.

En d'autres termes, il s'avère que lorsque l'optimisation est axée sur la beauté, la composante d'ajustement est élevée. Lorsque l'on trouve quelque chose d'intéressant, c'est que c'est beau.

C'est pourquoi je ne cherche pas la beauté moi-même. Je me fie davantage au nombre d'accords et à l'algorithme du noyau TS. L'objectif est d'obtenir de la beauté sans critères de beauté. En règle générale, cette variante passe OOS.


ZY La variante avec commission est plus intéressante (mais, en règle générale, c'est l'inverse : moins de commission - plus de probabilité de trouver un modèle). Elle réduit en fait le nombre de transactions (signification statistique), mais augmente la probabilité d'une recherche fructueuse.

Il est clair qu'il y a encore des limites. Par exemple, j'agis de la manière suivante :

  • Je fixe l'espérance minimale requise en pips (en tenant compte du spread, j'ajoute également la commission et le swap, approximativement).
  • Je fixe le nombre minimum requis de trades, dont j'ai besoin en tenant compte de la longueur de la section considérée.
  • J'ajuste le facteur d'adaptation de la courbe
Il est inutile de chercher quelque chose à l'intérieur de l'écart (spread). Il y aura très peu de transactions, c'est un fait, on ne peut rien y faire. Il y a du fitting partout, la question est de savoir comment le minimiser sans prêter attention à l'algorithme lui-même. Il y a des moyens. Juste sans l'estimation de la courbe, nous pouvons seulement compter sur le fait que l'algorithme est initialement graal, que je pense sur les doigts à compter. J'ai des méthodes, comment faire sans, mais j'ai peur d'écrire une telle chose ici ))).
 
Evgeniy Ilin #:

Il est clair qu'il y a encore des limites. C'est ainsi que je fonctionne :

  • Je fixe l'espérance minimale requise en points (en tenant compte du spread, j'ajoute également la commission et le swap, approximativement).

Je ne fais pas cela. Les régularités du marché ne dépendent pas des conditions de négociation du courtier. Je suis enclin à cela.

Forum sur le trading, les systèmes de trading automatisés et les tests de stratégies de trading

L'apprentissage automatique dans le trading : théorie, modèles, pratique et algo-trading

fxsaber, 2023.08.19 11:10 AM

Courtier pour les données historiques pour choisir par le plus grand profit potentiel. Par exemple, le potentiel de EURUSD_Broker1 est plus élevé que celui de EURUSD_Broker2. Prenez donc EURUSD_Broker1.

Les cours principaux et les cours croisés peuvent être scalpés. Mais pas tous. Il suffit de s'entraîner sur chacun d'entre eux et de voir les résultats. C'est ce que je fais, en gros.

En d'autres termes, il est logique de chercher là où la concentration d'"or dans la roche" est la plus élevée.


  • Je fixe le nombre minimum de transactions dont j'ai besoin compte tenu de la longueur de la zone en question
Oui, c'est une sorte d'aide à la génétique pour ne pas s'engager dans des branches sans issue.
  • J'ajuste le facteur d'ajustement de la courbe.
C'est exactement ce que je ne fais pas volontairement. Par exemple, on peut entraîner le TS à produire un PF>2.5. Avec un nombre adéquat de trades, il produira presque automatiquement une belle courbe. Je n'ai pas encore commencé à pratiquer beaucoup. Mais pour la recherche, il est toujours intéressant de voir, bien sûr.
Il est inutile de chercher quelque chose à l'intérieur de l'écart (spread). Il y aura très peu de transactions, c'est un fait, vous ne pouvez rien en faire. Il y a du fitting partout, la question est de savoir comment le minimiser sans prêter attention à l'algorithme lui-même. Il y a des moyens. Juste sans l'estimation des courbes on ne peut compter que sur le fait que l'algorithme est initialement graal, que je pense sur les doigts à compter. J'ai des méthodes, comment s'en passer, mais j'ai peur d'écrire une telle chose ici ))).

Je ne comprends pas le lien entre le TS et le spread.

 
@fxsaber

  • Например, можно обучить ТС, чтобы выдавал PF>2.5. При должном количестве сделок это почти автоматом выдаст красивую кривую
C'est peut-être beau, mais la forme est différente, l'avancée possible dépend de la forme. Au moins, cela augmentera la probabilité de trouver une configuration qui fonctionne. Le facteur de profit de 2,5 est très gros, je dirais que 1,5 est beaucoup )) de tels chiffres lors de l'ajustement se produisent habituellement. C'est en quelque sorte une façon de pondérer les paramètres restants (mes critères) en écartant davantage de paramètres. Je suis généralement arrivé à un paradigme intéressant en robotique, où le travail principal est effectué par des ajouts sur les algorithmes, et où peu de choses dépendent de l'algorithme. Ici, tout critère qui augmente l'importance d'un paramètre particulier est précieux. Après tout, dans l'ensemble, ils travaillent chacun à leur propre niveau.

Je suis d'accord avec le reste.

.
  • Je ne comprends pas le lien entre le TS et le spread
S'il s'agit de scalping, alors oui, ici nous utilisons le bid et tout, en règle générale le ask flotte à partir du spread. Mais les ticks sont différents pour beaucoup de gens, et beaucoup de choses en dépendent). L'important est que le spread soit le plus petit possible par rapport à la taille moyenne d'une transaction en points, car si nous négligeons le spread pour qu'il n'affecte pas le signal lorsque nous changeons de courtier, par exemple, eh bien, c'est ma fantaisie).
 
Evgeniy Ilin #:
Elle peut être belle, mais la forme est différente, et la progression possible dépend de la forme.

Exemple d'une courbe trouvée par le critère MaxBalance (et non par la beauté).

 
fxsaber #:

Un exemple de courbe trouvée par le critère MaxBalance (et non par la beauté).

Il serait intéressant de voir de nombreuses courbes sélectionnées de cette manière (critère MaxBalance "not by beauty").

 
Anatoli Kazharski #:

Il serait intéressant de voir de nombreuses courbes sélectionnées de cette manière (critère MaxBalance "pas par la beauté").

Il s'agit du sixième résultat dans le fichier opt correspondant. Les cinq premiers sont moins bons.

Je fais un petit nombre de passes d'AG pour que les ensembles de paramètres d'entrée ne soient pas proches les uns des autres.

 

J'ai l'impression qu'il existe certaines approches pour construire un TS, lorsque le critère MaxBalance avec une limite sur le nombre de trades par le bas donne toujours une belle courbe sur Sample. Dans ce cas, un tel TS peut être considéré comme quelque chose de rationnel, même s'il y a une perte totale sur les OOS. Mais il semble douteux de rechercher la beauté par Sharpe, R^2 ou les critères de cet article. Je me trompe peut-être.