Fehler, Irrtümer, Fragen - Seite 2096

 
elibrarius:

Hmm. Nun, finden Sie es ))))

int OnInit()
  {
   return(INIT_SUCCEEDED);
}

void OnTick()
  {
  int s[];
  CopySpread(_Symbol,_Period,0,1,s);
  Print(s[0]);
  }

Wer hat Ihnen denn gesagt, dass das Spread-Feld des aktuellen Balkens gleich dem aktuellen Spread oder beispielsweise dem Minimum ist?

Verwenden SieSymbolInfoTick, Balken sind ein historisches Rudiment.

 
fxsaber:

Wer hat Ihnen also gesagt, dass das Spread-Feld des aktuellen Balkens dem aktuellen Spread oder z.B. dem Minimum entspricht?

Verwenden Sie SymbolInfoTick, Balken sind ein historisches Rudiment.

CopySpread - erinnert sich an das Minimum - sagt die Praxis, die sich in den meisten Fällen als das Kriterium der Wahrheit erweist. Daraus ergibt sich, dass bar 2017.10.23 01:00 CopySprea=-3, da es nicht weniger bei der Überprüfung gegen Ticks.

Ich würde sie als Balken bezeichnen - ein sehr notwendiges Instrument zur Analyse der Vergangenheit.

SymbolInfoTick ist richtig, aber ist es wirklich der Grund, CopySpread falsch zu lassen? Ich verstehe, dass 1 pt. - ist eine Kleinigkeit, denke ich, und setze sie elementar s=s-1 fest. Das ist alles )

 
elibrarius:

SymbolInfoTick - es wird korrekt angezeigt, aber ist es wirklich notwendig, CopySpread deswegen falsch zu lassen? Ich verstehe, dass 1 pt. - ist eine Kleinigkeit, ich denke, dass es elementar ist, sie zu korrigieren s=s-1. Das ist alles )

Bevor Sie den Tester starten, sehen Sie sich den Verlauf des Balkens an, um festzustellen, ob er einen negativen Spread aufweist. Es ist ein krummes Feld um nichts.

Wenn die Entwickler heute mit MqlRates aufwarten würden, gäbe es normale Felder anstelle dieses Mistes. Aber sie haben keine Zeit, diese Struktur zu überdenken, und haben schon allerlei Unfug daraus gemacht. Wir haben also ein solches Grundgerüst der Geschichte. Und jetzt werden sie diese Last die ganze Zeit tragen.

 
elibrarius:

CopySpread - erinnert sich an das Minimum - sagt die Praxis, die sich in den meisten Fällen als das Kriterium der Wahrheit erweist. Daraus geht hervor, dass der Balken 2017.10.23 01:00 CopySprea=-3 ist, da es bei der Überprüfung durch Ticks nicht weniger gab.

Ich würde sie als Balken bezeichnen - ein sehr notwendiges Instrument zur Analyse der Vergangenheit.

SymbolInfoTick ist richtig, aber ist es wirklich der Grund, CopySpread falsch zu lassen? Ich verstehe, dass 1 pt. - ist eine Kleinigkeit, denke ich, und setze sie elementar s=s-1 fest. Das ist alles )

Wenn Sie aufmerksam sind, können Sie die Minuten beobachten und sehen, dass der letzte Wert des Spreads gespeichert wird, wenn ein neuer Balken erscheint.

 
Alexey Viktorov:

Wenn Sie genau aufpassen, können Sie anhand der Protokolle sehen, dass der letzte Spread-Wert gespeichert wird, wenn ein neuer Balken erscheint.

Bei näherer Betrachtung stimme ich zu, aber nur teilweise.

Code des Experten:

void OnTick() { 
  int s[];
  CopySpread(_Symbol,_Period,0,1,s);
  Print(s[0]);
  MqlTick last_tick;
  if(SymbolInfoTick(Symbol(),last_tick)) { Print(last_tick.time,": Bid = ",last_tick.bid, " Ask = ",last_tick.ask,"  SP = ",DoubleToString(last_tick.ask-last_tick.bid,5)); }
}

Hier ist ein einminütiger Ausdruck - zunächst der Aufstrich von CopySpread. Dann berechnet aus Ask-Bid

2018.01.01 11:55:00.478 2017.10.23 01:00:00 14
2018.01.01 11:55:00.478 2017.10.23 01:00:00 2017.10.23 01:00:00: Bid = 1.17715 Ask = 1.17729 SP = 0.00014
2018.01.01 11:55:00.494 2017.10.23 01:00:00 9
2018.01.01 11:55:00.494 2017.10.23 01:00:00 2017.10.23 01:00:00: Bid = 1.17715 Ask = 1.17724 SP = 0.00009
2018.01.01 11:55:00.510 2017.10.23 01:00:00 9
2018.01.01 11:55:00.510 2017.10.23 01:00:00 2017.10.23 01:00:00: Bid = 1,17716 Ask = 1,17726 SP = 0,00010
...........
2018.01.01 11:55:01.023 2017.10.23 01:00:30 1
2018.01.01 11:55:01.023 2017.10.23 01:00:30 2017.10.23 01:00:30: Bid = 1,17704 Ask = 1,17705 SP = 0,00001
2018.01.01 11:55:01.876 2017.10.23 01:00:30 -1
2018.01.01 11:55:01.876 2017.10.23 01:00:30 2017.10.23 01:00:30: Bid = 1,17707 Ask = 1,17705 SP = -0,00002
2018.01.01 11:55:01.893 2017.10.23 01:00:31 -3
2018.01.01 11:55:01.893 2017.10.23 01:00:31 2017.10.23 01:00:31: Bid = 1.17707 Ask = 1.17703 SP = -0.00004

2018.01.01 11:55:01.909 2017.10.23 01:00:31 -3
2018.01.01 11:55:01.909 2017.10.23 01:00:31 2017.10.23 01:00:31: Bid = 1.17707 Ask = 1.17704 SP = -0.00003
2018.01.01 11:55:01.925 2017.10.23 01:00:32 -3
...........
2018.01.01 11:55:02.293 2017.10.23 01:00:48 -3
2018.01.01 11:55:02.293 2017.10.23 01:00:48 2017.10.23 01:00:48: Bid = 1,17702 Ask = 1,17707 SP = 0,00005
2018.01.01 11:55:02.309 2017.10.23 01:00:48 -3
2018.01.01 11:55:02.309 2017.10.23 01:00:48 2017.10.23 01:00:48: Bid = 1.17703 Ask = 1.17707 SP = 0.00004
2018.01.01 11:55:02.325 2017.10.23 01:00:49 -3
2018.01.01 11:55:02.325 2017.10.23 01:00:49 2017.10.23 01:00:49: Bid = 1.17707 Ask = 1.17707 SP = 0.00000

D.h. CopySpread-Wert auf dem aktuellen Balken = Minimum.

Aber in der Geschichte der Bar ist der letzte Wert wirklich weg.

<DATUM> <UHRZEIT> <OFFEN> <HOCH> <NIEDRIG><SCHLIESSEN> <TICKVOL> <VOL> <SPREAD>
2017.10.23 01:00:00 1.17715 1.17720 1.17693 1.17707 64 0 0

Meistens (mindestens 10 Mal überprüft), aber auch hier gibt es Pannen.
Hier ist das oben beschriebene Problem am 2017.10.23 00:53

In der Geschichte.

2017.10.23 00:53:00 1.17685 1.17725 1.17685 1.17725 8 0 9

Und zu den Zecken:

2018.01.01 11:54:59.009 2017.10.23 00:53:43 48
2018.01.01 11:54:59.009 2017.10.23 00:53:43 2017.10.23 00:53:43: Bid = 1.17724 Ask = 1.17733 SP = 0.00009
2018.01.01 11:54:59.025 2017.10.23 00:53:43 48
2018.01.01 11:54:59.025 2017.10.23 00:53:43 2017.10.23 00:53:43: Bid = 1.17725 Ask = 1.17736 SP = 0.00011
2018.01.01 11:54:59.041 2017.10.23 00:53:43 48
2018.01.01 11:54:59.041 2017.10.23 00:53:43 2017.10.23 10.23 00:53:43: Bid = 1.17725 Ask = 1.17737 SP = 0.00012 <<<<<<---------- letzter Bar-Tick
2017.10.23 00:53
2018.01.01 11:54:59.057 2017.10.23 00:54:11 9
2018.01.01 11:54:59.057 2017.10.23 00:54:11 2017.10.23 00:54:11: Bid = 1.17728 Ask = 1.17737 SP = 0.00009 <<<<<<---------- erster Tick Bar 2017.10.23 00:54 - hier passt es

