Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 175

 
Reshetov:

Sto facendo qualcosa di sbagliato? Provare la linea
Alert("Time=",Time[0]);
da zero a s non funziona.
 
forexman77:
Forse sto facendo qualcosa di sbagliato? Provare a sostituire la linea zero con s non funziona.
Scrivete esattamente quello che volete ottenere (l'essenza dell'algoritmo). Inoltre, è un indicatore, uno script o un Expert Advisor?
 
barabashkakvn:
Scrivete esattamente quello che volete ottenere (l'essenza dell'algoritmo). Inoltre - è un indicatore, uno script o un Expert Advisor?

Il tempo di formazione della barra trovata dalla linea sottostante (il minimo trovato):

int s=ArrayMaximum(High,i,k);
No, non è ancora un indicatore, è uno script per i test. Lo userò come Expert Advisor in futuro. Lo userò come Expert Advisor in futuro.
 
forexman77:

Il tempo di formazione della barra trovato dalla linea sottostante (trovato minimo):

No, non è ancora un indicatore, è uno script, da testare. Per imparare. Lo userò per un EA in futuro.

Ridotto il numero di elementi copiati - per una più facile visualizzazione sul grafico e comprensione:

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   double High[];
   datetime Time[];
   ArraySetAsSeries(High,true);  // индексация элементов массива будет производиться как в таймсериях
   ArraySetAsSeries(Time,true);  // индексация элементов массива будет производиться как в таймсериях
   int i=0;
   int k=10;
//--- копируем цены High баров от "i" в количестве "k"
   CopyHigh(_Symbol,_Period,i,k,High); // теперь в массиве High "k" элементов
   int s=ArrayMaximum(High);           // индекс бара с максимальным значением
   double Maxi=High[ArrayMaximum(High)];  // найдено значение High максимального бара
//--- копируем время Time баров от "i" в количестве "k"
   CopyTime(_Symbol,_Period,i,k,Time);   // теперь в массиве Time "k" элементов
//--- на данный момент в массивах High и Time "k" элементов и они соответствуют друг другу
   Alert("s=",s);
   Alert("Time=",Time[s]);
   Alert("Maxi=",Maxi);
  }
//+------------------------------------------------------------------+
 
barabashkakvn:

Ridotto il numero di elementi copiati - per una più facile visualizzazione sul grafico e comprensione:

Grande! Conta. Supponeva di impostare l'indicizzazione degli elementi, ma non sapeva come farlo.
 
La domanda è come cambiare il colore degli ordini sell-limit sul grafico. sono verdi come gli ordini reali.
 
trora:
La domanda è come cambiare il colore delle Sell Limit Bids sul grafico. sono verdi come le offerte reali. rendile arancioni o qualcosa del genere...
Non possiamo farlo attraverso lo schema dei colori. Ma c'è una connessione tra il colore dei volumi e il colore di tutti gli ordini e gli ordini: se cambiamo il colore dei volumi, tutti gli ordini e gli ordini saranno dello stesso colore.
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы графиков / Свойства графиков
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы графиков / Свойства графиков
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы графиков / Свойства графиков - Документация по MQL5
 

Lo script ha bisogno di iniziare a contare un array da una certa data con un certo numero di barre per cercare entro quel numero di barre. Andrebbe bene, ma la ricerca viene eseguita dal tempo specificato da destra a sinistra, mentre la ricerca dovrebbe essere eseguita dal tempo specificato e dopo di esso. La variante con data di inizio e data di fine non è adatta, perché non c'è la possibilità di impostare il numero di barre.

 
forexman77:

Lo script ha bisogno di iniziare a contare un array da una certa data con un certo numero di barre per cercare entro quel numero di barre. Andrebbe bene, ma la ricerca viene eseguita dal tempo specificato da destra a sinistra, mentre la ricerca dovrebbe essere eseguita dal tempo specificato e dopo di esso. La variante con data di inizio e data di fine non è adatta, perché non c'è la possibilità di impostare il numero di barre.

Disegna una linea temporale scritta a mano e numera le barre. Oppure usate uno screenshot per delineare la situazione (preferibilmente su uno sfondo bianco).
 
barabashkakvn:
Disegna una linea temporale scritta a mano e numera le barre. O su uno screenshot delineare la situazione (preferibilmente su uno sfondo bianco).

Registrare il tempo di formazione del massimo non è un problema. Non è chiaro come dire al programma di cercare il minimo nelle 8 barre successive. Cioè, le barre prima del massimo non vengono contate, la ricerca viene fatta nelle barre dopo il massimo. Il conteggio per tempo da e verso non è adatto perché è impossibile specificare il numero di barre. L'ultima barra da cercare nel grafico è zero, considereremo che non ci sono barre dopo l'ultima freccia.



Motivazione: