MetaTrader 5プラットフォームアップデートビルド3280: トレーダーのフィードバックに基づく改善と修正 - ページ 3

 

言語は厳密でなければならず、混在・自動列挙は非常によくある間違いです。

そのため、チェックや自動列挙を緩和することができないのです。

比較と代入を行う場合は、明示的に関数を記述します。最低限必要なのは、C言語スタイルで行うことです。

 
Renat Fatkhullin #:

言語は厳密でなければ ならず、混在・自動列挙は非常によくある間違いである。

そのため、チェックや自動列挙を緩和することができないのです。

比較と代入を行いたい場合は、明示的に関数を記述します。最後にCスタイルでいじくりまわす。

そこで、異なる列挙型を暗黙的に比較 することを許可してはならない(ErrorとWarningを一緒にしてはならない)ことが提案されています。

これは論理的ではありません。したがって、プログラマーのエラーであるか、あるいは、明示的に int に変換する必要があります。

 
ruslan #:
period converter does not work !!! on 4 !!! in build 1353 and 1355 it does not work log writes but hangs but history file is not written
このスレッドはMetatrader 5用です(最新のMT5ビルド3280について)。
ご質問はMT4スレッドに再投稿してください。MetaTrader 4 プラットフォームの更新ビルド1353
MetaTrader 4 platform update build 1353
MetaTrader 4 platform update build 1353
  • 2021.12.09
  • www.mql5.com
The MetaTrader 4 platform update will be released on Friday, December 10, 2021...
 
A100 #:

そこで,異なる enum を暗黙のうちに比較 することを禁止する(Error と Warning を併用する)ことを提案する。

これは論理的ではありません。したがって、プログラミングのエラーであるか、またはint型への明示的な変換が必要です。

そうですね、比較も警告ではなくエラーと考えるべきでしょう。
 
このスクリプトのデバッグを実行します。
void OnStart()
{
  MqlTick Ticks[];
  ArrayResize(Ticks, 1);
  
  DebugBreak();
}

トラックされたTicks[0].aslに 追加されます。最後には具体的にlと 書かれています。

次に、ハイライトされた監視式をダブルクリックします。


ME(b3280)を取得する。

検索文字列Oshibka 041.

 
Alexandr Gavrilin #:
セッションはあるのですが、ブローカーは全部書くのが億劫なんです。サポートはモスクワ証券取引所に照会しましたが、設定を変更することはできないとのことでした。そのため、私のExpert Advisorは、取引不可のタイミングを理解することができませんでした。シミュレーションの時間をコードで規定する必要があったのです。

セッションというより、混乱です。ブローカーは関係ない!

セッションデータをブロードキャストするのはエクスチェンジです。

 
MetaQuotes:

2022年4月29日(金)にMetaTrader 5プラットフォームのアップデートをリリースいたします。このアップデートでは、ビルド3270の リリース後にいただいたフィードバックに基づく改善と修正が行われます。


本アップデートには、以下の変更が含まれます。

  1. ターミナルオープンオーダーとポジションのコンテキストメニューで、標準のトレーリングストップレベルの充填を修正しました。





  2. ターミナル。ユーザインタフェースの翻訳を更新しました。
  3. クラッシュログで報告されるエラーを修正しました。


このアップデートは、Live Update システムを通じて提供される予定です。

ありがとうございました。

 

開発者の皆様、デバッグ中に行列の値が更新された場合、「ツール」ウィンドウの右側のサブウィンドウの行列の列と行が折りたたまれないようにする機能を追加してください。

簡単な例(Fig.1)。MX行列が作成されます。数回クリックすると、値を見るための最初の行が開きます。


Fig.1


コードの15行目を実行すると、すべての行と列が折りたたまれます(Fig.2)。また、新しい値を見るには、もう一度マトリックス名をクリックする必要があります...。


図2

 
A100 #:

Documentationによると:enumは、ある限定されたデータの集合を指します。この意味で、比較と代入は根本的に異なるものではなく、どちらの場合もWarningかErrorのどちらかが発生するはずである。また、比較できて 割り当てられないという のはナンセンスです。

違いはありません。テストコードは不完全で、比較では定数が使用され、代入では変数値になっています。

以下はコードの全文です。

void OnStart()
  {    
   ENUM_DEAL_REASON  ReasonD = DEAL_REASON_TP;

   ENUM_ORDER_REASON Reason1 = DEAL_REASON_TP;
   Reason1 = ReasonD;                          // ERROR
  
   Print(DEAL_REASON_TP == ORDER_REASON_TP);     
   Print(Reason1 == ReasonD);                  // ERROR
  }

コンパイラは、列挙された定数があるかどうかをチェックし、警告を発生させ、定数が他の列挙であれば、コンパイラは次のように表示します。

'ENUM_DEAL_REASON::DEAL_REASON_TP' will be used instead of 'ENUM_ORDER_REASON::ORDER_REASON_TP'


変数の場合、コンパイラはその値が何になるのかわからず、エラーを発生させる。


式中の列挙が一致しない場合は、重要でないと考えて警告を見る人が少ないようなので、必ずエラーを出すことにしたのですが...。

 
フェストゲストルグ