[Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas votre chemin. Je ne peux aller nulle part sans toi. - page 614

 
Urain:

MathRand doit être initialisé avec MathSrand() avant d'être utilisé,

et je recommande de passer TimeLocal() comme paramètre de MathSrand().

L'initialisation est requise une fois, puis pour 32768 requêtes MathRand() n'est pas détecté,

Après cela, vous pouvez initialiser à nouveau si vous voulez une nouvelle séquence, sinon la même chose se produit.

Vous pouvez bien sûr initialiser chaque étape, mais vous devez surveiller le paramètre d'initialisation pour le modifier,

sinon c'est la même séquence.


C'est ce que je fais. Qu'est-ce que le timelockal ?

J'ai le même ensemble sur la même histoire.

 
QUELQU'UN PEUT ME DONNER UN INDICE... TROISIÈME FOIS que j'écris et que personne ne répond...AccountEquity() UNE BARRE AU-DESSUS (sur une barre passée) COMMENT ÉCRIRE ?
 
vlad123:


C'est ce que je fais. Qu'est-ce que le timelockal ?

J'ai le même ensemble sur la même histoire.


Exemples tirés du manuel :

datetime TimeLocal()

La fonction renvoie l'heure locale de l'ordinateur sous la forme du nombre de secondes écoulées depuis 00:00 le 1er janvier 1970.
Remarque : lors du test, l'heure locale est simulée et correspond à l'heure simulée du dernier serveur connu.

Exemple :

MathSrand(TimeLocal());
  // Отображает 10 чисел.
  for(int i=0;i<10;i++ )Print("произвольная величина ", MathRand());

 
sllawa3:
QUELQU'UN POURRAIT-IL ME CONSEILLER ? ...AccountEquity() UNE BARRE AU-DESSUS (sur une barre passée) COMMENT ÉCRIRE ?

Réponse : pas du tout.
AccountEquity() renvoie le montant des fonds propres, et ne dépend pas du nombre de barres.
Vous ne pouvez pas connaître ses valeurs précédentes en remontant simplement l'historique des barres.
Sa valeur dépend du nombre de transactions ouvertes/fermées, rentables/perteuses.
Pour enregistrer "l'historique des capitaux propres", créez un tableau statique et enregistrez-y la valeur AccountEquity(), par exemple, à chaque ouverture de barre.
Ainsi, nous devrions faire défiler le tableau pour obtenir l'historique des changements d'équité.

 
sllawa3:
QUE QUELQU'UN ME DONNE UN INDICE... AccountEquity() UNE BARRE AU-DESSUS (sur une barre passée) COMMENT ÉCRIRE ?

Il semble que nous devions le stocker dans une variable à chaque nouvelle barre, par exemple de cette façon :

1. stocker la valeur initiale de l'équité dans la fonction init() dans une variable, disons EquAkk=AccountEquity() ;

2. vérifiez l'apparition d'une nouvelle barre (pas dans init bien sûr), si oui, alors
{
LastEqu=EquAkk ; // stockez la valeur d'équité passée (requise par nous) dans la variable
EquAkk=AccountEquity() ; // enregistrez la nouvelle valeur d'équité (pour la prochaine valeur "passée")
}

Ainsi, la variable LastEqu stockera la valeur d'équité pour la barre passée, et sa valeur sera à nouveau écrasée à l'ouverture de la prochaine barre...

... Je l'ai écrit tout seul, je ne l'ai pas vérifié et je me suis déjà endormi, alors ne me donnez pas trop de coups de pied...
Je crois que j'ai compris l'idée. ....

 
ToLik_SRGV:

Réponse : pas du tout.
AccountEquity() renvoie le montant des fonds propres, et ne dépend pas du nombre de barres.
Vous ne pouvez pas connaître ses valeurs précédentes en remontant simplement l'historique des barres.
Sa valeur dépend du nombre de transactions ouvertes/fermées, rentables/perteuses.
Pour enregistrer "l'historique des capitaux propres", créez un tableau statique et enregistrez-y la valeur AccountEquity(), par exemple, à chaque ouverture de barre.
Par conséquent, il serait possible d'obtenir l'historique des changements d'équité en faisant défiler le tableau.



DONC, VOUS POUVEZ TOUJOURS
 
sllawa3:
DONC, VOUS POUVEZ TOUJOURS


J'ai écrit la même chose mais j'ai suggéré d'utiliser un tableau au lieu d'une variable.

Pour enregistrer "l'historique des capitaux propres", il faut, par exemple, créer un tableau statique et y enregistrer la valeur de AccountEquity(), par exemple, à l'ouverture de chaque barre.
Par conséquent, l'historique des changements d'équité devrait être obtenu en faisant défiler le tableau.

 
Les gars, je n'arrive pas à trouver comment placer les flèches sur le graphique, une sur la barre la plus haute pour les 80 derniers jours et l'autre sur la barre la plus basse pour ces mêmes 80 jours. J'ai créé ce code, mais il jette des flèches en grappes... J'ai besoin d'une flèche au minimum et au maximum de chaque barre pour les 80 derniers jours, puis pour les 80 prochains jours, etc. Pouvez-vous me donner un indice ?
//====================================================================================
   int      NBars,MostHiBar, MostLoBar;
   double   MostHiPrice,MostLoPrice;
   datetime TMostHiBar,TMostLoBar;
   
//-----------------------------------------------------------------
   NBars       = 80;
   MostHiBar   = iHighest(NULL,PERIOD_D1,MODE_HIGH,NBars,0);      // Номер "максимального" бара
   MostLoBar   = iLowest (NULL,PERIOD_D1,MODE_LOW, NBars,0);      // Номер "минимального" бара
   MostHiPrice = iHigh   (NULL,PERIOD_D1,MostHiBar);              // Цена  "максимального" бара
   MostLoPrice = iLow    (NULL,PERIOD_D1,MostLoBar);              // Цена  "минимального" бара
   
   TMostHiBar  = iTime   (NULL,PERIOD_D1,MostHiBar);              // Время открытия "максимального" бара
   TMostLoBar  = iTime   (NULL,PERIOD_D1,MostLoBar);              // Время открытия "минимального" бара

   Comment (
            "\n", 
            "Наибольшая цена за ", NBars, " дней = ", MostHiPrice, "\n",
            "Наименьшая цена за ", NBars, " дней = ", MostLoPrice, "\n",
            "Время наибольш. бара = ", Time[MostHiBar], "\n",
            "Время наименьш. бара = ", Time[MostLoBar]   // сюда пробовал и TMostLoBar вставлять - пофигу...           
           );
           
   SetArrow(241, MediumSpringGreen, "", Time[MostHiBar], High[MostHiBar], 0);
   SetArrow(242, OrangeRed, "", Time[MostLoBar], Low[MostLoBar], 0);
//====================================================================================
//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 12.10.2007                                                     |
//|  Описание : Установка значка на графике, объект OBJ_ARROW.                 |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    cd - код значка                                                         |
//|    cl - цвет значка                                                        |
//|    nm - наименование               ("" - время открытия текущего бара)     |
//|    t1 - время открытия бара        (0  - текущий бар)                      |
//|    p1 - ценовой уровень            (0  - Bid)                              |
//|    sz - размер значка              (0  - по умолчанию)                     |
//+----------------------------------------------------------------------------+
void SetArrow(int cd, color cl, string nm="", datetime t1=0, double p1=0, int sz=0) 
{
  if (nm=="") nm=DoubleToStr(Time[0], 0);
  if (t1<=0) t1=Time[0];
  if (p1<=0) p1=Bid;
  if (ObjectFind(nm)<0) ObjectCreate(nm, OBJ_ARROW, 0, 0,0);
  ObjectSet(nm, OBJPROP_TIME1    , t1);
  ObjectSet(nm, OBJPROP_PRICE1   , p1);
  ObjectSet(nm, OBJPROP_ARROWCODE, cd);
  ObjectSet(nm, OBJPROP_COLOR    , cl);
  ObjectSet(nm, OBJPROP_WIDTH    , sz);
}
//====================================================================================
 
Pouvez-vous me dire s'il est possible d'ouvrir une position dans MT par stop ? Par exemple, mettez un stop derrière le support/copr. et s'il le franchit, le stop ouvre une position.
 
Craft:
Pouvez-vous me dire s'il est possible d'ouvrir une position sur un stop dans MT ? Par exemple, mettez un stop derrière le support/sopr. et si celui-ci casse, le stop ouvre une position.

Bien sûr. Seulement, il ne s'agit pas d'un stop mais d'un ordre en attente. Ouvrez votre terminal. Appuyez sur la touche F1. Dans la fenêtre qui s'affiche, ouvrez Contenu - Commerce - Type de commande.