Fehler, Irrtümer, Fragen - Seite 56

 

Ich habe Buf[0], Buf[1], und die Funktion

Handhabung der Anfangsposition und der Anzahl der erforderlichen Elemente

intCopyBuffer(
intindicator_handle,// Indikator-Handle
intbuffer_num,// Nummer des Anzeigepuffers
intstart_pos,//wo wir beginnen
intcount,// wie viele wir kopieren
doublebuffer[]// Array, in das die Daten kopiert werden
);

CopyBuffer(M_Handl[In][AO_D],0,0,2,Buf);  // я копирую 0-й и 1-й бар по идее

Aber Buf enthält keinen 0ten Takt, sondern nur den 1ten und 2ten Takt. Entweder gibt es Ticks oder nicht, aber der letzte Wert des Indikators auf dem 0-ten Balken muss vorhanden sein, während sein Wert nicht einmal annähernd mit dem Wert in Buf[1] übereinstimmt, aber er ist fast identisch mit dem Indikatorwert auf Balken 1.

 

Модератор
216

stringo 2010.07.19 15:59 2010.07.19 15:59:06

Schlüsselwort OnTimer.

Okay, ich werde darüber nachdenken!
 
void OnDeinit(const int reason)
  {
//--   
   int LeftBar = ChartGetInteger(0,CHART_FIRST_VISIBLE_BAR);
   Print(LeftBar);  
  }

Wenn der Grund ein Zeitrahmenwechsel ist, ist LeftBar=0;

Wenn der Grund die Neukompilierung ist, dann ist es in Ordnung.

Sollte es so sein?

 

Sagen Sie es mir bitte.

Soll das Terminal seine Funktionstüchtigkeit behalten, wenn der Gewerbetreibende Fehler im Programmcode macht?

Zum Beispiel Division durch Null, Zugriff auf nicht existierende Array-Daten, etc.

Funktion

bool  IndicatorRelease(
   int       indicator_handle,     // handle индикатора
   );

Löscht einen Indikator-Handle und gibt den Berechnungsteil des Indikators frei, wenn er nicht mehr verwendet wird.

Im obigen Beispiel wird sie im Körper der void OnTick() verwendet.

Ich beschloss, damit in der Leere OnDeinit zu experimentieren.

In der Hilfe habe ich keine Informationen gefunden, wo es zu verwenden ist, obwohl wahrscheinlich bei der Deinitialisierung Handles automatisch freigegeben werden und es keine Notwendigkeit gibt, es dort zu verwenden. Aber ich verstehe immer noch nicht, was ein Griff ist.

Also. Das Terminal stürzt ab, wenn der Expert Advisor aus dem Diagramm gelöscht wird.

Ich füge die Codes bei.

Wenn Sie es brauchen und es sich um einen Fehler handelt, kann ich es über Servicedesk erledigen.

Документация по MQL5: Доступ к таймсериям и индикаторам / IndicatorRelease
Документация по MQL5: Доступ к таймсериям и индикаторам / IndicatorRelease
  • www.mql5.com
Доступ к таймсериям и индикаторам / IndicatorRelease - Документация по MQL5
Dateien:
servis_2.mq5  1 kb
servis_3.mq5  2 kb
 

PS: Vielen Dank für die Korrekturen im 294er Build, alle zuvor identifizierten Probleme wurden behoben.

Lasst uns nach neuen suchen )))

 
SHOOTER777:

PS: Vielen Dank für die Korrekturen im 294er Build, alle zuvor identifizierten Probleme wurden behoben.

Lasst uns nach neuen suchen )))

Handle ist ein eindeutiger Bezeichner (in der Regel eine Zahl), der ein bestimmtes Objekt (eine Instanz einer Klasse) für den Zugriff darauf identifiziert.

Ein Handle kann auch bestimmte Datentypen identifizieren, mit Ausnahme von einfachen Daten (obwohl das eine Frage ist).


Dieser Begriff wird in der Windows-API am häufigsten verwendet. Er bezeichnet die Kennung der vom System zugewiesenen Ressource. Wenn Sie zum Beispiel eine Datei öffnen, erhalten Sie das Handle der geöffneten Datei, wenn Sie eine DLL laden, erhalten Sie das Handle, mit dem Sie einige Aktionen mit der DLL durchführen können. Ähnliche Objekte gibt es auch in der API anderer Betriebssysteme, z. B. in Linux. Handle selbst ist (physikalisch) ein Index oder Zeiger auf Systemobjekte des Betriebssystems. Handle dient als Systemobjekt-Identifikator und wird als Argument übergeben, wenn API-Funktionen aufgerufen werden, die Aktionen mit dem Systemobjekt durchführen. Es gibt auch Funktionen, die Systemobjekte erstellen, wie CreateFile in der Windows-API oder socket() in Linux. Solche Funktionen geben als Ergebnis ihrer Arbeit ein Handle zurück oder einen speziellen Wert, der in der Dokumentation angegeben ist, wenn der Funktionsaufruf vom Betriebssystem aus irgendeinem Grund nicht erfolgreich ausgeführt wurde.

In einer Programmiersprache (z. B. C) ist ein Handle nur ein Datentyp (normalerweise eine ganze Zahl). Die Erstellung ist so trivial wie die Erstellung jedes anderen Objekts eines vorhandenen Typs. Ein Handle hat jedoch nur im Zusammenhang mit den im Betriebssystem laufenden Prozessen eine Bedeutung. Mit anderen Worten, ein Handle mit dem Wert 123456 wird als fehlerhaft wahrgenommen und seine Verwendung in API-Funktionen ist nutzlos.

 

An die Entwickler

Bitte beachten Sie meine Anfrage 18959 (ich kann die Logik der Swaps nicht verstehen und bekomme keine vernünftige Antwort). Bitte sagen Sie mir, ob es sich um einen Fehler, vorübergehende Schwierigkeiten oder einen Dummkopf handelt? Ich interessiere mich besonders für die Frage der Entstehung von Swaps bei der Meisterschaft...

Beachten Sie auch meine Anfrage19046 - es gibt ein Problem mit der Rundung des Eröffnungskurses für einige Trades (Kauf und Trimmen des Positionsvolumens).

 

Fehler, MetaTrader 5 MQL, Eröffnet, Gestartet: 2010.07.20 09:38, #19056

Bitte beachten.

 

Guten Tag...

Ungeziefer?

* Bewegen im Editor mit Strg+TAB oder Terminal-Return, Kompilieren mit F7... kann den Textcursor nicht sehen, bis ich mit der Maus auf einen Dateinamen mit Tabulator klicke...

*kann nicht RenameALL auf alt+A machen... muss wieder die Maus benutzen... die ist nicht da... //lang eng

 
EQU:

Guten Tag...

Ungeziefer?

* Bewegen im Editor mit Strg+TAB oder Terminal-Return, Kompilieren mit F7... kann den Textcursor nicht sehen, bis ich auf den Dateinamen im Tab klicke...

* Ich kann RenameALL nicht mit alt+A machen... ich muss wieder die Maus benutzen... die ist nicht da... //lang eng


1. Nicht in der Lage zu wiederholen. Das Verschieben mit Strg+Tab, Strg+Umschalt+Tab funktioniert, aber der Eingabefokus bleibt im Editorfenster. Vielleicht gibt es einige Besonderheiten bei der Wiedergabe?

2. Was soll Alt+A bewirken? Beim Verschieben durch Bearbeiten und Ersetzen erfolgt dies mit Umschalt+Tab, Tab.