Domanda per gli intenditori - pagina 19

 

Domanda sugli strumenti della linea Gann.

Lalinea Gun n è "costruita con un angolo di quarantacinque gradi ", anchenella griglia Gunn le linee"costruite con un angolo di 45 gradi ". Dovrebbe essere una coincidenza, IMHO, ma non è così!

 
hedger:

Domanda sugli strumenti di linea di Gunn.

Lalinea Gunn è "costruita con un angolo di quarantacinque gradi ", anchenella Griglia Gunn le linee"costruite con un angolo di 45 gradi ". Dovrebbe essere una coincidenza, IMHO, ma non è così!

L'angolo corretto è di 40 gradi, ha stabilito Mendeleev.

45 gradi sono siberiani.

 
hedger:

Domanda sugli strumenti della linea Gann.

Lalinea Gunn è "costruita con un angolo di quarantacinque gradi ", anchenella Griglia Gunn le linee"costruite con un angolo di 45 gradi ". Dovrebbe essere una coincidenza, IMHO, ma non è così!


E dove ha trovato i gradi?
 
Vinin:

Dove avete trovato le lauree?

Proprio qui: https://www.metatrader5.com/ru/terminal/help/objects/gann/gann_line

"La linea di Gann

La linea di Gann è una linea disegnata con un angolo di 45 gradi. Questa linea è anche chiamata "one-to-one" (1x1), che significa un cambiamento di prezzo per unità di tempo".

E qui: https://www.metatrader5.com/ru/terminal/help/objects/gann/gann_grid

"La griglia di Gann

Gann Grid rappresenta tendenze, costruite con un angolo di 45 gradi (linee di Gann)".

 

Buon pomeriggio!

Ecco la domanda. Ho leggermente modificato la funzione di I.Kim e ora questa funzione restituisce il numero della barra in cui è stato impostato l'ultimo pending, bystop o sellstop.

//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru/                  |
//+----------------------------------------------------------------------------+
//|  Версия   : 19.02.2008                                                     |
//|  Описание : Возвращает номер бара установки последнего ордера или -1.      |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   ("" или NULL - текущий символ)          |
//|    tf - таймфрейм                  (    0       - текущий таймфрейм)       |
//|    op - операция                   (   -1       - любая позиция)           |
//|    mn - MagicNumber                (   -1       - любой магик)             |
//+----------------------------------------------------------------------------+
int NumberOfBarOpenLastOPDER(string sy="0", int tf=0, int op=-1, int mn=-1) {
  datetime t;
  int      i, k=OrdersTotal();

  if (sy=="" || sy=="0") sy=Symbol();
  for (i=0; i<k; i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
      if (OrderSymbol()==sy) {
        if (OrderType()==OP_BUYSTOP || OrderType()==OP_SELLSTOP) {
          if (op<0 || OrderType()==op) {
            if (mn<0 || OrderMagicNumber()==mn) {
              if (t<OrderOpenTime()) t=OrderOpenTime();
            }
          }
        }
      }
    }
  }
  return(iBarShift(sy, tf, t, True));
}

Inoltre, ho bisogno di quasi la stessa funzione. Ma dovrebbe restituire il numero della barra in cui non è stato impostato l'ultimo, ma il primo di tutti gli stop sul grafico!

Non posso farlo. Per favore, ditemi. - come fare?

 
Rita:

Buon pomeriggio!

Ecco la domanda. Ho leggermente modificato la funzione di I.Kim e ora questa funzione restituisce il numero della barra in cui è stato impostato l'ultimo pending, bystop o sellstop.

Inoltre, ho bisogno di quasi la stessa funzione. Ma dovrebbe restituire il numero della barra in cui non è stato impostato l'ultimo, ma il primo di tutti gli stop sul grafico!

Non posso farlo. Per favore, ditemi. - come fare?

Impostare il valore iniziale di t più alto e cambiare il segno nella condizione
 if (t<OrderOpenTime())

на противоположный.
 

Spsb. Ho cambiato il cartello. Ma la funzione non funziona ancora. L'ho messo nel commento. Continua a restituire -1.

Inoltre, non capisco bene. Dove e come impostare un valore iniziale di t più grande?

 
Rita:

Spsb. Ho cambiato il cartello. Ma la funzione non funziona ancora. L'ho messo nel commento. Continua a restituire -1.

Inoltre, non capisco bene. Dove e come impostare un valore iniziale di t più grande?

datetime t;
t = TimeCurrent();

Si potrebbe semplicemente impostare l'ora corrente.
 
Rita:

Buon pomeriggio!

Ecco la domanda. Ho leggermente modificato la funzione di I.Kim e ora questa funzione restituisce il numero della barra in cui è stato impostato l'ultimo pending, bystop o sellstop.

Inoltre, ho bisogno di quasi la stessa funzione. Ma dovrebbe restituire il numero della barra in cui non l'ultimo, ma il primo di tutti gli stop è stato impostato sul grafico!

Non posso farlo. Per favore, ditemi. - come fare?


Qualcosa del genere

int NumberOfBarOpenFirstOPDER(string sy="0", int tf=0, int op=-1, int mn=-1) {
   datetime t=TimeCurrent();
   int      i, k=OrdersTotal();

   if (sy=="" || sy=="0") sy=Symbol();
   for (i=0; i<k; i++) {
      if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
         if (OrderSymbol()==sy) {
            if (op<0 || OrderType()==op) {
               if (mn<0 || OrderMagicNumber()==mn) {
                  if (t>OrderOpenTime()) t=OrderOpenTime();
               }
            }
         }
      }
   }
   return(iBarShift(sy, tf, t, True));
}
 
Grazie a tutti. Ha funzionato! La funzione funziona!
Motivazione: