Test des systèmes de prévision en temps réel - page 74

 
neoclassic писал(а) >>
Vous pouvez voir le fichier forecast.csv

Plus maintenant :o( Mais j'en aurai d'autres ce week-end ! :o)

 
J'ai besoin de comprendre la structure des données. Je me souviens avoir résolu un problème similaire, j'avais besoin d'afficher les trajectoires sur un graphique. Mais j'ai utilisé un indicateur à cette fin. Il était donc nécessaire d'obtenir la longueur des trajectoires pour déterminer SetIndexShift. Le fichier avec les trajectoires avait le format suivant : lignes avec les valeurs de la 1ère trajectoire, vide, 2ème, vide, etc. Pour déterminer la longueur, chaque lecture était vérifiée pour détecter une ligne vide, et lorsqu'elle était trouvée, le tampon suivant était rempli et déterminé par un décalage. J'espère que ça a aidé.
 
grasn >> :

J'ai écrit un script pour générer un tableau de réalisations probables (c'est très simple) :

Voici comment fonctionne le script :

Comment déterminer automatiquement la longueur de l'échantillon de probabilité à partir d'un fichier texte est un mystère pour moi, jusqu'à présent, il est défini manuellement. Si vous avez des idées, veuillez m'en faire part.

J'ai une fonction dans ShowSeries pour déterminer la taille de la série - c'est fait de manière globale par une lecture préemptive supplémentaire du fichier, comme ceci :

int GetFileCount()
{
  int count = 0;
  int columns = 0;
  int handle = FileOpen( FileName, FILE_CSV| FILE_READ, Delimiter);
  if( handle > 0)
  {
    while(!FileIsEnding( handle))
    {
      string x = FileReadString( handle);
      if(StringLen(StringTrimLeft(StringTrimRight( x))) == 0) break;
      if( count == 0)
      {
        columns++;
      }
      if(FileIsLineEnding( handle))
      {
        count++;
      }
    }
    FileClose( handle);
  }
  Comment("Column ", ColumnNo, "(", columns, "),", " Lines:", count);
  return( count);
}

Si vous sauvegardez dans un fichier au format binaire, vous pouvez rapidement calculer par la formule évidente (longueur - en-tête de fichier - s'il y en a un)/taille d'un enregistrement.

Je ne comprends pas l'avantage d'utiliser un ensemble d'objets au lieu d'indicateurs, cependant. Au contraire, si j'ai besoin d'utiliser un code où des objets sont appliqués, je le convertis en tampons. Les seuls objets qui sont nécessaires sont les légendes, imho ;-), et seulement parce que methacquotes n'a pas pris la peine de faire des indicateurs de texte.

Et un autre point important. Nous ne serons pas en mesure de construire le TS par des objets. Un indicateur doit être un signal - donner des signaux disponibles par iCustom.

J'écarterais cette direction avec des objets comme une conception d'achat inappropriée ;-). Mais bien sûr, vous êtes le mieux placé pour le savoir.

 
neoclassic >> :
J'ai besoin de comprendre la structure des données. Je me souviens avoir résolu un problème similaire, je devais afficher les trajectoires sur un graphique. Mais j'ai utilisé l'indicateur dans ce but. Il était donc nécessaire d'obtenir la longueur des trajectoires pour déterminer SetIndexShift. Le fichier avec les trajectoires avait le format suivant : lignes avec les valeurs de la 1ère trajectoire, vide, 2ème, vide, etc. Pour déterminer la longueur, chaque lecture était vérifiée pour trouver une ligne vide, et lorsqu'elle était trouvée, le tampon suivant était rempli et déterminé par un décalage. J'espère que ça a aidé.

Il y a une matrice. J'ai juste besoin de déterminer la taille de cette matrice.

 
marketeer >> :

J'ai une fonction dans ShowSeries pour déterminer la taille de la série - cela se fait indirectement par une lecture préemptive supplémentaire du fichier, comme ceci :

Si vous sauvegardez dans un fichier binaire, vous pouvez rapidement calculer par la formule évidente (longueur de l'en-tête du fichier s'il y en a un)/taille d'un enregistrement.

Je ne comprends pas l'avantage d'utiliser un ensemble d'objets au lieu d'indicateurs, cependant. Au contraire, si j'ai besoin d'utiliser un code où des objets sont appliqués, je le convertis en tampons. Les seuls objets qui sont nécessaires sont les légendes, imho ;-), et seulement parce que methacquotes n'a pas pris la peine de faire des indicateurs de texte.


J'ai vu la fonction et même compris conceptuellement ce qu'elle fait. Ce qui reste à comprendre, c'est comment cela fonctionne. OK. Je vais prendre un temps d'arrêt pendant le week-end et y réfléchir, et si je ne comprends pas, je demanderai une explication.


Et un autre point important. Nous ne serons pas en mesure de construire le TS par des objets. L'indicateur doit être un signal - donner des signaux disponibles via iCustom.

Je fermerais cette voie avec des objets aussi mauvais achètent la conception). Mais bien sûr, vous le savez mieux que moi.


Je le sais, mais pour l'instant je n'en ai besoin que pour la visualisation des prévisions. Bien sûr, il y aura un niveau à négocier, et je saisirai les données dans les matrices :o)

 
grasn >> :

il y a une matrice. J'ai juste besoin de déterminer la taille de cette matrice.

Si chaque ligne de la matrice est une trajectoire, alors je ferais
   while(FileIsEnding( Handle)==false)
   {
      if(FileIsLineEnding(Handle)) //если строка закончилась, начинаем новую траекторию с 0
      {
         i=0;
      }

      COUNT=FileReadString( Handle);
      realisation=NormalizeDouble(StrToDouble( COUNT), 5);

      ObjectCreate(DoubleToStr( idCount, 10), OBJ_ARROW, 0,Time[0]- timeShift*15*60)+( i)*Period()*60+1, realisation);
      ObjectSet(DoubleToStr( idCount, 10), OBJPROP_ARROWCODE, 250);
      
      i= i+1;
      idCount= idCount+1;

   }
 
neoclassic >> :
Si chaque ligne de la matrice est une trajectoire, alors je ferais

Jusqu'à présent, grasn a généré des fichiers où les lignes sont des comptes de temps et les trajectoires sont écrites par colonnes. Conserver cette disposition serait plus pratique, du moins à mon avis;-) -Je l'utilise partout. Au fait, Deductor aussi.

 

J'ai regardé le code de l'indicateur que grasn a posté sur la page précédente, il lit les trajectoires par rangées. Le problème, d'après ce que je comprends, est que je dois connaître la longueur des trajectoires pour commencer à dessiner à partir de la 0ème mesure dans le temps.

La méthode suggérée par moi détecte automatiquement la fin de la ligne et déplace le chariot :-).

A propos de ce qui est plus pratique - je suis d'accord.

 
Chers collègues, merci beaucoup pour ces conseils. Je vais essayer.
 

EURUSD, M15.

Prévu pour 300 comptes (un peu plus de 3 jours).

Trajectoires principales :


Deux groupes de trajectoires les plus probables, à peu près "égaux" :


Transféré à MT :



PS1 : Juste au cas où - le système est en cours de test, il est trop tôt pour l'utiliser pour le trading.

PS2 : Je soupçonne fortement que le graphique va "basculer" dans l'histoire à la première citation.

Dossiers :
files.rar  44 kb