エラー、バグ、質問 - ページ 2184

 

mt4にも問題なく転送されます。

アレイを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

mt5で配列を渡すにはどうしたらいいですか?

C++では、次のようになります。

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

実行中のエラー

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

結果:0

期待値:1

 
A100:

C++では、次のようになります。

しかし、mql5ではどのように?

 
Vitaly Muzichenko:

mql5ではどうでしょうか?

そのような仕組みはありません

 

誤解されること.

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
}

最初の場合は問題なく、2番目の場合はコンパイルエラーになります。何が違うの?

 

プリプロセッサーでキーワードが正しく動作しない

//#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
}

結果:1

期待値:2

 
Vladimir Karputov:

このミスは知られて おり、修正されています。私自身は待っています。

修正に時間がかかっているhttps://www.mql5.com/ru/forum/216476/page7#comment_5834235

そこにあったのは

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

こちら

#include <Trade/Trade.mqh>
class Entry {};
で、出願番号#1660355は 、実はすでに1年以上前のものでしたhttps://www.mql5.com/ru/forum/1111/page1797#comment_4042334
Предложение для удобства использования MetaEditor
Предложение для удобства использования MetaEditor
  • 2017.09.29
  • www.mql5.com
Здравствуйте. Хотел бы предложить разработчикам сделать в MetaEditor стандартизировать отступы при написание кода, как это сделано в VisualStudio...
 

OnTesterInitでメインテストシンボルを指定できるようにすることを提案します。

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");
}
 

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

前の2つとは異なり、この最適化モードでは、同じ入力パラメータを 使用して、異なるシンボルでEAをテストすることができます。各最適化パスでは、EAテストのメインシンボル、言い換えれば、EAが取り付けられるであろうチャートシンボルだけが変更されます。

最適化は、"Market Watch" ウィンドウで現在選択されているシンボルに対してのみ行われます。このように、選択されたシンボルのセットを調整することで、最適化を管理することができます。

  • 必要な価格データをサーバーからダウンロードするには、長い時間がかかることがありますのでご注意ください。しかし、データのダウンロードによる最適化処理の遅れは、シンボル上で初めて起動したときのみ発生し、その後は不足分のデータのみがダウンロードされます。
  • Value」欄で指定された入力 パラメータの現在 値は、シンボル最適化時に使用されます。


Market Watchからシンボルを順次列挙し、それぞれに入力パラメータの最適化を行うという最適化モードが非常に不足しています。

このモードは、TSに適した記号を探すときに非常に便利です。そして、カスタムシンボルが存在する場合は特に関係します。さまざまなカスタムシンボルを作成し、オプティマイザーでそのプロパティを確認します。

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