Einzelnen Beitrag anzeigen
  #8 (permalink)  
Alt 12.08.22
TraderMike TraderMike ist offline
Mitglied
 
Registriert seit: Jun 2022
Beiträge: 42
TraderMike befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Indikator-Trading Beitrag anzeigen
Die extern Variablen kannst du während der Laufzweit des EAs nicht ändern. Du musst den Wert der Variablen in eine lokale Variable kopieren und diese dann im EA ändern.
Das ist Nonsens!

extern = read+write, kein ReInit notwendig
input = read-Only, ReInit notwendig

Jede mit "0" initialisierte externe Variable bekommt während der Laufzeit einen Wert zugeordnet.
Sogar extern Varablen die zum Init einen Startwert haben, können jederzeit neu befüllt werden und müssen NICHT in eine neue (lokal oder global) Variable kopiert werden! (Es braucht halt ein Reset auf "0" bevor man sie neu befüllt! Das vergessen Anfänger gerne)
Und externe Varablen kann man überladen, input nicht! weil sie ja nur read-only sind

input verwendet man wenn man für einen Kunden programiert und der eine manuelle Eingabemaske gerne hätte! Das man Variablen nicht jederzeit be/neu füllen kann ist ein echtes NoGo!

Das ist der tiefere Sinn von input vs. extern!
Kein dynamisches System, inkl. NN und AI verwendet input!

Und lokale Variablen werden immer nur innerhalb einer Funktion verwendet, ansonsten sind sie immer global definiert, egal ob mit "0" oder einem anderen Wert um sie eben global verfügbar zu machen aka anderen Teilen zur Verfügung zu stellen.

z.B. LotsBuy1 könnte ich innerhalb der trade funktion lokal definieren, was aber in einem dynamischen System nicht geht da sich die Lots z.B. dem Markt anpassen, aus welchen Gründen auch immer (Volumen, Vola, Zeit,....) Somit kann man nur Systemweite Variablen mit extern int/double global deklarieren um sie jederzeit verändern zu können!

Das geht mit lokalen Variablen nicht, bzw. nur wenn man mehrere Funktionen schachtelt (dafür ist C++ nicht gut geeignet, das geht mit OCaml besser - die Garbage Collection ist da das Problem von C/C++).
Das geht mit input Variablen nicht

Fazit:
Statisches System/Kunden Code -> input = Kundenbindung
Dynamisches System (inkl. AI, NN) -> extern