Fehler, Irrtümer, Fragen - Seite 1140

 

In MQL4 können Sie die Zeile des Indikators MODE_TE NKANSEN und Shift (Verschiebung relativ zum aktuellen Balken) vorgeben

double TK = iIchimoku(NULL, PERIOD_CURRENT, Tenkan, Kijun, SenkouB, MODE_TENKANSEN, 0);

Wie kann ich die gleiche Funktion in mq5 schreiben?

Ich schrieb eine Zeile, aber es gibt eine Fehlermeldung 'iIchimoku' - falsche Parameter count Ichimoku.mq5

Dies ist der Inhalt von TENKANSEN_LINE, 0

double TK = iIchimoku(NULL, PERIOD_CURRENT, Tenkan, Kijun, SenkouB, TENKANSEN_LINE, 0);
 
Zeleniy:

In MQL4 können Sie in einer Zeile vorgeben, welche Zeile im Indikator MODE_TE NKANSEN und Shift (Verschiebung relativ zum aktuellen Takt) verwendet werden soll

Wie schreibt man die gleiche Funktion korrekt in 5?

Was ergibt das in 5?
iIchimoku
 
Zeleniy:

In MQL4 können Sie in einer Zeile schreiben, welche Zeile des Indikators iIchimoku MODE_TE NKANSEN und Verschiebung (Verschiebung relativ zu den aktuellen bar)

Wie schreibe ich genau die gleiche Funktion in 5?

Ich schrieb eine Zeile, aber es gibt eine Fehlermeldung 'iIchimoku' - falsche Parameter count Ichimoku.mq5

In der Zeile TENKANSEN_LINE, 0 wird Folgendes angezeigt

In MQL5 ist die Eingabe des iIchimoku-Indikators anders.

int  iIchimoku(
   string           symbol,            // имя символа
   ENUM_TIMEFRAMES  period,            // период
   int              tenkan_sen,        // период Tenkan-sen
   int              kijun_sen,         // период Kijun-sen
   int              senkou_span_b      // период Senkou Span B
   );
Документация по MQL5: Технические индикаторы / iIchimoku
Документация по MQL5: Технические индикаторы / iIchimoku
  • www.mql5.com
Технические индикаторы / iIchimoku - Документация по MQL5
 

Die Funktion OnTesterPass() wird nicht nach allen Optimierungsdurchläufen aufgerufen und überspringt immer mehrere Optimierungsdurchläufe, auch wenn der Rahmen zwangsweise in einer Schleife erzeugt wird.

Als Ergebnis der Optimierung dieser Vorlage wird die Anzahl der Durchläufe im Journal des Terminals immer 5-20 Durchläufe weniger sein als für die Optimierung angegeben.

Welchen Zweck haben die langsame Optimierung und die Funktion OnTesterPass(), wenn sie immer mehrere Durchgänge nicht testen und diese die gesuchten sein können?

input int         StringReadOrSumma=1000;
//---
void OnTick()  {  }
//---
long PassNum;
string NameFrameStatistik="stat";
long FrameID_Statistik;
double OnTesterResult;
double ArrValueStatistik[];
//---
double OnTester()
  {
   ArrayResize(ArrValueStatistik,1);
   ArrValueStatistik[0]=StringReadOrSumma;
   if(!FrameAdd(NameFrameStatistik,FrameID_Statistik,OnTesterResult,ArrValueStatistik)) return(0.0);
   return(0.0);
  }
//---
void OnTesterPass()
  {
   if(!FrameNext(PassNum,NameFrameStatistik,FrameID_Statistik,OnTesterResult,ArrValueStatistik))
     { Print(__FUNCTION__,__LINE__);return;}

   static int numPass=0;
   numPass++;
   Print(ArrValueStatistik[0]," --- ",numPass);
  }
 
lewvik:

Die Funktion OnTesterPass() wird nicht nach allen Optimierungsdurchläufen aufgerufen und überspringt immer mehrere Optimierungsdurchläufe, auch wenn der Rahmen zwangsweise in einer Schleife erzeugt wird.

Als Ergebnis der Optimierung dieser Vorlage wird die Anzahl der Durchläufe im Journal des Terminals immer 5-20 Durchläufe weniger sein als für die Optimierung angegeben.

Was nützt eine langsame Optimierung und die Funktion OnTesterPass(), wenn sie nie mehrere Durchgänge testet, und das sind wahrscheinlich die gesuchten?

Das Ereignis kann für mehrere Bilder gleichzeitig erzeugt werden. D.h. es ist besser, Frames in einer Schleife zu lesen, z.B. durch while(!FrameNext(...)).

 
antt:

Ein Ereignis kann für mehrere Bilder gleichzeitig erzeugt werden. D.h. es ist besser, Frames in einer Schleife zu lesen, z.B. while(!FrameNext(...))).

Ich habe versucht, Frames in der Schleife zu lesen und in der Schleife zu erstellen, das Ergebnis ist das gleiche - mehrere Durchgänge verschwinden irgendwo ohne eine Spur. Mehrere Frames oder ein schaffen keinen Unterschied. Warum so? Ist es ein Fehler oder ich bin etwas falsch, wenn ein Fehler - es ist eine ernsthafte Annahme, wie kommt es - ich suchte und suchte nach den richtigen Parametern und schließlich in der Suche verloren!

Servicedesk-Anfrage#1007598| 2014.05.04 12:33

 

Leute, die mir sagen können, wie man in mql5den Betrag an freien Mitteln berechnet, der benötigt wird, um 1 Lot eines bestimmten Symbols zu eröffnen

Ich weiß, wie man es in mql4 macht, aber in mql5 kann ich es nicht finden

 

Ein solcher Fehler wurde im EA-Tester entdeckt. Metatrader-Client 5. Build 930. Makler: Otkrytie. FORTS.

Im Testgerät werden die stornierten Aufträge so angezeigt, als ob sie ausgeführt worden wären. Hier steht 2.0/2.0. Obwohl die Bestellung gerade storniert wird:

Auf dem Demokonto werden die stornierten Aufträge als nicht ausgeführt (oder teilweise ausgeführt) angezeigt. Zum Beispiel 2.0/0.0 oder 2.0/1.0. Das ist das richtige Verhalten:

Dieser Fehler beeinträchtigt also den Überblick über die tatsächlich ausgeführte Menge. Beim Testen.

Ist es ein Fehler? :)

 
harbor:

Leute, die mir sagen können, wie man in mql5den Betrag an freien Mitteln berechnet, der benötigt wird, um 1 Lot eines bestimmten Symbols zu eröffnen

In mql4 weiß ich wie, aber in mql5 kann ich es nicht finden

Vielleicht ist es so:

Print("Margin=", SymbolInfoDouble(_Symbol,SYMBOL_MARGIN_INITIAL)); 
 
escoman:

Ein solcher Fehler wurde im EA-Tester entdeckt. Metatrader-Client 5. Build 930. Makler: Otkrytie. FORTS.

Im Testgerät werden die stornierten Aufträge so angezeigt, als ob sie ausgeführt worden wären. Hier steht 2.0/2.0. Obwohl die Bestellung gerade storniert wird:

Danke für die Nachricht. Korrigiert.