Ich habe die Version überprüft, bei der die Spanne ab dem ersten Tick des nächsten Balkens in die Historie eingeht. Nicht bestätigt:

Geschichte
2017.10.23 00:59:00 1.17717 1.17723 1.17709 1.17715 14 0 3

1. Tick des nächsten Balkens
2018.01.01 11:55:00.478 2017.10.23 01:00:00 14
2018.01.01 11:55:00.478 2017.10.23 01:00:00 2017.10.23 01:00:00: Bid = 1.17715 Ask = 1.17729 SP = 0.00014

Geschichte

2017.10.23 01:00:00 1.17715 1.17720 1.17693 1.17707 64 0 0

1. Tick des nächsten Balkens
2018.01.01 11:55:02.342 2017.10.23 01:01:03 1
2018.01.01 11:55:02.342 2017.10.23 01:01:03 2017.10.23 01:01:03: Bid = 1.17707 Ask = 1.17708 SP = 0.00001

Alles in allem - ein gewisses Durcheinander mit Aufstrichen (

 
elibrarius:

...

Alles in allem - einige Verwirrung über die Spreads (


 

MT4 b1090, viele Dutzende von Symbolen in Market Watch, mehrere Charts geöffnet. terminal.exe frisst 0-1% CPU.

MT5 b1730, nur GBPUSD MetaQuotes-Demo in Market Watch, keine Charts. terminal64.exe frisst 2-3% CPU.

Ist das normal?

 
fxsaber:

MT4 b1090, viele Dutzende von Symbolen in Market Watch, mehrere Charts geöffnet. terminal.exe frisst 0-1% CPU.

MT5 b1730, nur GBPUSD MetaQuotes-Demo in Market Watch, keine Charts. terminal64.exe frisst 2-3% CPU.

Ist das normal?

Das Thema ist bereits mehrfach aufgegriffen worden. Der MT5 ist etwas rechenintensiver, weil er mehr Informationen überträgt.

Aber es ist falsch, innerhalb von 1-2 % zu vergleichen.

 
Andrey Khatimlianskii:

Das Thema ist bereits mehrfach aufgegriffen worden. Der MT5 ist etwas rechenintensiver, da er mehr Informationen überträgt.

Aber es ist falsch, innerhalb von 1-2% zu vergleichen.

Mehrere Browser mit Dutzenden von offenen Registerkarten im Lesemodus fressen null. Es ist schon seltsam, wenn ein völlig leeres Terminal so viel Strom verbraucht wie ein Torrent-Client. Und das ändert sich auch nicht, wenn man den Computer vom Internet trennt.

 
fxsaber:

Bei mehreren Browsern mit Dutzenden von im Lesemodus geöffneten Registerkarten ist das Ergebnis gleich null. Es ist schon seltsam, wenn ein völlig leeres Terminal so viel Strom verbraucht wie ein Torrent-Client. Das ändert sich auch nicht, wenn Sie das Gerät vom Computer abtrennen.

Es ist falsch, ihn mit einem Browser zu vergleichen. Soweit ich sehen kann, verbrauchen Hintergrundregisterkarten überhaupt keine Ressourcen.

Und das Terminal empfängt Ticks und baut eine Zeitreihe auf, unabhängig davon, ob das Diagramm aktiv ist oder nicht, so dass es beim Umschalten auf das Diagramm die aktuellen Informationen ohne Verzögerungen anzeigt.

Aber ich verteidige MT nicht wirklich, sondern weise nur darauf hin, dass sich noch niemand die Mühe gemacht hat, einen umfassenden Vergleich mit allen Berechnungen für den Service-Desk anzustellen.