Calcul des différences, exemples. - page 12

 
Aleksey Panfilov:

Les idées sont les bienvenues.

Puisqu'il n'y a aucune suggestion, allons-y avec les sentiers battus.

Ajouté l'indicateur de base et la version de l'Expert Advisor pour MT 5.

Optimisation sur une échelle de temps de 5 minutes.

Les dessins sont en fichier Excel.

Dossiers :
 

Nous n'utilisons toujours que les signaux de l'indicateur.

Supposez un signal principal sur M5 et un raffinement de l'entrée sur M1. Optimisé sur M1 par l'ouverture des prix. Dans le dossier de test, j'ai sélectionné (pas très soigneusement) une variante, à la fois par "prix ouverts" et par "tous les ticks". Je ne vois pas de différences fondamentales. Test sur l'intervalle deux fois plus grand que l'intervalle d'optimisation.


Dossiers :
 
Aleksey Panfilov:

Par exemple, voici une autre façon d'utiliser les augmentations de prix comme de nouvelles informations. Ici, l'incrément est lu explicitement comme une différence.

1*Y1-1*Y2-2*Y2+3*Y3-1*Y4 =0

1*Y1-1*Y2-3*Y2+6*Y3-4*Y4 + 1*Y5 =0

1*Y1-1*Y2-4*Y2+10*Y3-10*Y4 + 5*Y5 -1*Y6=0

1*Y1-1*Y2-5*Y2+15*Y3-20*Y4 + 15*Y5 -6*Y6 + 1*Y7=0

1*Y1-1*Y2-6*Y2+21*Y3-35*Y4 + 35*Y5 -21*Y6 + 7*Y7 -1*Y8=0

...

Vous pouvez voir que la ligne (rouge) tracée conventionnellement par le polynôme de la cinquième puissance (sur la base du nombre de points connectés) s'est également solidement ancrée au graphique.


C'est comme si au détriment du polynôme du quatrième degré sur les premières différences (augmentations de prix) nous avions augmenté (par le nombre de points) le degré au cinquième.

C'est ça, la régularisation ?


J'ai regardé les chiffres, je les ai comparés avec l'image de VIKI "Binomial coefficient", il s'avère qu'ils sont les mêmes :


Ce sont des "coefficients dans l'expansion de (1+x)^n dans une série de puissance".

"Les lignes d'un triangle de Pascal divisées par 2^n (la somme de tous les nombres de la ligne) tendent, à la limite, vers une fonction de distribution normale."

Lorsque le sujet a été créé, il a été dit qu'il s'intéressait principalement aux "mathématiques,...". Alors j'ai écrit. Les relations mathématiques du triangle de Pascal dans VIKI sont écrites de manière très détaillée, mais il n'est pas clair ce qui est nécessaire.

 
Vladimir:

J'ai regardé les chiffres, je les ai comparés avec l'image de VIKI "coefficient binomial", il s'avère que c'est la même chose :


C'est "coefficients dans l'expansion de (1+x)^n dans une série de puissance".

"Les lignes d'un triangle de Pascal divisées par 2^n (somme de tous les nombres de la ligne) tendent vers une fonction de distribution normale dans la limite."

Lorsque le sujet a été créé, il a été dit qu'il s'intéressait principalement aux "mathématiques,...". Alors j'ai écrit. Les relations mathématiques du triangle de Pascal dans VIKI sont expliquées de manière beaucoup plus détaillée, mais il n'est pas évident de savoir laquelle est nécessaire.

Si c'est une question, elle ressemble beaucoup à une question rhétorique. ))

Il n'est pas facile de répondre à une telle question. Les propriétés du triangle se manifestent dans des "sujets" très différents.

Vous avez mentionné les statistiques, j'ai déjà essayé de me mettre à niveau du point de vue de la cinématique (dans les liens joints).

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

Calcul des différences, exemples.

Aleksey Panfilov, 2018.01.10 16:34


Oui.

Directement lié au binôme de Newton.

C'est vrai pour les points équidistants :

