Wann ist es sinnvoll, einen Teil des Robotercodes in einem Indikator zu behalten? - Seite 34

 
TheXpert:

Entlarvung des Trugschlusses Nr. 1: Es geht auch ohne IndicatorCounted()

Ein Indikator dazu:

Ohne sie, nach dem Prinzip der hrenfx

Dann wenden wir die Indizes auf das Diagramm an und emulieren den Verlust der Verbindung, während der Automat läuft. Ergebnis:




Es ist folgendermaßen. Daher vermeide ich es, Funktionen zu verwenden, die später (bei der Entwicklung eines EA) nicht mehr nützlich sind.

Ich glaube nicht an Elektrizität und mache lieber alles selbst. Und diese Funktion verstehe ich nicht.

 
sergeev:


Und können Sie die Forschungsergebnisse und Überprüfungen dieser Vermutung veröffentlichen?

Ich habe nur ein paar Experimente mit dem Verbindungsabbruch gemacht. Ich habe den Unsinn der Entwickler nicht vollständig analysiert. Es war sowohl lästig als auch langwierig (ich musste es nicht eine oder zwei Minuten lang machen, sondern mindestens ein oder zwei Dutzend). Meine Version von EA bewältigt kurze Verbindungsunterbrechungen ohne Probleme. Die Forschung hat jedoch gezeigt, dass die Kurzzeitigkeit (für M1) nicht Stunden, sondern Minuten (< 10) beträgt.

Mit einfachen Experimenten können Sie dieses Thema umfassend erforschen. Ich kann noch keine 100%ige Aussage treffen. Vielleicht sollten wir zu Beginn nicht einen leeren Indikator aufrufen, sondern den Indikator mit dem Aufruf von IndicatorCounted().

Ich kam mit einem schnellen Weg zu untersuchen: zu laufen mehrere Terminals auf einmal (ich werde weniger als fünf brauchen) und auf jedem Terminal eine andere Variante der Untersuchung. Unterbrechen Sie die Kommunikation für eine Stunde und stellen Sie sie dann wieder her. Holen Sie sich gleich mehrere verschiedene Varianten auf einmal. Daraus können Sie sich das richtige Bild machen.

P.S. Sie brauchen verschiedene Terminals, nicht verschiedene Karten. Sie muss die Variante ausschließen, dass IndicatorCounted() einmal für alle Indikatoren im Terminal berechnet wird.

P.P.S. Genau dieser Mist ist in den Builds > 380 stark verändert worden. Und den Reaktionen nach zu urteilen, wird sie noch oft geändert werden. Es ist also fast sinnlos, eine Studie durchzuführen. Wir müssen die Entwickler direkt fragen, was mit dem Indikator (der den Aufruf von IndicatorCounted() enthält) während des ersten Ticks nach einer langen Kommunikationspause passiert.

P.P.P.S. Gefragt.

 
Integer:


Machen Sie sich nicht lächerlich. Sie haben nur noch nicht gelernt, wie man Indikatoren schreibt.

Nach solcher Ketzerei:

Sie könnten sich genauso gut enthalten, in diesem Thread überhaupt eine Meinung zu haben.


Nun, wer und was zu schreiben gelernt hat, wird, denke ich, von außen gesehen werden, wie für Ketzerei - das Niveau Ihres Denkens, so scheint es, von allen Anzeichen, ähnelt der Logik der religiösen Fanatiker, mit denen es nutzlos und absolut unnötig zu streiten ist. Trotz dieser Ketzerei arbeiten die Experten dreimal so schnell. Aber ich persönlich habe keine Lust, bis zum Äußersten zu gehen, um jemandem etwas zu beweisen, und erst recht nicht, um mich zu rechtfertigen. Die Qualifikation meines Geistes ist zu teuer, um sie so kläglich und uneffektiv zu verschwenden.
 
Die angesehenen Gurus (alle) möchten Sie bitten, einander mit mehr Respekt zu begegnen. Was werden Sie jungen Menschen beibringen?
 
TheXpert:

