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

 
Vladimir Karputov:

Symbol、Ticket、Timeのいずれかの列のヘッダーをクリックします。

左キーでクリックします。

うまくいきました!ありがとうございます!今まで何度か間違ったペアを閉じてしまったことがありました。
削除済み  
Сергей Проценко:
利益に応じて、利益が高ければ下に移動し、他の注文の方が利益が高ければ場所を入れ替える。ユーロの利益が金の利益より高くなれば、ユーロの注文が下になり、金の注文が上になる。

利益でソートしています。別のソート基準を選択する。

 
fxsaber :
コンパイル エラーを回避する方法を教えてください。

見た目ほど複雑ではありません。

 #define  PRINT(x) ; Print ( #x,  ":" , string (x))

struct STRUCT_BASE
{
   static const int Array[];
};
static const int STRUCT_BASE::Array[] = { 1 , 2 };

struct STRUCT : STRUCT_BASE
{
   int Array2[ sizeof (Array)];
};


void OnStart ()
{
   static const int Array[] = { 1 , 2 };
   int Array2[ sizeof (Array)];
  
  PRINT( ArraySize (Array));             //2 
  PRINT( ArraySize (Array2));           //8
  
  
  STRUCT s;
  PRINT( ArraySize (s.Array));           //2
  PRINT( ArraySize (s.Array2));         //8
}
 
Sergey Dzyublik:

見た目ほど複雑ではありません。

ありがとうございます!ベーシックなものには手を出しませんでした。

 
コードベースチェックを通過できない、メインファイルが 見つからないがある。もしモデレーターが可能なら)原因を探ってください。ブログでの公開に戻そうかと考えているのですが、そのような問題はありません。
 
Stanislav Korotky:
コードベースが確認できない、main file not foundと 表示されるが、あるにはある。もしモデレーターが可能なら)原因を探ってください。ブログでの公開に戻そうかと考えています。そのような面倒なことはありません。

mq5を "default "フォルダに入れる。

 

MT5コンパイラ(ビルド2321)について早速2点質問です。

#define  PRINT(x) ; Print(#x, ":", string(x))
#ifdef __cplusplus
    #include<iostream>
#endif


template<typename T>
class A{
};

template<typename T>
class B : public A<T>{
};


template<typename T>
void func(B<T> &it1){
   printf("C++:1");                      //MQL:2         
}

////ERRROR: 'func' - template functions overloading is not supported yet
//template<typename T>     
//void func(T &it1){ 
//  printf("C++:2");                               
//}
template<typename T>         
void func(T &it1, T* = NULL){
   printf("C++:2");                       //MQL:1        
}

template<typename T>
void func(A<T> &it1){
   printf("C++:3");                       //MQL:3
}


void OnStart(){
   B<int> b;
   func(b);
}

int main(){
   OnStart();
   return 0;
}

1.MQLにおけるテンプレート関数の実行の優先順位は、C++におけるテンプレート関数の優先順位とは一致しません(online: https://onlinegdb.com/Hkvz8Hu7L)
つまり、C++では、3つのテンプレート関数がすべて存在する場合、結果が「C++:1」のテンプレート関数が実行され、それが削除された場合は「C++:2」が実行され、削除された場合は「C++:3」が実行されるのです。
MQLでは、「C++:2」に続いて「C++:1」「C++:3」と、優先順位がかなり異なっています。


MQLでは、ダミー・パラメーターを持つ同じ関数がすでに許可されているのに、なぜ最初の関数が禁止されているのか、その理由は明らかではありません。

//ERRROR: 'func' - template functions overloading is not supported yet
template<typename T>     
void func(T &it1){ 
  printf("C++:2");                               
}

// OK
template<typename T>         
void func(T &it1, T* = NULL){
   printf("C++:2");                              
}
 

皆さん、こんにちは。

多通貨ロボットの テストの問題に遭遇された方はいらっしゃいますか?

EAに必要な通貨ペアはすべてダウンロードされていますか?

私は2つのペア、例えばEURUSD GBPUSDをテストしようとしています。

EURUSDでテストすると(EURUSD GBPUSDのテスト)-結果は1です。

GBPUSDでテストすると(EURUSD GBPUSDのテスト)、結果は2、つまり異なる。

私たちはUSDCHFをテストする場合(テストEURUSD GBPUSD) - 結果は3であり、すなわち異なる



結果は大差なく、数十件の取引(2ヶ月間)ですが、結果は各ペアで異なっています(特定のEURUSD GBPUSDのペアをテストしていますが)。

すぐに仮定します:コード全体は、ループからSymbol()を取る変数Symbで動作します。すなわち、単一のコードですが、Symb変数へのコードの内部では、独自の値が割り当てられています。


もしかして、ペアによってクォート、ティック、ヒストリーの品質が異なるため(EURUSDとGBPUSDは常にテストされている)、テスト結果がペアによって異なるのでしょうか?

すなわち

EURUSDでテストを行い、GBPUSDではより少ないクォートが必要ということでしょうか?

и

GBPUSDでテストが設定され、EURUSDではダウンロードされる相場が少ない可能性はありませんか?

 
fxsaber:

mq5を「default」フォルダに入れる。

私は非常によく、メインモジュールは、フォルダなしであるべきであることを知っている - それは、デフォルトのフォルダは、彼ら自身がダウンロードボタンの右側にオプションをドロップダウンすることによって "終了 "です。

うまくいかないんです。

 
C++ではコンパイルして動作するのですが(オンライン:https://onlinegdb.com/Syn90dd7I)、MQLではエラー: "'func' - ambiguous call to overloaded function" となっています。

#define  PRINT(x) ; Print(#x, ":", string(x))
#ifdef __cplusplus
    #include<iostream>
#endif


template<typename T>
class A{
};

template<typename T>
class B : public A<T>{
};

template<typename T>
class C : public B<T>{
};


template<typename T>
void func(B<T> &it1){
   printf("C++:1");                      
}

template<typename T>
void func(A<T> &it1){
   printf("C++:2");                      
}


void OnStart(){
   C<int> c;
   func(c);            //ERROR: 'func' - ambiguous call to overloaded function
}

int main(){
   OnStart();
   return 0;
}