Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 1381

 
Alexey Viktorov:

Daran ist nichts Übernatürliches. Das übliche OBJ_BITMAP_LABEL und darin das, was Sie als Ressource wollen. Kanvas funktioniert auch in OBJ_BITMAP_LABEL.

Aber Ihre Version ist für einen unerfahrenen Entwickler viel einfacher.

Ich verstehe, was Sie meinen, danke.
 
Alexey Viktorov:

Bitte lernen Sie, wie man Code in eine Nachricht einfügt.

Und zur Frage: Lesen Sie die Dokumentation zu CopyTicksRange

#property copyright "Copyright 2021, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"

MqlTick Tick_Mql[];

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---

//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {

//---

ulong from_msc = TimeCurrent() - 10000;
ulong to_msc = TimeCurrent();
int Ticks = CopyTicksRange(_Symbol,Tick_Mql,COPY_TICKS_ALL,from_msc,to_msc);
  }
//+------------------------------------------------------------------+
Funktioniert nicht. Jedes Mal, wenn OnTick aufgerufen wird, ist das Ergebnis der Variable Ticks 0.
 
Boris:
Das funktioniert nicht. Jedes Mal, wenn OnTick aufgerufen wird, ist das Ergebnis der Variablen Ticks 0.

Sind Sie sicher, dass Sie bei der Eingabe frühere Ticks benötigen? 10 Sekunden sind nicht so lang, Sie können warten und die tatsächlichen Ticks und deren Anzahl zählen.

Im Allgemeinen braucht man 2 Variablen für die erste Sekunde und muss sich merken, wie viele Ticks es in 9 Sekunden gab, und diese summieren. Dann zählt man die Ticks für die nächste Sekunde, subtrahiert die erste und addiert die letzte. Die Ergebnisse sollten entweder in einem Array oder in einer Variablen gespeichert werden.

 
Valeriy Yastremskiy:

Sind Sie sicher, dass Sie bei der Eingabe frühere Ticks benötigen? 10 Sekunden sind nicht so lang, Sie können warten und die tatsächlichen Ticks und deren Anzahl zählen.

Im Allgemeinen braucht man 2 Variablen für die erste Sekunde und muss sich merken, wie viele Ticks es in 9 Sekunden gab und diese addieren, dann die Ticks für die nächste Sekunde zählen, die erste subtrahieren und die letzte addieren. Diese Ergebnisse werden entweder in einem Array oder in einer Variablen gespeichert.

Dies kann also nicht über die Funktionen CopyTicks und CopyTicksRange erfolgen?

Ich danke Ihnen.

 
Boris:
Funktioniert nicht. Jedes Mal, wenn OnTick aufgerufen wird, ist das Ergebnis der Variable Ticks gleich 0.

Lesen Sie die Dokumentation!!!

Oder wollen Sie die gesamte Dokumentation Stück für Stück hierher kopieren?

von_msc

[in] Datum, ab dem Zecken angefordert werden. Angegeben in Millisekunden ab dem 01.01.1970. Wird der Parameter from_msc nicht angegeben, werden die Ticks vom Beginn des Verlaufs an zurückgegeben. Ticks mit Zeit >= from_msc werden zurückgegeben.

bis_msc

[in] Datum, an dem die Häkchen angefordert werden. Angegeben in Millisekunden ab dem 01.01.1970. Ticks mit Zeit <= to_msc werden zurückgegeben. Wenn der Parameterto_msc nicht angegeben wird, werden alle Ticks bis zum Ende der Historie angegeben .

 
Valeriy Yastremskiy:

Sind Sie sicher, dass Sie bei der Eingabe frühere Ticks benötigen? 10 Sekunden sind nicht so lang, Sie können warten und die tatsächlichen Ticks und deren Anzahl zählen.

Im Allgemeinen braucht man 2 Variablen für die erste Sekunde und muss sich merken, wie viele Ticks es in 9 Sekunden gab, und diese summieren. Dann zählt man die Ticks für die nächste Sekunde, subtrahiert die erste und addiert die letzte. Speichern Sie die Ergebnisse entweder in einem Array oder in einer Variablen.

Warum ein solcher Ratschlag?

 
Boris:

Es kann also nicht über die Funktionen CopyTicks und CopyTicksRange gemacht werden?

Ich danke Ihnen.

Ja, das können Sie. Lesen Sie die Dokumentation und fragen Sie nach, was Sie in der Dokumentation nicht verstanden haben. Auf diese Weise kommen Sie der Wahrheit schneller auf die Spur).

 
Alexey Viktorov:

Warum ein solcher Ratschlag?

Ich mache es selbst. Warum sollte man sich auf Strukturen einlassen, wenn man kurze Aktionen selbst beheben kann.

 
Valeriy Yastremskiy:

Ich mache es selbst. Warum sollte man sich auf Strukturen einlassen, wenn man kurze Aktionen selbst beheben kann.

Und ich kratze mein linkes Ohr mit meinem rechten kleinen Finger... Ich kann es dir beibringen... Brauchst du es? Bringen Sie anderen nicht bei, was Sie tun durch.....................

 
Valeriy Yastremskiy:

Sie können. Lesen Sie die Dokumentation und fragen Sie nach, was Sie in der Dokumentation nicht verstehen. Das ist der schnellere Weg zur Wahrheit).

Also... Lesen Sie die Dokumentation (noch einmal).

#property copyright "Copyright 2021, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"

MqlTick Tick_Mql[];
ulong ten_msc =(ulong)TimeCurrent()-10000; // 1 секунда = 1000 милисекунд
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---

//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {

//---

ulong from_msc = (ulong)TimeCurrent() - 10000;
ulong to_msc = (ulong)TimeCurrent();
int Ticks = CopyTicksRange(_Symbol,Tick_Mql,COPY_TICKS_ALL,from_msc,to_msc); //(с текущего времени - 10 сек назад)
// либо CopyTicks(_Sybol,Tick_Mql,COPY_TICKS_ALL,from_msc,0); //(все тики от 10 сек назад до настоящего времени)
  }

Frage. Was ist los? Es zählt weder mit CopyTicksRange noch mit CopyTicks