Fehler, Irrtümer, Fragen - Seite 687

 
hrenfx:

00:02 - {NAN, 1,2310, 1,2290, 1,2305} (OHLC);

Wo liegt der Fehler?

Der Fehler dabei ist, dass man ständig eine Funktion vorschreiben muss, um die fehlenden Balkenparameter zu ermitteln. Die Notwendigkeit des von Ihnen angeführten Beispiels ist ein Sonderfall.

hrenfx:

00:00 - {NAN, NAN, NAN, NAN} (OHLC);

Wo liegt der Fehler?

Ich verstehe diese Konstruktion nicht, da Expert Advisors innerhalb eines Ticks arbeiten und die meisten Expert Advisors sich nicht um den Zeitpunkt des Eintreffens eines neuen Ticks kümmern.

Vielleicht wird dieses Design verwendet, um die Synchronisierung mit mehreren Währungen zu vereinfachen, aber das Fehlen dieses Designs kann erfolgreich durch eine Funktion zur Suche nach dem letzten aufgetretenen Balken ersetzt werden.

Das Vorhandensein dieser Struktur in der Geschichte kann die Analyse in den meisten Fällen erschweren, da wir ständig das Fehlen der fehlenden Parameter eines Balkens feststellen müssen.

p.s. Die Arbeit mit den von Ihnen zitierten Konstruktionen erschwert die Verarbeitung erheblich. Es ist viel einfacher, den letzten Takt zu finden, der stattgefunden hat.

 

abolk:

1. Fangen Sie ständig an, die Bar zu "Angebotspreisen" zu bauen?

2. Wie hoch sind diese Preise?

3. Woher kennen wir sie?

Sie haben die Unrichtigkeit eines solchen Schemas noch nicht bewiesen. Sie haben lediglich darauf hingewiesen, dass es "Optionen" gibt.

2, 3 Die Geldkurse werden vom Makler übermittelt. Sie werden Bid und Ask genannt und sind die aktuellen Kurse, bis sie durch andere ersetzt werden. Die Geschäfte sind überhaupt kein Kriterium, im Forex werden nur die Preisänderungen übertragen, und die Geschäfte zu den festgelegten Preisen können so viele sein, wie Sie wollen - bis die Volumina der nächstgelegenen Limits auf dem Markt erschöpft sind, deren Preise dem aktuellen Angebot des Brokers entsprechen. Aktuelles Angebot und Nachfrage. Haben Sie es? Wenn überhaupt, fragen Sie die Dokumentation oder Yandex und Google.

 
abolk:
Der Fehler dabei ist, dass man ständig eine Funktion vorschreiben muss, um die fehlenden Parameter des Balkens zu bestimmen. Die Notwendigkeit des von Ihnen angeführten Beispiels ist ein Sonderfall.

Das ist nichts im Vergleich zur Fehlsynchronisation, aber um auch diesen belastenden Mangel zu beseitigen, wurde ein Alternativangebot ausgelotet:

Hrenfx:

Wenn in diesem Fall zum Zeitpunkt der Minute (Eröffnung der Börsensitzung) kein Angebotspreis vorliegt, wird kein Balken gebildet, ...

Für dasselbe Beispiel:

  1. Eröffnung der Handelssitzung 00:00:00.
  2. Der erste Kurs erscheint um 00:02:34 - 1,2301. Dann ändert sich der Kurs innerhalb einer Minute in den Bereich von 1,2290 - 1,2310. Und am Ende von 00:02 Minuten steht sie bei 1,2305.

Sie würde folgendermaßen aussehen:

  • Die Balken um 00:00 und 00:01 fehlen.
  • 00:02 - {1,2301, 1,2310, 1,2290, 1,2305} (OHLC);

Welche anderen Mängel gibt es?

P.S. Die Variante mit NAN ist die logisch korrekteste. Die Kompromissvariante erlaubt es, den bedingten Wenn-Operator auf jedem Balken loszuwerden, aber sie erfordert die Synchronisation der Multi-Fee-Balken zum Zeitpunkt der Eröffnung/Schließung der Handelssitzung.

 
MetaDriver:

Haben Sie es? Wenn überhaupt, fragen Sie die Dokumentation oder Yandex und Google.

Das verstehe ich nicht. Warum der ständige arrogante Ton?

Eine Art unbegründete Manie der Allwissenheit, Allwissenheit und Allwissenheit.

Ich werde mir eine Auszeit gönnen.

 
abolk:
Ich kann nichts über das Vorhandensein bzw. Nichtvorhandensein von "gescheiterten" Balken sagen - für mich ist das nicht entscheidend. Unbekannt sind auch die Probleme bei der Umsetzung. Vielleicht sind sie von Bedeutung und die derzeitige Lösung ist vorerst ein Kompromiss. Wenn es so wichtig ist und es nicht im Terminal vorhanden ist, kann das "Zeichnen" von "ausgefallenen" Balken manuell durchgeführt werden.
Andriy, ich möchte Sie um einen Gefallen bitten: Bitte mischen Sie sich nicht in Themen ein, die für Sie nicht von Belang sind. Eine solche Einmischung ist wie der Versuch, sich in ein unwichtiges Thema "einzumischen" - sie ist ungefährlich und bietet die Möglichkeit, den Anwesenden einen Status "abzunehmen". Wenn Sie eine gute Idee haben. Sie haben sich mit dem aktuellen Bereich nicht wiederholt auseinandergesetzt, daher können Sie in diesem Fall nichts Vernünftiges sagen. Intelligent - bedeutet nützlich für diejenigen, für die es entscheidend ist. Ich gebe keine Ratschläge und Antworten zum Thema "Graphenerstellung" im Terminal. Sie denken, dass ich mir keine Gedanken darüber mache? Ja, das tue ich. Ich verstehe nur, dass ich nicht auf dem Laufenden bin, weil ich es in meiner täglichen Praxis nicht benutze. Nichts für ungut, Andrew, nur eine Bitte. Sie haben das Recht, Ihre Meinung zu veröffentlichen (das haben Sie bereits getan), aber es ist einfach dumm von Ihnen, diesen Streit zu beginnen und fortzusetzen. Sie sind einfach nicht auf dem Laufenden".
 
abolk:

Das verstehe ich nicht. Warum der ständige arrogante Ton?

Eine Art unbegründete Manie der Allwissenheit, Allwissenheit und Allwissenheit.

Ich denke, ich werde mich in den Garten zurückziehen.

Es ist nicht arrogant, es ist in diesem Fall spöttisch, offen spöttisch-spöttisch, nicht ohne das.

Seltsamerweise habe ich keine Gewissensbisse, denn Sie sind verzweifelt dumm und kurz davor, so zu tun, als wären Sie es.

 
MetaDriver:
Andrew, ich habe eine Bitte an Sie - mischen Sie sich bitte nicht in Themen ein, die für Sie nicht kritisch sind. Diese Art der Einmischung sieht aus wie ein Versuch, sich über ein unwichtiges Thema "schlau zu machen" - sicher und ermöglicht es dem gelegentlichen Status "Punkt", die Anwesenden zu verarschen. Wenn Sie eine gute Idee haben. Sie haben sich mit dem aktuellen Thema nicht wiederholt auseinandergesetzt, daher können Sie in diesem Fall nichts Vernünftiges sagen. Intelligent - bedeutet nützlich für diejenigen, für die es entscheidend ist. Ich gebe keine Ratschläge und Antworten zum Thema "Graphenerstellung" im Terminal. Ich verstehe nur, dass ich nicht auf dem Laufenden bin, weil ich es in meiner täglichen Praxis nicht verwende. Nichts für ungut, Andrew, aber eine Bitte: Sie haben das Recht, Ihre Meinung zu veröffentlichen (das haben Sie bereits getan), aber es ist einfach dumm von Ihnen, diesen Streit zu beginnen und fortzusetzen. Sie sind einfach nicht auf dem Laufenden".

Nun, die Entscheidung, ob ich meine Meinung äußere oder nicht, liegt bei mir. Ich möchte auch nicht um Ihre Erlaubnis bitten, mich zu diesem oder jenem Thema zu äußern, unabhängig davon, ob ich "on" oder "off" bin. Wenn Sie Moderatorenrechte haben, können Sie meine Beiträge löschen und Ihre eigenen behalten. Aber da Sie keine Moderatorenrechte haben, sondern nur einen Zeigefinger, dann ... ...können Sie sie für Ihr persönliches "richtiges Verständnis des Themas" nutzen.

 
Geben Sie es auf - an dieser Front ist in nächster Zeit keine Änderung zu erwarten.
 

Warum verpatzt jeder EA von mir, indem er die Aufträge löscht?Eine Bestellung wird aufgegeben und sofort gelöscht.

Hier ein Beispiel: 24.01.2011 М1, Uhrzeit der Auftragserteilung 2:00. DC metaquotes-demo.

MqlTradeResult resultU,resultD;MqlTradeRequest request;MqlTick latest_price;MqlDateTime ctime;
int OnInit()
{ request.symbol = _Symbol; // Symbol
request.volume = 0.1; // Anzahl der zu handelnden Lots
request.magic = 52; // Magische Zahl
request.type_filling = ORDER_FILLING_AON; // Art der Auftragsausführung - alles oder nichts
request.deviation=40; // Abweichung vom aktuellen Kurs
request.comment="TL";
request.type_time=ORDER_TIME_GTC;
request.type_filling=ORDER_FILLING_RETURN;
zurück(0);
}
void OnTick()
{
if(OrderSelect(resultD.order) || OrderSelect(resultU.order) )
{ OrderSelect(resultU.order);
if(OrderGetDouble(ORDER_PRICE_OPEN)!=1.36207)
{ Print("bbb ",OrderGetDouble(ORDER_PRICE_OPEN);
request.action = TRADE_ACTION_REMOVE; // sofortige Ausführung
request.order=resultU.order;
OrderSend(request,resultU);
request.order=resultD.order;
OrderSend(request,resultD);

Rückkehr;
}
OrderSelect(resultD.order);
if(OrderGetDouble(ORDER_PRICE_OPEN)!=1.35855)
{Drucken("sss ",OrderGetDouble(ORDER_PRICE_OPEN));
request.action = TRADE_ACTION_REMOVE; // sofortige Ausführung
request.order=resultU.order;
OrderSend(request,resultU);
request.order=resultD.order;
OrderSend(request,resultD);
Rückkehr;
}
//nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
//nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
}else//neue Bestellung
{ TimeCurrent(ctime);
if(ctime.hour==2){
request.action = TRADE_ACTION_PENDING;
request.type=ORDER_TYPE_BUY_STOP;
request.price=1.36207;
request.sl=1.36031;
request.tp=0;
OrderSend(request,resultU);

request.type=ORDER_TYPE_SELL_STOP;
request.price=1.35855;
request.sl=1.36031;
request.tp=1.34484;
OrderSend(request,resultD);
}
}
}

Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Типы торговых операций
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Типы торговых операций
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Типы торговых операций - Документация по MQL5
 
Ich kämpfe seit einem halben Jahr mit diesem Fehler in verschiedenen EAs((((((