Fonctions utiles de KimIV - page 108

 
Franchement, je suis très heureux de voir un homme légendaire avec ses propres fonctionnalités de retour dans le forum actif, bien que je n'y comprenne pas grand chose personnellement en raison de mon ignorance des bases de la programmation dans ce langage. Mais le fait même est étonnant, j'accueille KimIV de tout mon être !
 
 

Bonjour, je suis à la recherche d'une fonction, en avez-vous une de prête ?

J'ai besoin d'un fichier à créer à la fin du test, qui contiendrait des données sur le drawdown de chaque ordre. De préférence, ce fichier ne serait pas créé pendant le test, mais à la fin du traitement unique de l'historique des transactions...

 
Je ne dispose pas d'une telle fonction, mais dans un avenir proche, je prévois de publier une fonction qui calcule le drawdown maximum en pips des positions actuellement ouvertes. Cette fonction analyse le passage des ordres par les barres. L'horizon temporel est l'un des paramètres. Plus l'horizon temporel est petit, plus le calcul de l'écart maximal est précis. Je pense que vous serez en mesure de faire ce dont vous avez besoin sur la base de cette fonction.
 
KimIV:
Je ne dispose pas d'une telle fonction mais je prévois de publier dans un avenir proche la fonction calculant le drawdown maximal des points des positions ouvertes actuelles. Cette fonction analyse le passage des ordres par les barres. L'horizon temporel est l'un des paramètres. Plus l'horizon temporel est petit, plus le calcul de l'écart maximal est précis. Je pense que vous serez en mesure de faire ce dont vous avez besoin sur la base de cette fonction.

Si la fonction permet également d'écrire dans un fichier, ce serait génial...

Mais je ne vois pas de besoin particulier de calculer le drawdown pour les positions actuelles. Je pense que cette fonction est plus utile pour un testeur (analyse du travail du système) ....

 
renoshnik:

Si la fonction a aussi un enregistrement dans le fichier - ce serait bien...

Mais je ne vois pas de besoin particulier de calculer le drawdown pour les positions actuelles. Je pense que cette fonction est plus utile pour un testeur (analyse du système) .....

Il n'y a aucune différence entre "calculer le drawdown de chaque ordre en temps réel et envoyer toutes les données dans un fichier" et "calculer le drawdown de chaque ordre et envoyer les données dans un fichier à la fin du test". À l'exception du fait que la première option peut facilement être extrêmement précise, et que la seconde ne l'est que si vous vous souvenez de l'historique des ticks pour chaque ordre.
 
renoshnik:

Bonjour, je suis à la recherche d'une fonction, en avez-vous une de prête ?

J'ai besoin d'un fichier à créer à la fin du test, qui contiendrait des données sur le drawdown de chaque ordre. De préférence, ce fichier ne serait pas créé pendant le test, mais à la fin du traitement unique de l'historique des transactions...

Yuri, j'ai juste arraché le code d'un vieux conseiller expert...
Je l'ai vérifié et il semble fonctionner correctement.
Ajoutez le code de deinit() à vos hiboux et copiez trois fonctions sous deinit, l'une d'entre elles est celle d'Igor :))
.......
Le code est lâche... Mais tant qu'Igor le rend agréable à regarder, je pense que vous aurez de quoi expérimenter.
 
lasso:
Yuri, j'ai hâtivement tiré le code d'un vieux EA...
Je l'ai vérifié, ça semble fonctionner correctement.
Ajoutez le code de deinit() à vos hiboux et copiez trois fonctions sous deinit, l'une d'entre elles est celle d'Igor :))
.......
Le code est lâche... Mais tant qu'Igor le rend agréable à regarder, je pense que vous aurez de quoi expérimenter.

Super, merci ! !!!!!!!!! Je vais m'en occuper....
 

Igor, bonjour !

J'ai mis votre fonction CrossPointOfLines (calcule les coordonnées du point d'intersection de deux lignes) dans mon Expert Advisor. En conséquence, il continue d'écrire dans les commentaires : Il n'a pas réussi à trouver le point d'intersection ! Et ne peut pas trouver le point d'intersection.

Peut-être est-ce parce que j'ai d'autres objets sur mon graphique sous forme de lignes de tendance ? Ou peut-être que vous, ou l'un des habitués de ce fil, pouvez me dire quel est mon problème ?

Merci d'avance !

Code - dans le fichier joint.

Dossiers :
 

HOORAY ! Je l'ai compris moi-même) C'est les autres tendances qui ont fait obstacle...

Comme je ne suis pas très doué pour me faire des amis avec les tableaux, j'ai créé une fonction simplifiée au maximum. Jusqu'à présent, cela semble fonctionner).

//+------------------------------------------------------------------+
double Middle(string nm1,string nm2)
  {
  double M;
  double x0, x1, y1, x2, y2, x3, y3, x4, y4;
  double k1, k3;
  
  if(ObjectFind(nm1)==0 && ObjectFind(nm2)==0)
    {
    x1=ObjectGet(nm1, OBJPROP_TIME1);
    x2=ObjectGet(nm1, OBJPROP_TIME2);
    y1=ObjectGet(nm1, OBJPROP_PRICE1);
    y2=ObjectGet(nm1, OBJPROP_PRICE2);
    
    x3=ObjectGet(nm2, OBJPROP_TIME1);
    x4=ObjectGet(nm2, OBJPROP_TIME2);
    y3=ObjectGet(nm2, OBJPROP_PRICE1);
    y4=ObjectGet(nm2, OBJPROP_PRICE2);
    
    k1=(y2-y1)/(x2-x1); 
    k3=(y4-y3)/(x4-x3);
    
    if(k1 != k3)
      {
      x0 = (y1 - y3 + k3*x3 - k1*x1)/(k3 - k1);
      M = y1 + k1*(x0 - x1);
      }
    }
  return(M);
  }
//+----------------------------------------------------------------------------+
Raison: