コーディングのヘルプ - ページ 359

 
apprentice coder:
クローズした注文(すべての情報を含む)をクローズ時間の降順でソートするにはどうすればよいですか?

クローズ時間とチケット番号を格納する2次元の配列を作成し、それをソートする必要があります。しかし、メタトレーダーは2次元以上の配列をソートできないので、その2次元配列のためにカスタムソート手順を用意する必要があります(どんなソートアルゴリズムでも 構いません:私は、あなたが数千のクローズドオーダーを持つつもりはないと仮定しています)。

 
mladen:
2次元の配列に、クローズ時間やチケット番号を入れて、ソートする必要があります。しかし、メタトレーダーは2次元以上の配列をソートできないので、その2次元配列のためにカスタムソート手順を用意する必要があります(どんなソートアルゴリズムでも構いません:数千のクローズドオーダーを持つつもりはないと仮定しています)。

このようなソート機能の 例はないでしょうか。

 

Mladenさん、Mastercashさん、こんにちは。

オリジナルとMladenのアップデートの両方が動作するようになりました...しかし、私は特別なことはしていません...私が以前に言ったようにデフォルトを使用しただけです...(それが役に立つならビルド670を使っています)。

そしてMladenの修正されたチェック・ スニペットは機能しているようです...現在のバーで1つのトレードに限定して...。

しかし、このEAテンプレートには他の問題もあり、そのため私は新しいEAテンプレートにインジケータとストラテジーを移植することを提案しました。

例えばこんな感じです。

どちらのバージョンも売買(例えば買い)をトリガーしていますが、その買いの取引条件は決してクリアされないようです。

つまり、買いがトリガーされた場合、EMAが何度クロスしても、テスターの実行はすべて買いなのです。これは売りの場合も同じです...。何があっても同じ条件のままのようです。

もし参考になるならスクリーンショットを掲載しますが、新しいEAテンプレートで始めた方がいいかもしれません。

お二人のお役に立てれば幸いです。

ロバート

PS - 試しにトレード条件をEMAのクロスだけに短縮してみました。他の取引条件が問題を起こしているかどうかは確認しませんでしたが、EMAの交差は、このEAがどのように機能するかを確認するのに十分な取引を与えてくれました(上記説明の通り)。

 

マスターキャッシュとムラデン...。

このEAのトレード条件を示すために、いくつかスクリーンショットを撮ってみました...。

全て買い」と「全て売り」がはっきりと見えますね。

トレードコードブロックがなぜいつも(-1)を返すのか、よく理解できませんが、何かがトレード条件を同じに保っています...。

だから、新しいEAテンプレートを推奨する方が簡単で良いように思えたのです...。

トレード例を添付しますので、問題を解決するための解決策を見つける手助けになればと思います。

ロバート

ファイル:
 

コズミックライフフォーム

このテンプレートは私の経験では...mladenが編集したものは私のチャート上では全く取引すらできません。

cosmiclifeform:
MastercashとMladen....

このEAの取引条件を示すために、いくつかスクリーンショットを撮ってみました。

全て買い」と「全て売り」がはっきり見えますね...。

トレードコードブロックがなぜいつも(-1)を返すのか、よく理解できませんが、何かがトレード条件を同じにしているのでしょう......。

だから、新しいEAテンプレートを推奨する方が簡単で良いように思えたのです...。

トレード例を添付しますので、問題を解決するための解決策を見つける手助けになればと思います。

ロバート

 
Mastercash:
Cosmiclifeform これは私のテンプレートでの経験ですが、mladenが編集したものは私のチャートでは全く取引できません。

そして、私のテストではどちらのバージョンも取引しません。オリジナルも変更されたものも(私は通常1分足のEURUSDをクイックテストに使うのだが、このEAでは全く注文が出なかった - エラーメッセージも警告もない。)

みんな、そのEAは、メタトレーダーコンパイラが私が思っていたよりも多くのバグを持っていることを教えてくれた:39から49の行をチェックしてください - 彼らはそこに意味がない、完全に意味がない(どんな関数の 本文の外でiMA()を呼ぶことは普通ではない - そしてコンパイラは全く何の警告も出さなかった)。

_______________________________

もし、その行のコードがcheck_signal()関数に移動されれば、ロングとショートの両方のポジションを開くことができます:):)

 

これらの行をcheck_signal()関数に移動させたときの結果。

元のEAの同じ関数に移動させると、取引も開始されます。

上記の例でテストしたもの:nicetrader_1.02.mq4

ファイル:
 

Mladenです。

私が送ったオリジナルはmake tradeなのですが、EURUSDで買おうとすると、買い条件が終わってもそのEURUSDの買いを取り続ける・・・これがまた下に添付されているものです。

mladen:
マスターキャッシュ

そのEAは、そのチェックを外しても注文を開きません(つまり、追加されたコードの部分を削除しても注文は開きません)。また、テストしたところ、投稿されたもの(オリジナル)は注文を開きません。

投稿されたバージョンは、全く取引されなかったのでしょうか?
ファイル:
nicetrader.mq4  26 kb
 
Mastercash:
Mladenさん、私が送ったオリジナルはmake tradeですが、例えばEURUSDで買いを入れると、買い条件が終わってもそのEURUSDの買いを取り続けます...これは下にもう一度添付します。

マスターキャッシュ

https://www.mql5.com/en/forum/174385/page239(確認してみてください。あなたが投稿したものには、コードのコメントアウトされた部分がありません。)これは、ここに投稿されたものではありません。

とにかく、これか、あなたの投稿の前に投稿したものを使えば、すべてのポジション(ロングとショート)を開くことができます。

ファイル:
 

ムラデンです。

このテンプレートが正しく動作するようになれば、多くの人が新しいmt4ビルドでeaを動作させるためのテンプレートを用意することができます。

mladen:
マスターキャッシュ

https://www.mql5.com/en/forum/174385/page239(確認してみてください。あなたが投稿したものには、コードのコメントアウトされた部分がありません。)それはここに投稿されたものではありません。

とにかく、これか、あなたの投稿の前に投稿したものを使えば、ロングもショートもすべてのポジションを開くことができます。