Ein Berater ohne Indikator - ist das möglich? - Seite 3

 
Алексей Тарабанов:

Ein gefährlicher Irrglaube.

Worin besteht das Missverständnis?
Wenn Sie eine Verlaufsmatrix benötigen, tun Sie das. Wenn Sie es nicht brauchen, tun Sie es nicht.
Ich persönlich verwende meist ein Array, da ich oft interne Tests usw. verwende. Aber mein Array ist selten gleich der Anzahl der Balken im Diagramm. Manchmal weniger, manchmal mehr.
Nehmen Sie zum Beispiel einen gewöhnlichen Zickzackkurs. Es gibt weniger als 10 % der informativen Array-Elemente und der Rest ist leer, aber das gesamte Array ist aufgezählt. Und? Ist es effizient? Offensichtlich ist es korrekter, ein kürzeres Array von Strukturen mit Wert und Index zu verwenden.
 

Aber mein Array entspricht selten der Anzahl der Balken im Diagramm. Manchmal weniger, manchmal mehr.

Was mich beunruhigt, ist, dass sie größer sein könnte.

 
Nikolai Semko:
Erstens, wer hindert Sie daran, ein internes Datenfeld zu haben, das dem Indikatorpuffer entspricht, und es auf dieselbe Weise zu füllen.
Zweitens: Warum sollte ein Berater die ganze Geschichte brauchen? In der Regel der letzte und vielleicht der vorletzte Wert. Und wir brauchen diese ganzen Indikatoren nicht.

Und was ist ressourcenmäßig sinnvoller, die Berechnung in einem Indikator oder die Berechnung im Expert Advisor, was schneller ist?

 
Алексей Тарабанов:

Aber mein Array entspricht selten der Anzahl der Balken im Diagramm. Manchmal weniger, manchmal mehr.

Was mich beunruhigt, ist, dass sie größer sein könnte.

Du machst dir vergeblich Sorgen, Alexey.
Es kann Situationen geben, in denen dies notwendig ist, gugilen.
Zum Beispiel.
Ich verwende meist Daten von Minutenbalken oder Ticks, unabhängig von der TF.
Es ist sehr falsch und verschwenderisch, wenn Ihr Expert Advisor alle Pufferindikatoren jedes Mal neu berechnen muss, wenn Sie die TF ändern. Bei mir ist das nicht der Fall.
Wenn ich also einen wöchentlichen Zeitrahmen verwende, wird mein Array natürlich viel größer sein als die Anzahl der Balken im Diagramm.
Und ich spreche nicht einmal von Zecken.
In der Regel habe ich mehrere Arrays von Strukturen und Index-Arrays, um die Produktivität zu erhöhen und Speicherplatz zu sparen. Ihre Dimensionen können unterschiedlich sein.
Generell sind Sie bei der Verwendung von Indikatoren über iCustom in vielen Dingen sehr eingeschränkt.
Sie sind starr an die Arraygröße gebunden, die der Anzahl der Balken im Diagramm entspricht. Was ist, wenn Sie unbegrenzt dort stehen?
Sie sind nur an eine Art von Double gebunden. Und Sie können nicht einmal davon träumen, eine Reihe von Strukturen zu haben.
Es ist sogar lächerlich mit Farbindikatoren. 8 Bytes pro Takt sind offensichtlich zu viel.
Indikatorpuffer sind sehr verschwenderisch im Hinblick auf den Speicherverbrauch.
Außerdem haben Sie nur über CopyBuffer Zugriff auf die Puffer, selbst wenn Sie nur einen letzten Balken benötigen. In jedem Fall ist dieser Vorgang viel langsamer als der einfache Zugriff auf Array-Elemente.

Wenn Sie standardmäßig eingebaute Indikatoren wie iMA verwenden, müssen Sie sich natürlich nicht darum kümmern. Dennoch denke ich, dass wir hier über benutzerdefinierte Indikatoren sprechen. Ich glaube nicht, dass Profis integrierte Indikatoren für den echten Handel verwenden.


 
VVT:

Und was ist ressourcenschonender, die Zählung in einem Indikator oder die Zählung in einem Expert Advisor, die schneller ist?

Ich habe in meinem vorherigen Beitrag teilweise geantwortet.
Dies ist eine sehr lange Frage, und es ist besser, die Entwickler zu fragen, insbesondere diejenigen, die für Multithreading zuständig sind.