1*Y1-2*Y2+1*Y3=0- équation de différence de la ligne droite.

1*Y1-3*Y2+3*Y3-1*Y4=0 - l'équation différentielle de la parabole du second degré.

1*Y1-4*Y2+6*Y3-4*Y4+ 1*Y5=0 - équation différentielle de la parabole du troisième degré.

Il se recoupe également avec les sujets :

https://www.mql5.com/ru/forum/61389/page48#comment_5633264

https://www.mql5.com/ru/forum/211220/page2#comment_5632736 .

Je joins, à mon avis, un article intéressant dans la revue "Kvant". Et ce n'est pas le seul article de N.B. Vasiliev sur ce sujet, et bien sûr il n'épuise pas toute la gamme des propriétés du triangle de Pascal. (Laissons entre parenthèses le fait que Pascal n'a pas été le premier à prêter attention à ce "modèle").

P/S. Le nom de l'archive est tordu, elle s'appelait : Nikolay Vasiliev. Journal Quant.doc.zip

 


 
Aleksey Panfilov:

Si c'est une question, elle est très rhétorique. ))

Il n'est pas facile de répondre à une telle question. Les propriétés d'un triangle se manifestent dans des "sujets" très différents.

Vous avez mentionné les statistiques, j'ai déjà essayé de me mettre à niveau du point de vue de la cinématique (dans les liens joints).

Je vous joins un article intéressant, à mon avis, paru dans la revue "Kvant". Et ce n'est pas le seul article de N.B. Vasiliev sur le sujet, et bien sûr il n'épuise pas toute la gamme des manifestations des propriétés du triangle de Pascal. (Laissons entre parenthèses le fait que Pascal n'a pas été le premier à prêter attention à ce "modèle").

P/S. Le nom de l'archive est tordu, elle s'appelait : Nikolay Vasiliev. Journal du Quant.doc.zip

Merci pour votre réponse détaillée. J'ai lu tous les documents supplémentaires. La question en tant que telle n'était pas, plutôt une réaction à votre suggestion d'un autre fil https://www.mql5.com/ru/forum/221552/page194#comment_6625488 :"Est-il possible d'utiliser à la fois la deuxième et la n-différence et l'EMA du premier au quatrième degré de cette manière ? Il serait curieux de faire un schéma général des processus dans des exemples similaires."

Il n'est pas nécessaire d'aller jusqu'à la généralité du schéma en augmentant progressivement le nombre de différences considérées par 1, on peut aller directement à un très grand nombre d'entre elles en analysant les propriétés du triangle de Pascal. C'est dans ce fil, si j'ai bien compris, qu'est apparue la nécessité d'estimer une "distribution de référence". Que ce soit pour des milliers d'incréments, mais la "référence" est immédiatement postulée dans les propriétés de vos coefficients du triangle de Pascal comme aspirant à une distribution normale. @Alexander_K2 cherchait une distribution des incréments qui soit au moins un peu proche d'une distribution de Poisson, et la distribution de Poisson elle-même tend à être normale lorsque l'indice augmente. Si l'on considère que vos coefficients correspondent au remplacement de l'expression (1-x)^n par son analogue différentiel, alors... on peut aussi penser à un schéma général de "processus dans des exemples analogues".

Mais cela sortirait du même fil, et son auteur, je pense, n'est pas intéressé par les réponses aux questions qu'il pose lui-même. Bien que, personnellement, je serais curieux de voir le schéma général que vous avez mentionné, aussi.

 

P/S. D'après les derniers graphiques, nous devons vérifier le moment de l'optimisation des transactions.

 

Dans l'ensemble, le "repli" sur les horaires d'ouverture n'a pas été significatif.

Nouvelle carte.

Le graphique montre la clôture des transactions, et pour les transactions qui durent de 15 minutes à 15 heures (principalement), il est probablement possible de réguler l'ouverture par le temps, mais pas "directement". Je ne sais pas comment filtrer la fermeture.

Je ne sais pas comment filtrer la fermeture, je ne sais pas encore.

Dossiers :
2018_02_28.zip  441 kb
 

Ajout d'une option pour désactiver la couche de filtrage dans la dernière EA.

Et correction d'une inexactitude qui obligeait à fermer une transaction et à en ouvrir une autre sur deux ticks/barres différents (lors de l'optimisation par les points d'ouverture), au lieu d'une seule.

  if(( line1_L0[0] > line2_L0[0] || L0_1_line_power ==0)  &&  (line1_L1[0] > line2_L1[0]  || L1_1_line_power ==0))
     {
      if(
           (
           (line1_L2[0] > line2_L2[0] || L2_1_line_power ==0) && ((New_Time[0]-3600*Start_Hour)%86400 < 3600*Period_Hour)
           )
            || Sell_opened
        )  
        {
         // есть ли в данный момент открытая позиция на покупку?
         if(Buy_opened)
           {
//            Alert("Уже есть позиция на покупку!!!");
            return;    // не добавлять к открытой позиции на покупку
           }        
         if(
             Sell_opened && ( line1_L0[0] > line2_L0[0] || L0_1_line_power ==0) &&  (line1_L1[0] > line2_L1[0]  || L1_1_line_power ==0)
              && (line1_L2[0] > line2_L2[0] || L2_1_line_power ==0) && ((New_Time[0]-3600*Start_Hour)%86400 < 3600*Period_Hour)
           )
            {      LotS = 2*Lot;      }        
            else   LotS = 1*Lot;

Si le filtrage par couche doit être désactivé, le degré de la première ligne de la couche doit être égal à 0. Si le degré de la deuxième ligne est également rendu nul, je suppose que cela accélérera le calcul, car l'une des conditions de l'indicateur supplémentaire par cycle ne sera pas remplie.

Le filtrage des heures d'ouverture est annulé par l'attribution d'une période autorisée supérieure à 24 heures.

//=====================================================================================
input int      Start_Hour=0;
input int      Period_Hour=25;

input int     EA_Magic       = 12345;    // Magic Number slippage 
input int     EA_Slippage    = 30;       // Slippage from the current price
//=====================================================================================
//--- глобальные переменные
Dossiers :
 

Et bien sûr, vous ne pouvez pas laisser même un EA de test sans TP et SL fonctionnant correctement.

   if((line1_L0[0] < line2_L0[0] || L0_1_line_power ==0) &&  (line1_L1[0] < line2_L1[0] || L1_1_line_power ==0) && relay >= 0 )
     {
        relay = -1;
     
      if(
          (
          (line1_L2[0] < line2_L2[0] || L2_1_line_power ==0) && ((New_Time[0]-3600*Start_Hour)%86400 < 3600*Period_Hour)
          )
           || Buy_opened  
        )
        {
         // есть ли в данный момент открытая позиция на продажу?
         if(Sell_opened )
           {
//            Alert("Уже есть позиция на продажу!!!");
            return;    // Ждем исполнения стоп приказа //не добавлять к открытой позиции на продажу
           }
         if(
             Buy_opened  && (line1_L0[0] < line2_L0[0] || L0_1_line_power ==0) &&  (line1_L1[0] < line2_L1[0] || L1_1_line_power ==0) 
             &&  (line1_L2[0] < line2_L2[0] || L2_1_line_power ==0) && ((New_Time[0]-3600*Start_Hour)%86400 < 3600*Period_Hour)  
           )
            {      LotS = 2*Lot;      }        
            else
                   LotS = 1*Lot;

P/S.

Laissez-moi vous expliquer, TP et SL ont également fonctionné avant, mais après la fermeture par eux, le signal d'ouverture était seulement la couche de la période minimale, tandis que les périodes moyennes et longues filtrées conditionnellement par la tendance. La deuxième option, avec le commutateur, suppose le signal principal sur la période inférieure et moyenne, et le filtrage de tendance uniquement sur la période supérieure, ce qui est plus proche de l'idée originale.

PP/S.

J'ai lancé l'optimisation TP et SL, il semble que la première option était plus utile.