[ARCHIVE !] Toute question de débutant, pour ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 4. - page 286

 
FAQ:

Voilà le problème... Les tampons d'indicateurs ne fonctionnent que dans les indicateurs. Vous n'obtiendrez rien en déplaçant simplement le code, utilisez des appels d'indicateurs standard et personnalisés dans votre code de script. Les indicateurs techniques vous aideront

Ahhhh ! !! merci ! !!

Question : comment calculer le moment où ces deux-là se sont croisés pour la dernière fois ?
 
GarKain:
Ahhh ! !! Merci ! !!

Question, comment calculez-vous la dernière fois que ces deux-là se sont croisés ?

Et voilà.

//+------------------------------------------------------------------+
//|                                                        e_RVI.mq4 |
//|                        Copyright 2012, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright 2012, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"

extern int ExtRVIPeriod=10;
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----
 double RVI_1 = iCustom( NULL,0,"Relativ Vigor Index",ExtRVIPeriod,0,1);
 double RVI_2 = iCustom( NULL,0,"Relativ Vigor Index",ExtRVIPeriod,0,2);
 double RVIS_1= iCustom( NULL,0,"Relativ Vigor Index",ExtRVIPeriod,1,1);
 double RVIS_2= iCustom( NULL,0,"Relativ Vigor Index",ExtRVIPeriod,1,2);
 
 Comment("\n","\n"," RVI:  1 Бар = ",RVI_1,
              "\n"," RVI:  2 Бар = ",RVI_2,
              "\n"," RVIS: 1 Бар = ",RVIS_1,
              "\n"," RVIS: 2 Бар = ",RVIS_2); 
              
   if(RVI_2<RVIS_2&&RVI_1>RVIS_1)    //Biu 
       SetArrow(241,Blue,"Biu"+Time[0],Time[0],Low[0],0);
       
   if(RVI_2>RVIS_2&&RVI_1<RVIS_1)    //Sell
       SetArrow(242,Red,"Sell"+Time[0],Time[0],High[0],0);       
//----
   return(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);
}
 

Bonne journée !

Messieurs les traders, dans l'un des messages du forum , j'ai vu un "indicateur" intéressant.

Si je ne me trompe pas, l'arrière-plan du 5e graphique montre silhouettes de chandeliers horaires . En d'autres termes, l'évolution du prix en l'espace d'une heure était clairement visible.

N'hésitez pas à télécharger(igrok081@mail.ru) ou à suggérer où télécharger, ou au moins même le nom.

Merci d'avance .

Alexander.

 
r772ra:

Et voilà.

*shamefully* Je n'ai pas compris le code. Mais, pardonnez mon côté fastidieux, je voulais savoir comment calculer le moment où ces deux-là se sont croisés AU DERNIER MOMENT ? Peut-être que le code est correct et qu'il ne commence à compter qu'après son exécution. Si c'est le cas, comment faire pour qu'il vérifie quand il était avant l'exécution du script ?


Comment puis-je le faire moi-même ?



Je comprends un peu mais je veux quand même savoir. Comment puis-je faire en sorte qu'il vérifie si c'était avant le début du script et quel était le prix à ce moment-là.

 
GarKain:


expliquer à un idiot où se trouve la bière. comment le faire moi-même ?


Lire ici :

https://book.mql4.com/ru/samples/indicators

Et ici :

https://book.mql4.com/ru/samples/shared

 
Merci pour l'info.

la question demeure. comment faire pour vérifier quand ces lignes ont été franchies récemment ? et quel était le prix à ce moment-là.


En gros, ce que je veux réaliser :

J'ai besoin que le script trouve le dernier croisement sur le graphique et soustraie le prix au moment du croisement du prix actuel.

Dites-moi comment cela peut être mis en œuvre.
 
N'est-ce pas possible ? Si je savais quoi chercher, je l'aurais trouvé il y a longtemps.
 

trouver quelle barre a été franchie et ensuite trouver le temps de la barre = temps de franchissement

vous pouvez calculer le prix exact du croisement, mais vous ne pouvez pas savoir quel était le prix de l'instrument, le mieux que vous puissiez faire est de connaître le numéro de la barre, et donc sa hauteur, son niveau bas, son ouverture, sa fermeture.

 
FAQ:

trouver quelle barre a été franchie et ensuite trouver le temps de la barre = temps de franchissement

vous pouvez calculer le prix exact du croisement, mais vous ne pouvez pas savoir quel était le prix de l'instrument, le mieux que vous puissiez faire est de connaître le numéro de la barre, et donc sa hauteur, son bas, son ouverture, sa fermeture.

j'ai exactement besoin du numéro de la barre qui a été le dernier croisement. comment puis-je le savoir ?
 
Effectuer un cycle depuis la barre actuelle jusqu'à l'historique, en vérifiant les croisements, en sortant au premier événement et en mémorisant le numéro de la barre.