Ich bin kein Spezialist für diese Frage. Aber ich kann meine Gedanken mitteilen. Sollte ich mich irren, korrigieren Sie mich bitte, wenn Sie es richtig wissen.
Wie Sie wissen, arbeitet jeder Expert Advisor in einem separaten Thread, während alle Indikatoren eines Symbols (auch in verschiedenen Charts) in einem gemeinsamen Thread arbeiten.
Daher können wir davon ausgehen, dass, wenn das Symbol nicht mit Indikatoren überlastet ist, die Arbeit des Expert Advisors und die Berechnung des Indikatorpuffers parallel und sogar in verschiedenen CPU-Kernen laufen, wenn der OS Scheduler das Glück hat, einen separaten Prozessorkern für Ihren Indikator-Thread zu finden. Es ist durchaus möglich, dass Sie in einem solchen Schema effizientere Ergebnisse erzielen werden. Ich weiß nicht, wie hoch die Wahrscheinlichkeit ist, einen separaten Kern für einen Indikator-Thread zu erhalten, aber ich denke, sie ist nicht sehr hoch.
Aber es gibt solche Begriffe wie Thread-Kontextwechselgeschwindigkeit und viele andere Feinheiten der Interaktion mehrerer Threads. Ich weiß, dass die Geschwindigkeit der Kontextumschaltung von Threads im Vergleich zu den Prozessen sehr hoch ist, aber es ist nicht kostenlos.
Außerdem, wie ich schon sagte, wird der Zugriff auf das Indikatorpufferelement durch CopyBuffer teurer sein als der Zugriff auf ein Array-Element durch seinen Index.
Auch die Möglichkeit,unnötige Berechnungen, die Größe interner Arrays und deren Indizierunginnerhalb des Expert Advisors zu optimieren, bietet ein großes Potenzial zur Reduzierung des Ressourcenverbrauchs.
Natürlich werden Sie Experimente und geeignete Tests benötigen, um eine vollständige Antwort auf Ihre Frage zu erhalten. Aber ich bin immer noch eher geneigt zu glauben, dass die durchschnittliche Leistung besser ist - alles in einem Expert Advisor Thread.

 
Dmitry Fedoseev:

Und jedes Mal in einem Zyklus laufen? Die EMA wäre noch interessanter.

Verwendung des Single-Pass-Algorithmus zur Berechnung desexponentiell gewichteten Durchschnitts

ma = (1 - a) * Preis + a * ma

 
Dmitry Fedoseev:

Ein normaler Indikator zählt alle Balken nur am Anfang und dann 1 Balken danach. Im Indikator ist es einfach, die SMA so zu gestalten, dass selbst bei der Berechnung von 1 Bar nicht die gesamte Periode der MA durchlaufen werden muss.

Natürlich können wir im Expert Advisor auch Array-Puffer erstellen. Aber wofür, wenn es ein speziell entwickeltes Element gibt - Indikatoren?

Wo liegt also das Problem? Eine neue Bar tauchte auf - wir haben sie in Betracht gezogen.

 
anim:
Ich möchte, dass der Expert Advisor nicht an einen Indikator gebunden ist. Eswürde die Balken berechnen und intern Kauf-/Verkaufssignale erfassen. Ist das möglich?
Natürlich ist das möglich, wenn Sie die Formel des Indikators in den Expert Advisor implementieren!
 
Vladimir Mikhailov:

Berechnen Sie mit dem One-Pass-Algorithmus einenexponentiell gewichteten Durchschnitt

ma = (1 - a) * Preis + a * ma

Das ist nicht richtig!

Richtig ist:

ma[i] = (1 - a) * Preis + a * ma[i+1]

d.h. wir brauchen ein Array, dessen notwendige Tiefe vom Parameter a abhängt .

Andernfalls ist es ein völliger Unsinn, zumindest solange der Übergangsprozess dauert, was je nach Parameter a ziemlich lange dauern kann.

All dies lässt sich leicht überprüfen, indem man die Indikatorwerte mit den entsprechenden Berechnungen im EA vergleicht.
 
Dmitry Fedoseev:

Natürlich ist es auch möglich, Puffer aus einem Array im Expert Advisor zu erstellen... Aber warum, wenn es ein speziell entwickeltes Element gibt - Indikatoren?

Ich habe ein Problem mit dem Überspringen von Signalen aus einem Indikator, niemand gab eine Empfehlung

https://www.mql5.com/ru/forum/365021

Die Ausdrucke zeigen, dass das Ereignis vom Indikator kommt, der auf einen neuen Balken prüft, und dass die Daten des vorherigen Balkens und nicht des neuen Balkens vorhanden sind.

ich habe an 3 Terminals gleichzeitig getestet, beide Auslassungen waren in einem der drei Terminals, vielleicht ist es zufällig

В моих ТС пропуск сигнала
В моих ТС пропуск сигнала
  • 2021.03.16
  • www.mql5.com
Не люблю создавать новые темы, Небольшие исходные данные: Советник работает в OnChatEvent, 7 символов, циклов нет, прямая передача номера за минусо...