[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 4. - pagina 286

 
FAQ:

Ecco il problema... I buffer degli indicatori funzionano solo negli indicatori. Non otterrai nulla spostando semplicemente il codice, usa le chiamate standard e personalizzate degli indicatori nel tuo codice di script. Gli indicatori tecnici vi aiuteranno

Ahhhh!!! grazie!!!

Domanda: come calcolare il momento in cui questi due si sono incrociati per l'ultima volta?
 
GarKain:
Ahhh!!! grazie!!!

Domanda: come si calcola l'ultima volta che questi due si sono incrociati?

Ecco fatto.

//+------------------------------------------------------------------+
//|                                                        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);
}
 

Buona giornata!

Gentili commercianti, in uno dei post del forum ho visto un interessante "indicatore".

Se non mi sbaglio, lo sfondo del 5° grafico mostra sagome di candele orarie . Cioè, era chiaramente visibile come il prezzo cambiava nel corso di un'ora.

Per favore, lasciami se puoi(igrok081@mail.ru) o dimmi dove scaricarlo, o almeno almeno il nome.

Grazie in anticipo .

Alexander.

 
r772ra:

Ecco fatto.

*per fortuna* non ho capito nulla del codice. Ma, scusate il mio fastidio, volevo sapere come calcolare il momento in cui questi due si sono incrociati all'ultima volta? Forse il codice è corretto e inizia a contare solo dopo che è stato eseguito. se è così, come possiamo fargli controllare quando era prima di eseguire lo script?


Come posso farlo da solo?



Capisco un po', ma voglio ancora sapere come posso fare per controllare se era prima che lo script fosse iniziato e quale fosse il prezzo in quel momento.

 
GarKain:


spiegare a un manichino dov'è l'infusione. come faccio da solo?


Leggi qui:

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

E qui:

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

 
Grazie per le informazioni.

la domanda rimane. come possiamo fare per controllare quando queste linee sono state attraversate di recente? e qual era il prezzo in quel momento.


Fondamentalmente quello che voglio ottenere:

Ho bisogno che lo script trovi l'ultimo incrocio sul grafico e sottragga il prezzo al momento dell'incrocio dal prezzo corrente.

mi dica come può essere implementato.
 
Non è possibile? Se sapessi cosa cercare l'avrei trovato molto tempo fa.
 

trovare quale barra è stata attraversata e poi trovare il tempo della barra = tempo di attraversamento

si può calcolare il prezzo esatto dell'incrocio, ma non si può scoprire quale era il prezzo dello strumento, il meglio che si può fare è conoscere il numero della barra, e quindi la sua altezza bassa aperta chiusa

 
FAQ:

trovare quale barra è stata attraversata e poi trovare il tempo della barra = tempo di attraversamento

si può calcolare il prezzo esatto dell'incrocio, ma non si può scoprire quale sia stato il prezzo dello strumento, il meglio che si può fare è conoscere il numero della barra, e quindi la sua altezza bassa aperta chiusa

esattamente ho bisogno del numero della barra che era l'ultimo passaggio. come faccio a saperlo?
 
Ciclo dalla barra corrente in profondità nella storia, controllando i crossover, uscendo al primo evento e memorizzando il numero della barra