Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 131

 
Vitaly Muzichenko:

Ich kann es nicht mitOnCalculate(...)-Ereignis berühren, ich kann jede Funktion berühren, aber ich kann nicht diese eine berühren. Der Timer ist keine Option, der Indikator wird nicht so oft benötigt, und es wäre besser, ihn mit einem Klick auf ein grafisches Element zu verwenden.

Wie wird sie umgesetzt?

Sie fangen den Klick auf das Objekt im Indikator und im Event-Handler ab und berechnen dann die Indikatorpuffer wie bei einem Neustart neu. Sie müssen OnCalculate nicht aufrufen
 
-Aleks-:

Können Sie mir bitte sagen, wie ich die ressourcenintensivsten Stellen im Code, die die CPU belasten, richtig ausfindig machen kann?

Führen Sie das Code-Profiling vom Editor aus.
 
Artyom Trishkin:
Führen Sie das Code-Profiling vom Editor aus.

Danke, aber wie machen Sie das offline - an einem freien Tag?

 
Was könnte das Problem sein?

Ein Stück Code:

for(i=1; i<=Bars; i++)
{
if(Open[i]-Close[i]==0)

Beim Testen erzeugt der Debugger einen Fehler in der if-Zeile. Array außerhalb des Bereichs.

Ich danke Ihnen im Voraus.
 
Andy-D:
Was könnte das Problem sein?

Ein Stück Code:

for(i=1; i<=Bars; i++)
{
if(Open[i]-Close[i]==0)

Beim Testen erzeugt der Debugger einen Fehler in der if-Zeile. Array außerhalb des Bereichs.

Ich danke Ihnen im Voraus.
for(i=1; i<Bars; i++)
  {
   if(Open[i]-Close[i]==0)
     {

     }
  }
...
 
Sergey Gritsay:
for(i=1; i<Bars; i++)
  {
   if(Open[i]-Close[i]==0)
     {

     }
  }
...
Danke für die Hilfe, ich hätte wohl nicht "<=" schreiben sollen? Es ist allerdings seltsam. Ich verstehe nicht, warum. Wo setze ich das Pluszeichen ein?
 
Andy-D:
Danke für die Hilfe, ich hätte wohl nicht "<=" schreiben sollen? Es ist allerdings seltsam. Ich verstehe nicht, warum. Wo soll das Pluszeichen stehen?
Die Array-Indexierung beginnt mit 0 und endet mit Bars-1 (in diesem Fall). Daher führt der Wert von Bars zu einem Array-Überlauf.
 
Andy-D:
Danke für die Hilfe, ich hätte wohl nicht"<=" schreiben sollen? Trotzdem seltsam. Ich verstehe nicht, warum. Wo soll das Pluszeichen stehen?
Denn die Indizierung von Arrays beginnt bei Null. Wenn also beispielsweise die Anzahl der Balken in Bars 1 ist, müssen Sie, um einen Wert von diesem einzelnen Balken zu erhalten, den Wert der Zelle mit dem Index 0 nehmen.

Hier ist eine Vergleichstabelle:

Anzahl der Bars in Bars
1 2 3 4 5 6 7 8 9 10 Äußere Anordnung
Schleifenindex, der die Daten referenziert
0 (i<Balken)1 (i<Bars)2 (i<Bars)3 (i<Balken) 4 (i<Bars)5 (i<Balken) 6 (i<Bars) 7 (i<Balken)8 (i<Bars)9 (i<Balken) 10 (i==Bars)
 
Sergey Gritsay:
Dazu müssen Sie einen Server außerhalb des lokalen Computers einrichten und Daten über diesen Server übertragen, bzw. für MT einen Indikator oder Berater schreiben, der diese Daten verarbeitet, oder die Terminals auf einen VPN-Server legen und dort einen Kopierer von Geschäften von Ihrem Konto auf die Konten Ihrer Freunde einrichten. Eine weitere Möglichkeit ist das Kopieren Ihrer Trades, die auf bestimmten Niveaus durch einen Signaldienst ausgeführt werden. Im Allgemeinen müssen Sie Ihre finanziellen Möglichkeiten berücksichtigen, um die passende Software zu bestellen.
Ich habe einen Indikator (mq4) mit ähnlichem Mapping-Prinzip gefunden. Ich habe die Ergebnisse gesehen, und sie gefallen mir nicht. Ich habe meine eigenen Daten, und ich glaube, sie sind genauer. Ich habe meine eigenen Daten. Kann ich sie bearbeiten, um sie genauer zu machen und einige unnötige Zuordnungen zu entfernen und den Pfad zu meinen Daten anzugeben? Nehmen Sie es einfach als Grundlage.
 
Artyom Trishkin:
Da die Indizierung eines Arrays mit Null beginnt, müssen wir, wenn die Anzahl der Balken in Bars beispielsweise 1 ist, den Wert dieses einzelnen Balkens aus der Zelle mit dem Index 0 entnehmen.

Hier ist die Vergleichstabelle:

Anzahl der Bars in Bars
1 2 3 4 5 6 7 8 9 10 Äußere Anordnung
Schleifenindex, der auf die Daten verweist
0 (i<Balken)1 (i<Bars)2 (i<Bars)3 (i<Balken) 4 (i<Bars)5 (i<Balken) 6 (i<Bars) 7 (i<Balken)8 (i<Bars)9 (i<Balken) 10 (i==Bars)
Vielen Dank, das macht jetzt mehr Sinn.