MQL5の未来はMQL5+、あるいはMQL6だ - ページ 10

 
gotoを見ると、可読性はもちろんのこと、かなりコードを簡略化できます。結局、条件付きのループは、本質的にループからの早期終了でもあるのです。
 
dimka8:
gotoを見ると、可読性はもちろんのこと、かなりコードを簡略化できますね。実は、条件付きのループは、ループからの早期終了でもあるのです。
いいえ、したくありません :)
 
dimka8:
gotoは、可読性はもちろん、コードをかなり簡略化できますね。実は、条件付きループは、ループからの早期終了でもあるんです。

どこから来たんだ...。

 

一言、二言。

クロスプラットフォームの義務化・・・。

 
Vasiliy Sokolov:

どこから来たんだ...。

をBASICから呼び出す。
 
Alexander Bereznyak:
をBASICから呼び出す。

よりシンプルなHiasm。

クラシックはどうですか?

for(...) {
for (...) {
while (...) {
if (...) goto stop;
...
}
}
}
printf("error in program\n");
 

プロジェクトのコンセプトを紹介するのもいいと思います。OOPの採用により、すべてのプログラムは複数のファイルから構成されるようになりました。プラグインを編集する場合、コンパイル前に常にメインファイルのあるタブに移動しなければならないのは不便です。また、プログラム可能なボタン「コンパイル」を導入し、作業中のプロジェクトのマスターファイルをバインドすることもできます。

EMPTY_VALUE は、それを許容するすべての型(int, double, string など)に拡張することができる。小さなことですが、いろいろなところで使えるので、作り込まずに済みます。

テスターで、MTのような十字ツールを作る。

確かに、価格チャートの下の1つの指標ウィンドウに複数の指標を重ねるというバリエーションは考案できますね。


快適さは、小さなディテールの積み重ねから生まれるものです。開発者はこの考えをあまり受け入れたくないようで、常に何かをグローバル化しています。たまにはやめて、小さな修正、つまりユーザーの快適さに時間を割くべきかもしれませんね )))))

例:グラフ上の何かを3回測定するためには、十字ボタンを3回クリックする(またはキーの組み合わせを押す)必要があります。チャート下のMEにあるインジケーターウィンドウは入れ替えることができません。この場合も、複数のインジケータを設定するには、メニュー-サブメニュー-インジケータ選択と数回行う必要があります。そして、なぜかList of indicatorsというツールがあり、このケースを単純化せず、新しいものを与えない...。 MQLで、MEで、MTで、テスターで、みんな何も考えずにそういう例を出すと思うのですが...。地獄だ!大騒動!パッケージのわかりやすさの割には、過疎っているのがとても気になります。

https://www.mql5.com/ru/docs/basis/types/integer/enumeration は、転送に関するヘルプ記事です。その正体も、見た目もはっきりしている...。でも、どう使えばいいのか、どんなメリットがあるのか。言葉で書くのが面倒なら簡単な例を挙げてくれ。

本当に何かを改善したいのであれば、皆が全てを欲しがるような大勢で尋ねるのではなく、様々な方向性(プログラミング、マニュアル取引、テストなど)で積極的にそのパッケージを使っている通常のユーザーグループと連絡を取り、彼らから合理的な提案を集めて、今あるものを改善すべきだと思うのですが、いかがでしょうか?そうしないと、すべてが文字で残ってしまいます。

Документация по MQL5: Основы языка / Типы данных / Целые типы / Перечисления
Документация по MQL5: Основы языка / Типы данных / Целые типы / Перечисления
  • www.mql5.com
Основы языка / Типы данных / Целые типы / Перечисления - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 

デバッガーで

例えば、次のような式があります。

(int)(MathFloor((ticks_stored-1)/ticks_in_candle)-MathFloor(i/ticks_in_candle));

を実行すると、現在のデバッグ実装では、デバッガで式を計算した結果が利用できるようになります。

CandleNumber=(int)(MathFloor((ticks_stored-1)/ticks_in_candle)-MathFloor(i/ticks_in_candle)))。

で、Shift+F9で観測リストに変数CandleNumberを追加します。

MathFloor(i/ticks_in_candle)など、式の一部分の計算結果を取得したい場合は、次の式をウォッチリストに追加します。

Expression could not be evaluated.と表示される。