Entlarvung des Trugschlusses Nr. 1: Es geht auch ohne IndicatorCounted()

Ein Indikator dazu:

Ohne sie, nach dem Prinzip der hrenfx

Dann wenden wir die Indizes auf das Diagramm an und emulieren den Verlust der Verbindung, während der Automat läuft. Ergebnis:




IMHO: Der Vergleich ist nicht korrekt: Ein Algorithmus mit Rekursion wird, unter sonst gleichen Bedingungen, immer langsamer laufen. Um die Reinheit des Experiments zu gewährleisten, ist es besser, denselben Algorithmus im Indikator und im Expert Advisor zu verwenden.

Was hindert den Expert Advisor daran, den letzten berechneten Balken zu berechnen und, wenn die Differenz zwischen der aktuellen Anzahl der Balken und dem letzten berechneten Balken mehr als 1 beträgt, von der entsprechenden Position aus neu zu berechnen, wie es der Indikator tut?

 
GODZILLA:

Nun, wer und was zu schreiben gelernt hat, ich denke, es wird von außen klarer sein, über Ketzerei - das Niveau Ihres Denkens, denke ich, durch alle Anzeichen, ähnelt lebhaft eine Logik der religiösen Fanatiker, mit denen es nutzlos und absolut unnötig zu streiten ist. Trotz dieser Ketzerei arbeiten die Experten dreimal so schnell. Aber ich persönlich habe keine Lust, bis zum Äußersten zu gehen, um jemandem etwas zu beweisen, und erst recht nicht, um mich zu rechtfertigen. Die Qualifikation meines Verstandes ist zu teuer, um sie auf so erbärmliche und verschwenderische Weise zu vergeuden.

Ist es mit diesem Ding

//---- ЭМУЛЯЦИЯ ИНДИКАТОРНЫХ БУФЕРОВ
  int NewSize = iBars(symbol, timeframe);
  //----  Проверка на смену нулевого бара
  if(ArraySize(Ind_Buffer0) < NewSize)
    {
      //---- Установить прямое направление индексирования в массиве 
      ArraySetAsSeries(Ind_Buffer0, false);
      ArraySetAsSeries(Ind_Buffer1, false);
      ArraySetAsSeries(Ind_Buffer2, false);
      //---- Изменить размер эмулируемых индикаторных буферов 
      ArrayResize(Ind_Buffer0, NewSize); 
      ArrayResize(Ind_Buffer1, NewSize); 
      ArrayResize(Ind_Buffer2, NewSize); 
      //---- Установить обратное направление индексирования в массиве 
      ArraySetAsSeries(Ind_Buffer0, true);
      ArraySetAsSeries(Ind_Buffer1, true);
      ArraySetAsSeries(Ind_Buffer2, true); 
    } 
//----

Haben Sie die Experten schnell arbeiten lassen? Wer ist dann noch ein Fanatiker? Lange geprüft, können Sie die Forumssuche verwenden.

 
granit77:
Die angesehenen Gurus (alle) möchten Sie bitten, einander mit mehr Respekt zu begegnen. Was werden Sie jungen Menschen beibringen?

Ich persönlich fühle mich durch den Vorwurf des religiösen Fanatismus nicht im Geringsten angegriffen, denn ich weiß sehr wohl, wer und was ich bin. Außerdem ist eine solche Anschuldigung ein guter Indikator für das Niveau des Denkens auf der anderen Seite, ein erschöpfender Indikator.
 
GODZILLA:
Nun, wer und was gelernt hat zu schreiben, wird, denke ich, von außen besser sichtbar sein

Ja, das kann ich mir gut vorstellen. Ihre Glaubwürdigkeit sinkt in meinen Augen dreimal so schnell wie zuvor :)

VladislavVG:

IMHO: Der Vergleich ist nicht korrekt: Ein Algorithmus mit Rekursion wird, unter sonst gleichen Bedingungen, immer langsamer laufen. Um die Reinheit des Experiments zu gewährleisten, ist es besser, denselben Algorithmus im Indikator und im Expert Advisor zu verwenden.

Der Vergleich ist richtig, denn er dient nicht dem Geschwindigkeitsvergleich, sondern soll die Unrichtigkeit der Arbeit deutlich machen.

Was hindert den Expert Advisor daran, den letzten berechneten Balken zu berechnen und, wenn die Differenz zwischen der aktuellen Anzahl der Balken und dem letzten berechneten Balken mehr als 1 beträgt, diesen von der entsprechenden Position aus neu zu berechnen, wie es der Indikator tut?

Warum probieren Sie es nicht aus?


Der EA verhält sich beim ersten Tick nach Erscheinen des Links ganz anders als der vom EA abgeleitete Indikator.

Der obige Screenshot zeigt, dass nach dem Verbindungsabbruch der EA (nicht der Indikator aus dem EA) mit iCustom verglichen wird. Der Verbindungsabbruch verläuft dort ohne Probleme.

Sie liegen wieder falsch. Ähnlich verhält sich der Expert Advisor. Sie können Ihre eigenen Protokolle einfach nicht richtig auswerten. Ich habe den Fehler bereits erklärt, ich möchte ihn nicht wiederholen.

Hinweis: Nach der Pause finden Sie einige Werte.

granit77:

Verehrte Gurus (alle), ich möchte Sie bitten, einander mit mehr Respekt zu behandeln. Was werden Sie jungen Menschen beibringen?

Maîtres sollten keine Irrlehren verbreiten, das ist das eine, und sie sollten in der Lage sein, Fehler zuzugeben, das ist das zweite.
 
TheXpert:

Sie liegen wieder falsch. Das Ratsmitglied verhält sich in ähnlicher Weise. Sie können Ihre eigenen Protokolle einfach nicht richtig auswerten. Ich habe bereits erklärt, worin der Fehler besteht, ich möchte ihn nicht wiederholen.

Tipp: Betrachten Sie mehrere Werte nach der Lücke.

Ja, ich habe nur für einen Wert nach der Pause einen Screenshot gemacht. Natürlich habe ich alle Werte und darüber hinaus gesehen (ich schummle nicht, schon gar nicht so dumm). Der Zufall ist vollständig (er hat es nicht auf den Screenshot geschafft).

Leider verstehen die Entwickler immer noch nicht den möglichen Nutzen von IndicatorCounted() für EAs (nach ihrer Antwort zu urteilen).

Der Indikator und der EA verhalten sich beim ersten Tick nach dem Gap (insbesondere bei einem langen Tick) nicht auf die gleiche Weise. Sie können dies leicht überprüfen, wenn Sie möchten.

 
Integer:

Ich persönlich bin überhaupt nicht beleidigt, wenn man mir religiösen Fanatismus vorwirft, denn ich weiß sehr wohl, wer und was ich bin. Außerdem ist eine solche Anschuldigung ein guter Indikator für das Niveau des Denkens auf der anderen Seite, ein erschöpfender Indikator.

Halten Sie Ihr Denken für angemessen und nicht fanatisch? Es reicht nicht, dass Sie es nicht geschafft haben, Ihre Hypothese zu beweisen, dass derselbe Code in einem Indikator immer schneller ist als in einem EA, sondern Sie haben einen absolut unklaren und sinnlosen Wettbewerb gestartet (der übrigens gut war, weil er zu einer interessanten Lösung der Kommunikationspanne im EA geführt hat). Übrigens habe ich nirgends auf unserer Website gesehen, dass der Code des Beraters vorzugsweise in einem Indikator zur Leistungsbeschleunigung geschrieben werden sollte, daher klingt diese Aussage zumindest seltsam, und ich denke, Sie werden ihr zustimmen.

Meine Annahme beruhte auf der einfachen Logik, dass der Aufruf einer externen Funktion mit Übergabe einer Kopie des Puffers und der Parameter mehr Zeit in Anspruch nimmt als ohne; warum Sie versuchen, dies zu bestreiten, ist mir nicht klar.