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

 
fxsaber:

マーケットプレイスに関する統計は見つかりませんでした。そこで、クロスプラットフォーム製品を販売する方に質問です。

MT5版は本当にMT4より売れているのですか?

フリーランスを基本に、最近はmt5での仕事も増えています。

時間が経つのは早いので(非常に早い)、本当にmt5を参考にする必要があります。振り子と同じで、長く振っていても止まらなくなる、これはもうおわかりでしょう。

 
マクロのテキストをプリントアウトできるようにする必要があります。
#define OnTick OnTick2


ログを出力する必要がある

OnTick = OnTick2


言語では、このようなことができるのでしょうか?

 
fxsaber:
マクロのテキストを印刷できるようにする必要があります。

ログを出力する必要があります

言語では、このような ことができるのでしょうか?

何語かによるのでしょうか?C++では マクロがちゃんと動く し、(MQLと違って)どんな式でも組めるので、それが可能です。その逆を何度も証明しようとしたことは覚えていますが

#ifdef __cplusplus
#define  MACRO1(X)	#X "=" MACRO2(X)
#define  MACRO2(X)	#X
void OnStart()
{
        printf( "%s", MACRO1( OnTick ));
}
#endif

結果:OnTick = OnTick2

 
A100:

どちらかによるのでしょうか?C++では マクロがちゃんと動く し、(MQLと違って)どんな式でも組めるからです。その逆を何度も証明しようとしたことは覚えていますが

結果:OnTick = OnTick2.

ありがとうございます。修正される場合があります。

 
fxsaber:

ありがとうございます。おそらく、そうでしょう。

もしそうなら、とっくに訂正しているはずです。これまで何度も、何らかの形で書いてきましたが、最新のメッセージ はこちらです。

トレーディング、自動売買システム、トレーディング戦略のテストに関するフォーラム

バグ、バグ、質問

A100, 2020.07.30 02:25

優先順位というより、根本的にマクロの順番 がおかしいのだと思います。

で、大丈夫だろうと期待されていたのですが、C++のように

トレーディング、自動売買システム、トレーディング戦略のテストに関するフォーラム

エラー、バグ、質問

A100, 2020.07.30 10:53

C++のマクロは、必要な結果を投影できるように設計されていますが、MQLでは、どんな結果でも投影 できるわけではないことが判明しました



 
これはバグなのでしょうか、それともそうすべきなのでしょうか?
// Находим крипт-методы, в которых не работает шифрование с ключем.

void OnStart()
{  
  const string Str = "Hello World!"; // Строка, которую будем шифровать/дешивровывать.

  uchar BytesStr[];

  StringToCharArray(Str, BytesStr); // Перевели строку в байты
  
  uchar KeyDecode[];
  uchar KeyEncode[];
    
  StringToCharArray("qwer", KeyDecode); // Задали код для шифровки
  StringToCharArray("asdf", KeyEncode); // Задали ДРУГОЙ код для расшифровки
    
  for (int i = 0; i < 8; i++) // Перебираем все штатный методы шифровки
  {
    const ENUM_CRYPT_METHOD Method = (ENUM_CRYPT_METHOD)i; // Текущий метод шифровки
    
    uchar BytesDecode[];
    uchar BytesEncode[];    
    
    CryptEncode(Method, BytesStr, KeyEncode, BytesEncode);    // Зашифровали
    CryptDecode(Method, BytesEncode, KeyDecode, BytesDecode); // Расшифровали
    
    Print("Crypt method " + EnumToString(Method) + " is bug - " + (string)(CharArrayToString(BytesDecode) == Str)); // Сообщаем о наличии/отсутствии бага.
  }
}


結果

        Crypt method CRYPT_BASE64 is bug - true
        Crypt method CRYPT_AES128 is bug - false
        Crypt method CRYPT_AES256 is bug - false
        Crypt method CRYPT_DES is bug - false
        Crypt method CRYPT_HASH_SHA1 is bug - false
        Crypt method CRYPT_HASH_SHA256 is bug - false
        Crypt method CRYPT_HASH_MD5 is bug - false
        Crypt method CRYPT_ARCH_ZIP is bug - true


CRYPT_BASE64、CRYPT_ARCH_ZIPの 暗号化がうまくいかない。

 
fxsaber:

マーケットプレイスに関する統計は見つかりませんでした。そこで、クロスプラットフォーム製品を販売する方に質問です。

MT5版は本当にMT4より売れているのですか?

今のところないですね、むしろイエスです。しかし、5への流れはもちろんあります。

 

fxsaber:
Это баг или так и должно быть?

CRYPT_BASE64、CRYPT_ARCH_ZIPの暗号化がうまくいかない。

根本的に異なる方法を1つの関数にまとめたため、バグのように見えるのです

CRYPT_BASE64 では、原理的に鍵は 存在しない。

 
fxsaber:

MT5版は本当にMT4より売れているのでしょうか?

確かにそうですが、以前は桁違いの数字でしたが、今はもっと遜色ない数字になっています。

 
A100:

異なるメソッドを1つの関数にまとめるのが原則 - そのためバグのように見える

CRYPT_BASE64 に含まれる鍵は原理的に 存在し得ない

ありがとうございます。ZIPだけの問題であることが判明しました。