Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 843

 
Sergey Likho:

Grazie.

Potete dirmi perché OBJ_EDIT non può essere visualizzato sul grafico reale?

Probabilmente, il binding degli oggetti è impostato in modo errato, ed essi sono andati oltre il bordo della finestra.

È meglio specificare il binding non 0,1,2 come è in mt4, maENUM_BASE_CORNER

Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Угол привязки
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Угол привязки
  • www.mql5.com
Существует ряд графических объектов, для которых можно задавать угол графика, относительно которого указываются координаты в пикселях. Это следующие типы объектов (в скобках указаны идентификаторы типа объекта): – объекты имеет ширину и высоту. Если указано "только для чтения", то это означает, что значения ширины и высоты вычисляются только...
 

Per favore aiutatemi a risolvere il problema, il codice funziona su ogni tick, quindi ho bisogno della soluzione più semplice.

Il problema: c'è un mucchio di posizioni chiuse nella storia, e da questo mucchio abbiamo bisogno di estrarre la dimensione del profitto, che era al momento dell'ultima chiusura, le posizioni possono essere da 1 a 100 (griglia).

Di regola, non vengono chiusi allo stesso tempo, ma la differenza di tempo tra l'apertura e la chiusura non supera i 2 minuti (mt4).

Se si espande un ciclo o un array, tutto funziona, ma non si può espandere nulla, bisogna cercare da meno a più

//+------------------------------------------------------------------+
#property strict

//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
  datetime tm=0;
  datetime pos[5]={D'2018.04.04 10:07:55',
                   D'2018.04.04 10:08:19',
                   D'2018.04.04 12:08:43',
                   D'2018.04.04 12:08:43',
                   D'2018.04.04 12:08:59'
                  };
  
   for(int i=0; i<5; i++) {
    datetime date=pos[i];
    // ... ld = date;
    // Здесь много кода, и цикл/массив разворачивать нельзя
    // ...
    // 120 секунд разницы между закрытием первой и последней в сетке
    if((tm <= date && date <= tm+120) || tm==0) {
      tm = date;
      Print(i,"=",date); // Ожидаемый результат: 2018.04.04 12:08:59, 2018.04.04 12:08:43, 2018.04.04 12:08:43
    }

   }
    Print("");
    Sleep(10000);
  }
//+------------------------------------------------------------------+
 
Vitaly Muzichenko:

Per favore aiutatemi a risolvere il problema, il codice viene eseguito su ogni tick, quindi ho bisogno della soluzione più semplice

Perché la data è come testo? Questo è molto improduttivo.

 
Vitaly Muzichenko:

Per favore aiutatemi a risolvere il problema, il codice viene eseguito su ogni tick, quindi è necessaria la soluzione più semplice

  datetime pos[5]={D'2018.04.04 10:07:55',
                   D'2018.04.04 10:08:19',
                   D'2018.04.04 12:08:43',
                   D'2018.04.04 12:08:43',
                   D'2018.04.04 12:08:59'
                  };
 
Vladimir Karputov:

Perché la data è sotto forma di testo? È molto improduttivo.

Questo è solo un esempio, nel codice tutto è normalmente assemblato in un array

P.S. Aggiornato il post precedente

P.S. La questione è risolta, espanderò l'array e rifarò il lavoro del codice principale

 

Cari utenti del forum, potreste dirmi come disegnare un segmento verticale tra le barre senza usare un'etichetta rettangolare(OBJ_RECTANGLE_LABEL)? Purtroppo non ho trovato una risposta a questa domanda. Se c'è qualcosa che non ho letto nella documentazione o nel forum, vi prego di indicarmi dove. Grazie.

 
MrVIS:

Cari utenti del forum, potreste dirmi come disegnare un segmento verticale tra le barre senza usare un'etichetta rettangolare(OBJ_RECTANGLE_LABEL)? Purtroppo non ho trovato una risposta a questa domanda. Se c'è qualcosa che non ho letto nella documentazione o nel forum, vi prego di indicarmi dove. Grazie.

Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов / OBJ_TREND
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов / OBJ_TREND
  • www.mql5.com
//| Создает линию тренда по заданным координатам                     |               time1=0,                            price1=0,                         time2=0,                            price2=0,                        width=1,            //| Перемещает точку привязки линии тренда                           | //
 
FelixFX:
Capisco che si può imparare qualsiasi cosa con gli articoli e i gesti così come le espressioni facciali, ma con un libro di testo, per esempio, si spende un mese per imparare (senza pratica), e in altri modi si spendono sei mesi + pratica. Non tutti possono passare tutto il loro tempo libero a imparare un linguaggio di programmazione.

Non proprio? E al contrario. Per esempio, giudico dal passato: ho avuto un insegnante di matematica, spiegava tutto in modo tale in classe che non ho imparato un solo teorema, ma i test ministeriali erano scritti in 15 minuti e per 5; in terza media sono stato trasferito ad un altro insegnante e tutto - tutta la classe si è subito addormentata. È lo stesso con i libri di testo, se io, o qualcuno come me, li scrivo, ci vorrà molto tempo per studiare. E vi è stato detto in base al vostro desiderio che tutto andrà avanti e quanto velocemente sarete in grado di assorbire il materiale. Allora imparerete vagando tra gli autori e avrete un po' di esperienza e sarete in grado di vedere chi e cosa sta trattenendo. Se ti insegnano a maneggiare una forchetta e non ti mostrano mai un cucchiaio, mangerai zuppa per molto tempo. E preferiresti morire di fame piuttosto che mangiarlo. Quindi vai con le mine e niente genieri.

 
MrVIS:

Cari utenti del forum, potreste dirmi come disegnare un segmento verticale tra le barre senza usare un'etichetta rettangolare(OBJ_RECTANGLE_LABEL)? Purtroppo non ho trovato una risposta a questa domanda. Se c'è qualcosa che non ho letto nella documentazione o nel forum, vi prego di indicarmi dove. Grazie.

È abbastanza semplice.

Opzione 1: si traccia una linea orizzontale e si ruota il monitor di 90° in senso orario o antiorario.

Opzione 2. Ruota la posizione del MT in modo che il grafico sia tracciato dal basso verso l'alto.

Opzione 3.

L'immaginazione è rotta.

 
Alexey Viktorov:

Semplicissimo.

Opzione 1: disegnare una linea orizzontale e ruotare il monitor di 90° in senso orario o antiorario.

Opzione 2. Ruota la posizione del MT in modo che il grafico sia tracciato dal basso verso l'alto.

Opzione 3. ...

L'immaginazione è rotta.

Ecco un suggerimento: la tela
Motivazione: