Сортировка простыми обменами, сортиро́вка пузырько́м (англ. ) — простой алгоритм сортировки. Для понимания и реализации этот алгоритм — простейший, но эффективен он лишь для небольших массивов. Сложность алгоритма: O(n²). Алгоритм считается учебным и практически не применяется вне учебной литературы, вместо него на практике применяются более...
1.標準の指標の中に、一見同じように見える2つのFractals 指標があります:Bill Williamsの 指標のあるセクションとCustomの セクションにあります。両者を比較すると、前者は最後のバーで新鮮なフラクタルがいくつか再描画される傾向があるのに対し、後者はループ中にi<rates_total-3、つまり1本のバーを残して独自のアルゴリズムでフラクタルが確認されるため、そのような不利はない。一方、フラクタル自体はアルゴリズム的に隣接する2本だけをチェックして形成されており、必要なら新しい、3本目が現れたときだけ完全に確認されるのである。I know the location of correct fractals:C:\Program FilesMetaTrader 5 NeitherMQL5 Indicators﹑Examples﹑Fractals.mq5, butiFractals does not know it, butiFractals knows the way to the old version that I can hardly find.Does it take the old code fromC:\Program FilesMetaTrader 5 accounts.
Urain さん、sergeev さん、回答ありがとう ございました。
配列にインデックスを書き込むことは知っていますが、もっと速い方法があるのではないかと思っていました。
バブル」選別というのは初めて知りました。で きれば、簡単な例でより詳しく、より良いものを教えてください。とにかくリンク集を読ませていただきます。
また、回答ありがとうございました。
http://ru.wikipedia.org/wiki/Сортировка_пузырьком
ちなみに、この記事ではインデックスのシェーカーソートを実装しています(ただし、私は習慣的にバブルソートと呼んでいます)。
シェーカー式はバブル式と異なり、バブル式が一方的に通過するのに対し、シェーカー式は交互に通過するため、バブルは浮くだけでなく沈むので、通過回数を減らすことで選別のスピードアップを図ることができます。
どの指標について聞きに来たか、3回当ててみてください。正解は「iFractals」です。意外でしょう?
Custom Indicatorshttps://www.mql5.com/ru/docs/customind のヘルプには、「例えば、current rates_total=1000 and prev_calculated=999 ならば、各インジケータバッファの1つの値に対してのみ計算を行う必要があるかも しれない」と書かれています。"しかし、これはすべてOnCalculate() 関数の呼び出しの最初の-短い-フォームに適用されます。一方、計算に関わるインジケーターバッファが複数ある場合、この形式は機能しません。
ヘルプにあるiFractalsの 例のコードをM 1で実行してみましょう。ここでは、OnCalculate() 関数呼び出しの2番目の完全な形式が使用されています。しかし、その前に、この関数の内部で、次のように修正しましょう。
Comment(comm);まで
Print(comm);は、出力されている行を見失わないようにするためです(そのままにしておくと、視覚的に常に1が表示されます。他の値は稀ですぐに1に置き換えられるため、常に1が出力されているように見えるからです)。実行後、非単位値が毎分、つまり新しいバーごとに発生していることがわかります。これは、インジケータが毎分再描画されていることを明確に示しています。余すところなく を使用しているにもかかわらず、このコードでは経済的アルゴリズム.疑う人は、数行のコードを追加して、例えば各フラクタルに縦線を描き、最初の描画の後にそれを削除して、1分後に新しいバーで同じ線のフルセットが現れるのを待てばよい。なぜか最後のフラクタルや線だけを描くということではありません。
開発者への質問:インジケータが不注意に書かれたのか、あるいはフラクタルの最後の-新しい-計算値だけを表示する目的がなかったのか? それとも、values_to_copy 計算のコードブロックを、全く存在しない経済的なアルゴリズムと 明るく混同してしまったのか? あるいはOnCalculate() 関数呼び出しのフルフォームで、意味のあるデータの開始を設定するために、const int beginのアナログを使うことは不可能なのか?
履歴の「穴」を埋めたり、過去のバーをロードしたり、prev_calculatedを ゼロにするようなイベントは、実験中には発生しないことに注意してください!つまり、指標全体の値を再計算する必要はない。
もちろん、この悪名高い倹約家アルゴリズムに対して、私自身は許容できる範囲のものを作りますが、この件に関する開発者の公式見解と、必要なら修正することが、ここでは重要らしいのです。
開発者への説得力のあるお願い(ちなみに、私が最初にお願いしたわけではありません):Fractals indicatorの旧バージョンを新しいものに置き換えてください。(参考: 旧バージョンでは、最も新しいフラクタルは最後のバーに表示されることがありますが (その結果、望ましくない再描画が発生することがあります)、新バージョンでは、最も新しいフラクタルは最新のバーの3本前まで表示されます).もちろん、手動で古いバージョンや新しいバージョンを チャートに描画することもできますが、コード内でiFractals ハンドルを参照しようとすると、古いバージョンのまま動作してしまうのです。このはずのバグを突き止めようと、テーブルに顔をぶつけないように、ワクワクしながらやっていた時間がどれだけ無駄になったことか...。
追伸: 全体を更新したのではなく、Live Updateを通してのみ 更新しました。その理由となり得るのか。何かコツはありますか?もしそうなら、完全にアップデートします。
開発者への説得力のあるお願い(ちなみに、私が最初にお願いしたわけではありません):Fractals indicatorの旧バージョンを新しいものに置き換えてください。(参考: 旧バージョンでは、最も新しいフラクタルは最後のバーに表示されることがありますが (その結果、望ましくない再描画が発生することがあります)、新バージョンでは、最も新しいフラクタルは最新のバーの3本前まで表示されます).もちろん、手動で古いバージョンや新しいバージョンを チャートに描画することもできますが、コード内でiFractals ハンドルを参照しようとすると、古いバージョンのまま動作してしまうのです。このはずのバグを突き止めようと、テーブルに顔をぶつけないように、ワクワクしながらやっていた時間がどれだけ無駄になったことか...。
追伸: 全体を更新したのではなく、Live Updateを通してのみ 更新しました。その理由となり得るのか。何かコツはありますか?もしそうなら、完全にアップデートします。
iCustom(...)を使用できない理由は何ですか?
開発者への説得力のあるお願い(ちなみに、私が最初にお願いしたわけではありません):Fractals indicatorの古いバージョンを新しいものに置き換えてください。(参考: 旧バージョンでは、最も新しいフラクタルは最後のバーに表示されることがありますが (その結果、望ましくない再描画になることがあります)、新バージョンでは、最も新しいフラクタルは最新のバーの 3本前まで表示されます).
1.どの新バージョンのことでしょうか?
2.2本ではなく、3本のバーをポーリングすることを妨げるものは何ですか?
など、何かがうまくいっていない。上記は、セルフテストのためにインストールしたCCFp.mq5のコードの一部です。自作のインジケータ(同じ原理で書かれたもの、つまりHandles→CopyBuffer)
動作しない(Print(buff[i])は何かクソみたいなものを示している。
お願い:もし解決策があれば、コードを送ってください。MT5 bild 555/.
今、端末が休憩後にサーバーと再接続している音がしたので調べたら、そうなんです、また不具合が起きているんです。
今、端末が休憩後にサーバーと再接続している音がしたので、調べたら、そうなんです、また不具合が起きているんです。
1.どの新バージョンのことでしょうか?
2.2本ではなく、3本のバーをポーリングすることを妨げるものは何ですか?
1.標準の指標の中に、一見同じように見える2つのFractals 指標があります: Bill Williamsの 指標のあるセクションとCustomの セクションにあります。両者を比較すると、前者は最後のバーで新鮮なフラクタルがいくつか再描画される傾向があるのに対し、後者はループ中にi<rates_total-3、つまり1本のバーを残して独自のアルゴリズムでフラクタルが確認されるため、そのような不利はない。一方、フラクタル自体はアルゴリズム的に隣接する2本だけをチェックして形成されており、必要なら新しい、3本目が現れたときだけ完全に確認されるのである。I know the location of correct fractals:C:\Program FilesMetaTrader 5 NeitherMQL5 Indicators﹑Examples﹑Fractals.mq5, butiFractals does not know it, butiFractals knows the way to the old version that I can hardly find.Does it take the old code fromC:\Program FilesMetaTrader 5 accounts.
2.何も、この解決策は当たり前のことで、もうほとんど使っていますよ。しかし、ここからが本題です。しかし、ジャンピングフラクタルに基づいてグラフィカルなTAを構築し、それに基づいて自動売買を行うと、場合によっては誤った操作(早すぎるポジションオープン)が発生することがあります。チャートツールのフラクタル再描画+再構築が発生すると、早まったポジションを除いてすべて修正されます。この場合、疑わしい信号と矛盾するため、取引の頻度が減少し、インジケータに他の複雑なバラストを追加するだけでなく、追加のフィルタ、チェックが必要になります。
原理的には、最後のフラクタルではなく、まだ疑わしく、描き直しが可能なマイナス1番目のフラクタルを使うことに、自首して同意することも可能だ。しかし、私にとっては、それは時に自分のコードの中に蓄積される、できれば存在してはならない松葉杖の典型例であり、マーケットから正しい情報を入手してコンストラクションを行うことの遅さについて述べているのでもないのです。
質問なのですが、インジケーターがインストールされている通貨ペアだけでなく、異なる通貨ペアのインジケーターデータを取得することは可能でしょうか?
など、何かがうまくいっていない。上記は、セルフテストのためにインストールしたCCFp.mq5のコードの一部です。自作のインジケータ(同じ原理で書かれたもの、つまりHandles->CopyBuffer)
動作しない(Print(buff[i])は何かクソみたいなものを示している。
要望:もし解決策があれば、コードを教えてください。MT5 ビルド 555/
うん、自力で解決したようだ。
管理者への質問:サイトからダウンロードしたのですが、ヘルプの例で(xxx=iMA(......))を使いましたが、MAは指標にはなく、includedにあります。知能検査なのか?
お忙しい中、申し訳ありません!