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

 
vlad_123:

もうひとつ、「便利な」技を見つけたので...。

int arrTemp[5];』のように、配列を宣言 する。

デバッガではすべての項目が0になりますが、テストでは0になりません。

MQL4から移植されたWinSockライブラリのconnect()関数がなぜ動かないのか、半日かけて調べました。

mql5では、すべての変数は明示的に初期化されなければならない、例えば。

int arrTemp[5] = {0};  // допускается такая сокращённая форма, вместо {0,0,0,0,0}

デフォルトではゼロで初期化されることはありません。 これは正常です、慣れてください。

 
MT4と MT5の 両方で、週足 チャートのバーが日曜日から始まる日付になっていることに気づきました。親欧米流なのでしょうか。それなら、どうせ世界中の週刊誌が月曜日に開くのなら、何の意味もないのでは?
 
MetaDriver:

mql5では、すべての変数を明示的に初期化する必要があります。

デフォルトではゼロで初期化されることはありません。 これは正常です、慣れてください。

別にいいんだけど、同じような仕組みになっちゃうから。デバッガでは、ゼロで自動的に初期化されます。

ところで、EAの最適化中に、端末がVPN経由でアクセスできるリモートエージェントに接続できないことに直面した人はいないのでしょうか?

Windows標準のVPNで企業ネットワークに接続された自宅から、仕事用のコンピュータでリモートエージェントを使おうとしています。私の仕事用コンピュータのエージェント自体は、MQL5 Cloud Networkからの タスクをうまく処理しています。自宅からRDP端末で仕事用コンピュータに接続し、自宅のコンピュータの端末でMQL5 Cloudからのエージェントを使用することが可能です。

使えないのは、自宅のPCから仕事用のPCのエージェントを使うことくらいです。オフィスPCの443ポートでエージェントを実行し、(理論上は)考えられるフィルター/ファイアウォールを回避することも試みましたが、うまくいきません。ターミナルに「エージェントに接続しています...」とログが残ります。- であり、それだけである。

自宅から職場へのTracertが通る。自宅のパソコンで 'netstat -na' をすると表示されます。

TCP    10.6.XXX.XXX:1744       10.6.YYY.YYY:2000       SYN_SENT

すなわち、SYN_SENTはそれ以上進まない。

Распределенные вычисления в сети MQL5 Cloud Network
Распределенные вычисления в сети MQL5 Cloud Network
  • cloud.mql5.com
Заработать деньги, продавая мощности своего компьютера для сети распределенных вычислений MQL5 Cloud Network
 
vlad_123:

唯一うまくいかないのは、自宅のパソコンから職場のパソコンにエージェントを入れることです。私は、(理論上)可能なフィルター/ファイアウォールを迂回するために、仕事用のコンピュータのポート443でエージェントを実行することも試みましたが、うまくいきませんでした。ターミナルに「エージェントに接続しています...」とログが残ります。- であり、それだけである。

自宅から職場へのTracertが通る。'netstat -na' をホームで表示します。

は、VPN接続の設定を深く見て、風向きのブランドマウア
 
vlad_123:

気にならないが、一律に使えるようにしてほしい。そうでない場合は、デバッガは自動的にゼロで初期化されます。

なぜかわからないけど、あるんです。 それが助けになることもあれば、いいものを見つけるのを邪魔することもある。
 
micle:
VPN接続設定の深堀り、Windowsブランドマウアー。

シャーマニズムのことなんだけど...。

自宅のパソコンのファイアウォールは完全に無効化されています。

職場のコンピュータの端末は自宅のコンピュータのエージェントを使用できますが、その逆はできません。

VPN接続に異常はありませんでした。

 
vlad_123:

シャーマニズムのことなんだけど...。

自宅のパソコンのファイアウォールは完全に無効化されています。

職場のコンピュータの端末は自宅のコンピュータのエージェントを使用できますが、その逆はできません。

VPN接続に異常は見つかりませんでした。

win7の場合、インバウンド/アウトバウンド接続のルールを追加してください。そこにはウィザードがあり、アドオンがある。win XPの場合、プログラムまたはポートに対して例外を追加するオプションもあります。長い間、XPを使っていない。
 
micle:
win7の場合、受信/送信接続のルールを追加してください。そこには、アドオンというウィザードがあります。win XPの場合、プログラムやポートに対して例外を追加するオプションもあります。長い間、XPを使っていない。

ハレルヤ!

やっとわかったよ...。

私の仕事用のコンピュータ(Win7)には、2つのMetaTrader 5インスタンスが異なるディレクトリにインストールされています(私が使いたいエージェントがあるところ)。

エージェントのインストール/削除の順番は覚えていませんが、エージェントはインスタンスN1から起動され、Windowsファイアウォールの「MetaTrader 5 Strategy Tester Agent」のInbound RuleがインスタンスN2のEXE片を指していたことが判明しました。インスタンスN1のルールを追加したところ、すべてうまくいきました。

エージェントマネージャでエージェントのアンインストール/インストールを行う際に、Windowsファイアウォールのルールを更新することができれば便利です。

まだ、未解決の 問題があるのです。WinSockのgetaddrinfo()関数を使ったホスト名→IPアドレスの解決についてです。どなたかMQL5でサンプルコードを作っていただけませんか?

ホスト名の代わりにIPを使うのはあまり問題ないでしょう ;-)。また、私の場合、ホストネームの使用は必須です。

 
vlad_123:
...

注意 - 質問:MQL5でこのアドレスのデータを取得する方法は?

このアドレスにアクセスして必要なデータを返す関数をDLLで作成する ))
 
kazakov.v:
このアドレスにアクセスして必要なデータを返す関数をDLLで作りたい ))

いや、合わない。

Expert Advisorは金融情報の分散処理用に開発されているので、わざわざx86/x64のDLLを使いたくないんです。つまり、MQL5のツールを使って実装する必要があるのです。