Fehler, Irrtümer, Fragen - Seite 2184

 

Die Übertragung auf mt4 erfolgt ohne Probleme.

Wie übertrage ich ein Array zu mt5?

void OnTick()
 {
  int m[][2];
  Array(m);

  int k[][3];
  Array(k); // 'k' - parameter conversion not allowed
 }

template<typename T>
void Array(T& arr[][2]) { }
 
Vitaly Muzichenko

Wie übergeben Sie ein Array in mt5?

In C++ würde es etwa so aussehen

template<typename T, int n>
void Array(T arr[][n]) {}
 

Fehler bei der Ausführung

struct A {
        A() : i( 1 ) {}
        int i;
};
struct B : A {};
void OnStart()
{
        B b;
        Print( b.i );
}

Ergebnis: 0

Erwartet: 1

 
A100:

In C++ würde es etwa so aussehen:

Aber wie in mql5?

 
Vitaly Muzichenko:

Wie sieht es in mql5 aus?

Es gibt keinen solchen Mechanismus

 

Missverstanden .

struct String {};
String f1() { String s; return s; }
string f2() { string s; return s; }
void   g1( String& ) {}
void   g2( string& ) {}
void OnStart()
{
        g1(f1()); //нормально
        g2(f2()); //Error: 'f2' - parameter passed as reference, variable expected
}

Im ersten Fall ist es in Ordnung, im zweiten Fall ist es ein Kompilierungsfehler. Was ist der Unterschied?

 

Die Schlüsselwörter funktionieren im Präprozessor nicht korrekt

//#define struct class 
struct A {
#ifdef struct
public:
        void f( A* ) {} //Error ???
#else
        void f( A& ) {}
#endif
};
//#define string String 
void OnStart()
{
#ifdef string
        Print( 1 );
#else
        Print( 2 );
#endif
}

Ergebnis: 1

Erwartet: 2

 
Vladimir Karputov:

Dieser Fehler ist bekannt und wird derzeit behoben. Ich selbst warte noch.

Es dauert sehr lange, bis https://www.mql5.com/ru/forum/216476/page7#comment_5834235 repariert ist.

Das war es.

#include <Controls\WndContainer.mqh>
class Rect {};

Hier

#include <Trade/Trade.mqh>
class Entry {};
und der Antrag selbst (#1660355 ) liegt bereits über ein Jahr zurück https://www.mql5.com/ru/forum/1111/page1797#comment_4042334
Предложение для удобства использования MetaEditor
Предложение для удобства использования MetaEditor
  • 2017.09.29
  • www.mql5.com
Здравствуйте. Хотел бы предложить разработчикам сделать в MetaEditor стандартизировать отступы при написание кода, как это сделано в VisualStudio...
 

Ich schlage vor, dass OnTesterInit die Angabe des Haupttestsymbols ermöglichen sollte

enum ENUM_TESTER_INFO_STRING
{
  TESTER_SYMBOL;
};

string TesterInfoString( const ENUM_TESTER_INFO_STRING property_id );
bool TesterSetString( const ENUM_TESTER_INFO_STRING property_id, const string property_value );

void OnTesterInit()
{
  TesterSetString(TESTER_SYMBOL, "EURUSD");
}
 

Все символы, выбранные в окне "Обзор рынка"

Im Gegensatz zu den beiden vorangegangenen Modi ermöglicht dieser Optimierungsmodus das Testen des EA mit denselbenEingabeparametern, jedoch für unterschiedliche Symbole. Bei jedem Optimierungsdurchgang wird nurdas Hauptsymbol desEA-Tests geändert, d. h. das Chart-Symbol, an das der EA angehängt werden soll.

Die Optimierung wird nur für die Symbole durchgeführt, die derzeit im Fenster"Market Watch" ausgewählt sind. Auf diese Weise können Sie die Optimierung steuern, indem Sie die Menge der ausgewählten Symbole anpassen.

  • Bitte beachten Sie, dass das Herunterladen der benötigten Preisdaten vom Server sehr lange dauern kann. Die Verlangsamung des Optimierungsprozesses durch das Herunterladen von Daten tritt jedoch nur auf, wenn er zum ersten Mal für ein Symbol gestartet wird; anschließend werden nur die fehlenden Daten heruntergeladen.
  • Die aktuellen Werteder in der Spalte "Wert" angegebenen Eingabeparameter werden bei der Symboloptimierung verwendet.


Es fehlt der Optimierungsmodus, bei dem eine sequentielle Aufzählung von Symbolen aus Market Watch erfolgt und in jedem dieser Symbole eine Optimierung der Eingabeparameter vorgenommen wird.

Dieser Modus ist sehr nützlich bei der Suche nach dem passenden Symbol für TS. Und es ist besonders relevant, wenn benutzerdefinierte Symbole vorhanden sind - Sie erstellen verschiedene benutzerdefinierte Symbole und sehen sich deren Eigenschaften im Optimierer an.

Оптимизация стратегий - Алгоритмический трейдинг, торговые роботы - MetaTrader 5
Оптимизация стратегий - Алгоритмический трейдинг, торговые роботы - MetaTrader 5
  • www.metatrader5.com
Тестер стратегий позволяет тестировать и оптимизировать торговые стратегии (советники) перед началом использования их в реальной торговле. При тестировании советника происходит его однократная прогонка с начальными параметрами на исторических данных. При оптимизации торговая стратегия прогоняется несколько раз с различным набором параметров...