Errori, bug, domande - pagina 2041

 
Kirill Belousov:
Non specifichiamo il numero della sottofinestra, ma la funzione ci dice (questo è un parametro di uscita, non di ingresso) - in quale sottofinestra del grafico con l'ID specificato c'è un grafico di prezzo e ci dice quale prezzo e ora corrispondono alle coordinate X,Y che abbiamo specificato in quel grafico.

Questo è comprensibile, passando il parametro per riferimento. Ma la questione è aperta: perché la funzione non vede in quale numero di sottofinestra è installato l'indicatore e non prende dati da esso?

 
Vitaly Muzichenko:

Questo è comprensibile, passando il parametro per riferimento. Ma la domanda è aperta: perché la funzione non vede in quale numero di sottofinestra è installato l'indicatore e prende i dati da esso?

ALTEZZA DEL GRAFICO IN PIXEL
 
fxsaber:
ALTEZZA DEL GRAFICO IN PIXEL

È tutta una storia di calcoli se hai diversi indicatori in sottofinestre, ma grazie comunque per il tuo tempo.

 
Vitaly Muzichenko:

È tutta una storia di calcoli se ci sono diversi indicatori in sottofinestre, ma grazie comunque per il tuo tempo.

https://www.mql5.com/ru/docs/chart_operations/chartwindowfind

Документация по MQL5: Операции с графиками / ChartWindowFind
Документация по MQL5: Операции с графиками / ChartWindowFind
  • www.mql5.com
1. Функция ищет на указанном графике подокно с указанным "коротким именем" индикатора (короткое имя выводится слева вверху подокна) и в случае удачи возвращает номер подокна. Не следует путать короткое имя индикатора и имя файла, которое указывается при создании индикатора функциями iCustom() и IndicatorCreate(). Если короткое наименование...
 

Sì, queste sono tutte funzioni che conosco.

Il compito è semplice, dobbiamo collegare l'oggetto nella quarta sottofinestra (evidenziato in rosso) al prezzo, in questo caso è -0,02, e la coordinata Y sul grafico è 34


 
Vitaly Muzichenko:

Il compito è semplice, è necessario collegare l'oggetto nella sottofinestra 4 (evidenziato in rosso) al prezzo, in questo caso è -0,02, e la coordinata Y sul grafico è 34

#property indicator_separate_window

#property indicator_buffers 0 
#property indicator_plots 0

#define  CHART_SUBWINDOW_BORDER_SIZE 2 // Размер разделителя подокон

void OnInit()
{
  int X = 0;
  int Y = 0;

  const int SubWindow = ChartWindowFind();
  
  for (int i = 0; i < SubWindow; i++)  
    Y += (int)ChartGetInteger(0, CHART_HEIGHT_IN_PIXELS, i) + CHART_SUBWINDOW_BORDER_SIZE;
  
  int SubWindow2;
  datetime time;
  double Price;
  
  if (ChartXYToTimePrice(0, X, Y, SubWindow2, time, Price))
    Print(SubWindow2);
}

int OnCalculate ( const int rates_total, const int, const int, const double &[] )
{ 
  return(rates_total);
}
 
fxsaber:

Grazie per la variante finita, cercherò di allegarla agli indicatori.

P.S. Ha funzionato, grazie ancora!


Ma la domanda rimane, perché dovrei specificare il numero di sottofinestra nella funzione, se devo ballare con il tamburello?

 
Vitaly Muzichenko:

Perché dovrei specificare il numero di sottofinestra nella funzione se devo giocarci?

Forum sul trading, sistemi di trading automatico e test di strategia

Errori, bug, domande

Kirill Belousov, 2017.10.15 19:50

Non specifichiamo il numero della sottofinestra, la funzione ci dice(questo è un parametro di uscita, non di ingresso) - in quale sottofinestra del grafico con l'ID specificato è il grafico dei prezzi e ci dice quale prezzo e ora corrispondono alle coordinate X,Y che abbiamo specificato su quel grafico.
 
Vitaly Muzichenko:

Grazie per la variante finita, cercherò di allegarla agli indicatori.

P.S. Ha funzionato, grazie ancora!


Ma la domanda rimane, perché dovrei specificare il numero di sottofinestra nella funzione, se voglio fare un casino?

Il ballo può essere abbreviato usando ChartGetInteger() con questo parametro

DISTANZA DALLA FINESTRA DEL GRAFICO

Distanza in pixel lungo l'asse Y verticale tra il bordo superiore della sottofinestra dell'indicatore e il bordo superiore della finestra principale del grafico. Agli eventi del mouse, le coordinate del cursore sono passate nelle coordinate della finestra principale del grafico, mentre le coordinate degli oggetti grafici in una sottofinestra dell'indicatore sono impostate rispetto all'angolo superiore sinistro della sottofinestra.

Il valore è necessario per convertire le coordinate assolute del grafico principale nelle coordinate locali di una sottofinestra per lavorare correttamente con gli oggetti grafici le cui coordinate sono impostate relativamente all'angolo superiore sinistro della cornice della sottofinestra.

int r/o modificatore - numero di sottofinestra

 
Kirill Belousov:

Il ballo può essere abbreviato usando ChartGetInteger() con questo parametro

DISTANZA DALLA FINESTRA DEL GRAFICO

Distanza in pixel lungo l'asse verticale y tra la cornice superiore della sottofinestra dell'indicatore e la cornice superiore della finestra principale del grafico. Agli eventi del mouse, le coordinate del cursore sono passate nelle coordinate della finestra principale del grafico, mentre le coordinate degli oggetti grafici in una sottofinestra dell'indicatore sono impostate rispetto all'angolo superiore sinistro della sottofinestra.

Il valore è necessario per convertire le coordinate assolute del grafico principale nelle coordinate locali di una sottofinestra per lavorare correttamente con gli oggetti grafici le cui coordinate sono impostate relativamente all'angolo superiore sinistro della cornice della sottofinestra.

int r/o modificatore - numero di sottofinestra

Grazie, abbreviato, stesso risultato, ma meno codice!