Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 6. - page 1113

 
Mislaid:

Il faut un script pour les week-ends.

Je travaille les jours de semaine. C'est pourquoi j'utilise l'indicateur. Je lui donne une liste d'instruments et il demande des cotations pour la période de temps, sur le graphique duquel il se trouve. Je ne m'occupe pas de la gestion des erreurs. Après une douzaine de minutes, tout se calme.

J'ai complètement oublié. Si vous devez sauvegarder l'historique, le graphique du symbole doit être ouvert.

Nous ne pouvons pas garder plus de 100 tableaux ouverts. Nous avons besoin de 100 paires dans 9 intervalles de temps = 900 graphiques.

Le marché est lancé. Mais ni CopyTime, ni les appels ArrayCopySeries ne reconstituent automatiquement l'historique pour les instruments provenant de MarketWatch.
Les tableaux des instruments n'ont jamais été ouverts.
Il doit y avoir une solution.

Par exemple, AUDCAD. Il n'y avait aucun graphique ouvert pour ce symbole. Si j'ouvre manuellement le graphique AUDCAD H1 et que j'appuie sur les boutons, l'historique sera chargé. Il en est de même sur d'autres horizons temporels - uniquement en mode manuel, il ne veut pas le faire automatiquement.
 
Quoi qu'il en soit, j'ai écrit un script qui ouvre quelques dizaines de graphiques en blocs, émule l'appui sur la touche Home, puis ferme les graphiques.
Cela fonctionne avec une béquille, mais cela permet aussi de remplacer l'histoire par de nouveaux personnages.
 

Bonjour, chers membres du forum. S'il vous plaît, ne soyez pas blessé, j'écris juste ma thèse et je veux faire des recherches sociologiques. Il y a certainement des gens qui ont acheté des EA une ou plusieurs fois. Dites-nous, s'il vous plaît, quels critères étaient importants et cruciaux pour vous lors de l'achat ? Par exemple, cela peut être :

-le type de conseiller expert (tendance, seth, martingale, scalper...).

-Historique dans letesteur de stratégie

-Quelques fonctions spécifiques du conseiller expert

-une description détaillée du fonctionnement et de la configuration de l'EA.

-Classement des vendeurs

- Prix EA

-campagnes et rabais

Ou peut-être quelque chose d'autre.

Et avez-vous été satisfait de votre achat ?

Merci beaucoup pour votre compréhension et vos réponses

 
Konstantin Zubrilin:

Bonjour, chers membres du forum. S'il vous plaît, ne soyez pas blessé, j'écris juste ma thèse et je veux faire des recherches sociologiques. Il y a certainement des gens qui ont acheté des EA une ou plusieurs fois. Dites-nous, s'il vous plaît, quels critères étaient importants et cruciaux pour vous lors de l'achat ? Par exemple, cela peut être :

-le type de conseiller expert (tendance, seth, martingale, scalper...).

-Historique dans letesteur de stratégie

-Quelques fonctions spécifiques du conseiller expert

-une description détaillée du fonctionnement et de la configuration de l'EA.

-Classement des vendeurs

- Prix EA

-campagnes et rabais

Ou peut-être quelque chose d'autre.

Et avez-vous été satisfait de votre achat ?

Merci beaucoup pour votre compréhension et vos réponses

Vous devriez créer un sondage, de préférence dans le fil de discussion en anglais, il y a plus de pindos.
 

Pouvez-vous me dire où se trouve l'erreur ? Les valeurs des éléments du tableau Koef[] sont calculées, chaque élément se voit attribuer une valeur. Pourquoi Buffer1[] n'est-il pas affecté ?

#property copyright "Copyright 2016, T"
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
#property indicator_separate_window
#property indicator_buffers 1
#property indicator_level1 0.8
#property indicator_level2 -0.8
#property indicator_levelcolor Black
#property indicator_color1 Blue
#property indicator_minimum -1
#property indicator_width1 2
#property indicator_style1 0
#property indicator_maximum 1

double Buffer1[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//--- indicator buffers mapping
  SetIndexBuffer(0, Buffer1);
  SetIndexStyle(0, DRAW_LINE);
  return(0);
//---
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
   {
   int n=25;                                                            // количество элементов в массиве(для периода H1 n=25, тк i<n)
   int m=24;                                                            // количество массивов(для периода H1 m=24, тк p=0, p<m)
   int w=18;                                                            // количество заков после запятой
  
   double Price_CloseX[][24];                                           // Массив цен закрытия 1 пары  
   double Price_CloseY[][24];                                           // Массив цен закрытия 2 пары
   double dx[][24];                                                     // Отклонение от среднего значения для пары 1 dx
   double dy[][24];                                                     // Отклонение от среднего значения для пары 2 dy
   double dx2[][24];                                                    // Квадрат отклонения ср.значения dx2
   double dy2[][24];                                                    // Квадрат отклонения ср.значения dy2
   double dxdy[][24];                                                   // Произведение dx и dy
  
   double sum_x[][24];
   double sum_y[][24];
  
   double Mx[][24];                                                         // Массив среднего значения цен закрытия пары 1 Mx
   double My[][24];                                                         // Массив среднего значения цен закрытия пары 2 My
  
   double Edx2[][24];                                                       // Сумма квадратов отклонений Edx2
   double Edy2[][24];                                                       // Сумма квадратов отклонений Edy2
   double Edxdy[][24];                                                      // Сумма произведений отклонений Edxdy
  
   double Koef[];
  
   ArrayResize(Price_CloseX, n);
   ArrayResize(Price_CloseY, n);
   ArrayResize(dx, n);
   ArrayResize(dy, n);  
   ArrayResize(dx2, n);
   ArrayResize(dy2, n);
   ArrayResize(dxdy, n);
   ArrayResize(sum_x, n);
   ArrayResize(sum_y, n);
   ArrayResize(Mx, n);
   ArrayResize(My, n);
   ArrayResize(Edx2, n);
   ArrayResize(Edy2, n);
   ArrayResize(Edxdy, n);
   ArrayResize(Koef, n);
  
   string sym_x="EURUSD";
   string sym_y="GBPUSD";
  
   for(int i=1; i<n; i++)
      {
      for(int p=0; p<m; p++)
         {
         Price_CloseX[i][p]=iClose(sym_x, PERIOD_H1, i+p);
         Price_CloseY[i][p]=iClose(sym_y, PERIOD_H1, i+p);
        
         }
      }
      
    for(int i=1; i<n; i++)
      {    
      for(int p=0; p<m; p++)
         {  
         sum_x[i][p]=sum_x[i][p-1]+Price_CloseX[i][p];                                        
         sum_y[i][p]=sum_y[i][p-1]+Price_CloseY[i][p];
        
         }        
      }
  
   for(int i=1; i<n; i++)
      {    
      for(int p=0; p<m; p++)
         {      
         Mx[i][p]=sum_x[p+1][m-1]/(n-1);  
         My[i][p]=sum_y[p+1][m-1]/(n-1);
                
         }
       }
  
   for(int i=1; i<n; i++)
      {
      for(int p=0; p<m; p++)
         {
         dx[i][p]=Price_CloseX[i][p]-Mx[i][p];
         dy[i][p]=Price_CloseY[i][p]-My[i][p];
        
         }
      }
    
   for(int i=1; i<n; i++)                                                                  
      {
      for(int p=0; p<m; p++)
         {
         dx2[i][p]=(dx[i][p]*dx[i][p])*1000000;
         dy2[i][p]=(dy[i][p]*dy[i][p])*1000000;
        
         }
      }
    
   for(int i=1; i<n; i++)                                                                  
      {
      for(int p=0; p<m; p++)
         {
         dxdy[i][p]=(dx[i][p]*dy[i][p])*1000000;
        
         }
      }  
                        
   for(int i=1; i<n; i++)                                                                  
      {
      for(int p=0; p<m; p++)
         {
         Edx2[i][p]=(Edx2[i-1][p]+dx2[i][p]);                                        
         Edy2[i][p]=(Edy2[i-1][p]+dy2[i][p]);
         Edxdy[i][p]=(Edxdy[i-1][p]+dxdy[i][p]);
         }
      }
  

      for(int p=0; p<m; p++)
         {
         Koef[p]=Edxdy[n-1][p]/sqrt(Edx2[n-1][p]*Edy2[n-1][p]);
         Buffer1[p]=Koef[p];
         Alert("Коэффициент корреляции Пирсона между ", sym_x, " и ", sym_y, " равен ", DoubleToString(Koef[p], w));
         Alert("Значение буфера ", p, " равно ", Buffer1[p]);
         }
   return(0);
   }
 
Bonjour ! Ai-je bien compris qu'avec tp=2, sl=20 et spread=2 la probabilité de tp=(2+2)/(20-2)=0.22.... ou dois-je multiplier par un certain coefficient ? Et si le vrai tp=0.22, alors idéalement on peut ouvrir 3 trades d'affilée avec ces paramètres, et 4 du deal à sauter ?
Peut-être y a-t-il des sujets similaires ? Donnez-moi un lien, s'il vous plaît.
 
bobrush:
Bonjour ! Ai-je raison de comprendre qu'avec tp=2, sl=20 et spread=2 la probabilité de tp=(2+2)/(20-2)=0.22.... ou dois-je multiplier par un certain coefficient ? Et si le vrai tp=0.22, alors idéalement on peut ouvrir 3 trades d'affilée avec ces paramètres, et 4 du deal à sauter ?
Peut-être y a-t-il des sujets similaires ? Donnez-moi un lien, s'il vous plaît.

Je ne donnerai pas de lien, les gens pensent différemment. Je recommande de partir du principe du désespoir de construire le Graal. Dans ce cas, à un TP et SL donnés, elle peut être formulée comme suit :

En l'absence de spread, le gain attendu dans toute série de transactions avec le même SL et le même TP est nul.

L'espérance de profit sans spread est égale à P(TP)*TP-P(SL)*SL=0, où SL et TP sont les distances entre le niveau d'ouverture de la transaction et leurs niveaux, P est la probabilité de réalisation de la transaction par SL ou TP, respectivement.

D'après la condition d'achèvement de toutes les transactions P(TP)+P(SL)=1, où P(TP)*TP-(1-P(TP))*SL=0, P(TP)*(TP+SL)=SL et

P(TP)=SL/(SL+TP).

Pour prendre en compte le spread, il faut remplacer l'espérance de gain nul par l'espérance de perte de la taille du spread, P(TP)*TP-P(SL)*SL=Spread, et en déduire la formule requise.

 
Vladimir:

Je ne donnerai pas de lien, les gens pensent différemment. Je recommande de partir du principe de l'impossibilité de construire le Graal. Dans ce cas, pour les TP et SL donnés, elle peut être formulée comme suit :

En l'absence de spread, le gain attendu dans toute série de transactions avec le même SL et le même TP est nul.

L'espérance de profit sans spread est égale à P(TP)*TP-P(SL)*SL=0, où SL et TP sont les distances entre le niveau d'ouverture de la transaction et leurs niveaux, P est la probabilité de réalisation de la transaction par SL ou TP, respectivement.

D'après la condition d'achèvement de toutes les transactions P(TP)+P(SL)=1, où P(TP)*TP-(1-P(TP))*SL=0, P(TP)*(TP+SL)=SL et

P(TP)=SL/(SL+TP).

Pour prendre en compte le spread, nous devons remplacer l'espérance de gain nulle par une espérance de perte égale au spread, P(TP)*TP-P(SL)*SL=Spread, et dériver la formule requise.

En ce qui concerne le coefficient, je me souviens de quelque chose comme C(n,k), c'est-à-dire P(x)=C(n,k)*P(y/x)..... Bref, je suis confus... Je vais devoir feuilleter le livre.
 
bobrush:
En ce qui concerne le coefficient, je me souviens de quelque chose comme C(n,k), c'est-à-dire P(x)=C(n,k)*P(y/x)...... Bref, je suis confus... Je vais devoir feuilleter le livre.

Si nous parlons de livres sur la théorie des probabilités, et à en juger par l'allusion au nombre de combinaisons de n par k C(n,k), il s'agit de combinatoire, alors il n'y a pas de réponse à la question posée dans la théorie des probabilités. Plus précisément, la formule P(TP)*TP-P(SL)*SL=0

Je l'ai eu de manière empirique. En cherchant une telle combinaison de SL et TP qui donnerait même le plus petit écart statistiquement significatif par rapport à zéro. La base de données de l'historique des ticks pour 25 paires de devises a été collectée environ 300 semaines auprès de 50 à 60 centres de négociation. Elle contenait alors 50 milliards de ticks. J'ai essayé des dizaines de méthodes d'ouverture régulière ou pseudo-aléatoire des marchés. Le taux sans l'écart était considéré comme la moyenne arithmétique de l'offre et de la demande.

 
Vladimir:

Si nous parlons de livres sur la théorie des probabilités, et à en juger par l'allusion au nombre de combinaisons de n par k C(n,k), il s'agit de combinatoire, alors il n'y a pas de réponse à la question posée dans la théorie des probabilités. Plus précisément, la formule P(TP)*TP-P(SL)*SL=0

Je l'ai eu de manière empirique. En cherchant une telle combinaison de SL et TP qui donnerait même le plus petit écart statistiquement significatif par rapport à zéro. La base de données de l'historique des ticks pour 25 paires de devises a été collectée environ 300 semaines auprès de 50 à 60 centres de négociation. Elle contenait alors 50 milliards de ticks. J'ai essayé des dizaines de méthodes d'ouverture régulière ou pseudo-aléatoire des marchés. Le taux sans écart a été considéré comme la moyenne arithmétique de l'offre et de la demande.

Cela signifie que la théorie et la pratique sont identiques. 300 semaines, c'est plus que 5 ans, juste pour confirmer la théorie ?
Il s'avère que quelle que soit la façon dont on ouvre le marché, même si c'est par le hasard, même si c'est par le signal, le résultat est le même : M(x)=0 ?