しかし、デバッグの際に、宣言された変数の 値だけでなく、任意の式の計算結果も見ることができません(もちろん、現在の観測時点でのすべての変数がすでに初期化されている式のことを指しています)。

また、デバッグ時に配列の情報を見たいのですが、例えば、UpTick[]という配列があり、現在監視できる配列の要素は1つだけだとします。

スーパービジョンに配列を追加する際に、すべての要素とそのインデックスを表示する別のモーダルウィンドウを開くことができるようにしてはどうでしょうか。

指標型値

0 int 1

1 int 2 など。

アレイが大きく、多くのメモリを必要とする場合 - サンプリングを制限する。

また、一般的には、任意の式、変数、配列を監視する可能性という点で、デバッガのより広い機能を実現することができます。

 
agvozdezkiy:
EMPTY_VALUE を許可するすべての型(int、double、string など)に拡張する小さなことですが、いろいろなところで使えるので、自分で工夫する必要はないのです。

もうみんな発明しているんですよ。NULL定数を使用する。

テスターで、MTのように十字のツールを作成します。

例:グラフ上の何かを3回測定するためには、十字ボタンを3回クリックする(またはキーの組み合わせを押す)必要があります。

秘密を教えましょう。それは、すでに実装されているのです。マウスのホイールをクリックすると、十字になります。

価格チャートの下にある1つの指標ウィンドウに複数の指標を重ねるというオプションは、おそらく思いつくでしょう。

以前から可能でした。ナビゲーターから、すでに貼り付けられているインジケーターのあるウィンドウにドラッグするのです。

チャート下のMEにあるインジケーターウィンドウは入れ替えることができません:すべてのインジケーターを削除してから、正しい順序でセットする必要があります。

IMHOは、最も有用なものではありません。

複数のインジケーターを設定するには、メニュー-メニュー-インジケーターの選択を何度も行う必要があります。しかも、なぜか指標のListというツールがあり、この場合、簡略化されず、新しいものが出てこない...。

ナビゲーター、お気に入り、テンプレート、プロファイルがあります。すべてがセットアップ可能です。端末のヘルプを読むと、新しい発見がたくさんありますよ。

https://www.mql5.com/ru/docs/basis/types/integer/enumeration - 転送に関するヘルプ記事。その正体も、見た目もはっきりしている...。でも、どう使えばいいのか、どんなメリットがあるのか。言葉で書くのが面倒なら、簡単な例を挙げてください。

列挙は、コードを読みやすくするため、定数を削除し、人間に馴染みのある実体に置き換えるために使用されます。

例えば、列挙型ENUM_DAY_OF_WEEKの値は、構造体MqlDateTimeの値day_of_weekと比較するために使用することができます。すなわち、次のように書くことができます。

        MqlDateTime dt;
        TimeCurrent( dt );
        if( dt.day_of_week == 0 )
           {
            // Что-то делаем в воскресенье
           }

あるいは、違う書き方を することもできます。

        MqlDateTime dt;
        TimeCurrent( dt );
        if( dt.day_of_week == SUNDAY )
           {
            // Что-то делаем в воскресенье
           }

SUNDAYはint型の名前付き定数で、値は0です。

コードを読む人にはどうしたら分かりやすいと思いますか?
Документация по MQL5: Основы языка / Типы данных / Целые типы / Перечисления
Документация по MQL5: Основы языка / Типы данных / Целые типы / Перечисления
  • www.mql5.com
Основы языка / Типы данных / Целые типы / Перечисления - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Alexey Kozitsyn:

コードを読みやすくするためにリストを使用する

もうひとつ、限りなく便利なアプリケーションがあります。例えば、こんな感じです。

enum ENUM_OPEN_DIRECTION {
     OPEN_BUY,       // только Buy
     OPEN_SELL,      // только Sell
     OPEN_BOTH,      // Buy + Sell
     OPEN_NONE       // не торговать
};
input ENUM_OPEN_DIRECTION  Trade_Direction = OPEN_BOTH;    // Направление торговли:

そして、ユーザーは、あなたがそこに書いたコメントの中から、「買うだけ」「売るだけ」など、4つの項目を選択できるドロップダウンリストを取得します。ユーザー設定ウィンドウで、一連の指標、タイムフレーム、条件などをリストアップするのに非常に便利です。