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

 

olyakish:

>そして、そこには利益を出した取引とゼロで決済した取引の2つがあるわけですが、エクイティはまだ変動していました。

実際には、セルイン(売り建玉)とバイアウト 売り建玉の決済)で構成される1つの取引です。

まさにこれは、In-ポジションをオープンし、Out-クローズするダブルディールです(私の記憶では、InOut-既存のポジションへのカウンターディールもあります)。

ルールは、ポジションは1つで、その中にいくつでも注文や取引をすることができます。

 
papaklass:

はっきりしないのは、次のようなことです。

2つの一価EAがあり、それぞれが独自のスレッドで、独自の連続したティックのセットを持つ単一の商品で動作しています。この連続する2組の刻みは、互いに独立しています。例えば、GBPUSDのティックが入る。EURUSDに影響を与えるか?EURUSDは、独自の独立したティックストリームで相場を配信しています。私は正しいのか、それとも何か間違っているのか?もし私が正しければ、なぜこの2つの独立したストリームを異なるコアに分散させることができないのでしょうか?それが、私にはよくわからないのです。

2つのExpert Advisorが異なるチャートを実行している場合、それらは異なるスレッドで動作するため、マルチコア機能の恩恵を十分に受けることができます。

並行テストということであれば、異なるフォルダから2つのクライアント端末を起動し、同時に2つのテストを実行することができます。エージェントは異なるコアで実行されます。

 
Interesting:

それは、In-ポジションを開き、Out-ポジションを閉じるという2つの取引だけです(私の記憶では、InOut-既存のポジションへの反対売買もあります)。

ルールは、ポジションは1つで、そこに好きなだけオーダーやディールを入れることができるというものです。



なるほど、ちょっと違うかな、と思いました。

私の場合、ポジションを開いて ポジションを閉じるという通常の(最小限の)サイクルが1回あります。

次に、ビッドオーダー-ディール-アスクのポジションを作成し、ビッドオーダー-バイの取引(セルクローズ)を行います。

実質的な質問-テスターの株式/バランスチャートについてコメントをお願いします。

 
papaklass:

ぶっきらぼうな言い方で申し訳ないのですが。単一のストリーム(金融商品)に関する(テキスト)ハイライトテストは理解できる。つまり、1つのシンボルで動作する1つのモノバルExpert Advisorがあります。ダニはその中で一貫して処理されるので、並列に処理する意味がないのです。なるほど。

はっきりしないのは、次のようなことです。

2つの一価のEAがあり、それぞれが独自のスレッドで、独自のツールを使って、連続したティックのセットで動作しています。この連続する2組の刻みは、互いに独立しています。例えば、GBPUSDのティックが入る。EURUSDに影響を与えるか?EURUSDは、独自の独立したティックストリームで相場を配信しています。私は正しいのか、それとも何か間違っているのか?もし私が正しければ、なぜこの2つの独立したストリームを異なるコアに分散させることができないのでしょうか?それが、私にはよくわからないのです。

ストリングス

もし、異なるチャートで動作する2つのEAについて話している場合、それらは異なるスレッドで動作するため、マルチコアの恩恵を十分に受けることができます。

並行テストということであれば、異なるフォルダから2つのクライアント端末を起動し、同時に2つのテストを実行することができます。エージェントは異なるカーネルで実行されます。

1. 異なるチャート(理想的には異なるシンボル)に配置されたEAが、マルチスレッド/マルチコアを本当にフルに活用します。また、従来の方法で複数の端末を動かすこともできます(例えば、複数の口座を取引する場合など)。

2.マルチスレッドというと、1つのExpert Advisorの中だけで作業することを意味します。同時処理をどのように、どのような手段で組織化するかは問題ではありません。

このような処理をこのフレームワークの中で整理することは意味がありませんし、(RenatやStringoが言って いたように)開発者にとってもエンドユーザーにとっても多くの問題を引き起こすことになります。

しかし、少なくとも理論的には解決策があるのです。

このような「マルチスレッド」は、少なくとも2つのステップを実行した後に可能となる(開発者はもっと良く知っているはずだ)。

a) 特定のイベントに対するパラメトリックハンドラ(新しいものを追加したり、既存のものを変更したりすることができる)。

b) Expert Advisor 内で(Expert Advisor のみ)いくつかのハンドラを同時に実行できるように、端末全体のアーキテクチャを変更すること。

そして、私の理解では、パラメトリックハンドラがなければ、話にならない。

3.開発者の立場からすると、ティックのパラメトリック処理の導入は未解決の問題である。しかし、導入にはさまざまな問題があるにもかかわらず、(実現を遠い将来に先送りした)そのような決断を下す可能性があるのです。その後のすべての実現は、ファンタジーの世界からであり、ここではもちろん、夢を見るだけである。

OnTickにパラメータを追加して初めて、文字ごとのtickを分割して同時に処理できるようになり、それまではこの実装は意味を持ちません。

追記

結論1 - まずOnTickにパラメータ(シンボル名で 十分)を付け、それが何のためにあるのか、という話の続きです。

Документация по MQL5: Предопределенные переменные / _Symbol
Документация по MQL5: Предопределенные переменные / _Symbol
  • www.mql5.com
Предопределенные переменные / _Symbol - Документация по MQL5
 
papaklass:
つまり、1人のテスター内で、たとえEAが多通貨であっても、1スレッド、1コアで、ティックが一貫している(インストゥルメントに関係なく)のです。そうだろ?

1. 既存のアーキテクチャにおけるチックは、メインツール(グラフツール)のみで処理される。従って、この方式は一貫していなければならない。

この場合のマルチカレンシーは、選択したシンボルで取引を実行できる一方で、Expert Advisor が他のシンボルや他の TF からデータを要求できることだけを示しています。

シングルテスト(およびExpert Advisorのすべての作業)は、1つのスレッドで順次実行されます。つまり、一度に1つのコマンド(コード行)しか実行できない。

Expert Advisorの最適化を 行う場合、異なるエージェント(すなわちカーネル)は、独自のパラメータと入力を持つExpert Advisorのコピーを受け取ります。

各エージェントはテストを順次実行するが、自分自身の中で順次実行する(他のエージェントはその作業を意識することもない)。この場合、エージェントは自分のタスクについてのみ知り、特定のテスターから受け取りエージェントに与えたすべてのタスクについてクラウドし、エンドユーザー/テスターはすべてのタスクについて知り、すべてのパスについて結果を受け取ります。

 
papaklass:
すなわち、EAが多通貨であっても、ティックはシーケンシャル(ツールに依存しない)、1スレッド、1コアである。そうだろ?

そうですね、人生と同じです。実生活では、すべてのチックは一貫しています。1つの時間の量子では、原理的に複数の刻みが存在することはありえない。

テスター内では2つのスレッドが動作しています。1つはターミナルとの通信用、もう1つはティックを処理しExpert Advisorをテストするスレッドです。

しかし、クライアント端末のアーキテクチャは、クライアント端末が1つのスレッドで刻みを受け取り、ツールごとに別々のスレッドに分散させるようになっている。さらに、各Expert Advisorは独自のスレッドで動作します。複数のコアがある場合、これらのスレッドはすべてコア間に分散されます。

テスターとターミナルのマルチカレンシーExpert Advisorは 常に1つのスレッドを使用しますが、その時点で他のスレッドがアイドル状態であることを意味しません。

 

こんにちは、MT5の注文システムで気になることがあります。ネット全般には反対しないが、5では生々しいと思う。MT5のピボットをうまく使って、反転が起こらなかった場合に相場にとどまる方法を考えているのですが、私の頭が悪いのか、その作業は不可能なのか、どちらかです。MQは議論したがらないということに気づきました。詳しく説明する必要があるのでしょうか?また、この質問にはどう答えるのでしょうか。

現在の受注体制です。

а.良好であり、変更することはありません。

б.改善の必要性

IMHO:今のところ、取引を組織化する方法は、PCが常にプロセスをコントロールすることのみです。しかし、これは負担と神経を使う。なぜ、こんな心配をしなければならないのか。関係があるのかないのか。私は意味のあるお金を市場に投資するつもりなので、それは私にとって重要なことです。

 
Vict:

こんにちは、MT5の注文システムで気になることがあります。ネット全般には反対しないが、5では生々しいと思う。MT5のピボットが起きていない場合に、相場にとどまるために、どうすればいいかを考えてみたのですが、私の頭が悪いのか、この作業は無理なのか、どちらかです。


プライベートでメッセージを送ってください、話し合います。
 
Vict:

...ここ数日、MT5のピボットをうまく作る方法を考えていて、ピボットが起きない場合にマーケットに いるようにしようと思っているのですが、私が馬鹿なのか、このタスクは不可能なのか、どちらかです。

反転が起きない場合は相場にとどまる」とはどういう意味ですか?問題のあるポジションをどう逆転させるか?
 

私は、波乱万丈の相場を見ています。第1波を見つけ、リバウンドでエントリーし、3を狙います。特定の順番に縛られることはないので、最初の波は上向きと下向きの両方が同時に起こるかもしれませんね。したがって、私が下か上にポジションを持っていて、反対側にシグナルが来た場合、反転する必要がありますが、過去のトレンドがキャンセルされるわけではありませんもし価格が最後の跳ね返りを超えたら、前のポジションを戻さなければなりません。紛らわしいでしょう、以下は写真です。

写真の説明

* 高値のシグナルが出たら、買いポジションを建 てる。

* 安値のシグナルが出たら、今は買いポジションを取る意味がない。4の私の行動は、レベル1で利益確定stopLoss、高位リバウンド後にtakeProfitです。その結果、相場が下がれば一部利食い、上がれば目標値である3を待つことになる。

*MT5で何をすればいいのですか?例えば、ポジションを逆にして利益を出した。相場が反発した場合、前回の買いを再開するにはどうすればよいですか?EAに任せるか(信頼性がない、このコマンドをサーバーに置きたい)?レベル1でBuyStopをペンディングにしておくべきか? しかし、価格が上のリバウンドより下に移動した場合、どのように削除すればよいのでしょうか?

ファイル:
x71ec4t1j4.png  15 kb