いいねありがとうございます。しかし、私はhttps://forum.mql4.com/270509 - エラーを表示することができません。また、あなたのコードを投稿することができます。Javaとmt4は私が使いたいものですが、コードを見る必要があります。
リンク先を修正しました。https://www.mql5.com/en/forum/121466
MQLとJavaのコードはZIPファイルに含まれています。
これは素晴らしいツールです。
どういうわけか、うまく動作させることができません。
EAを実行するとMT4がクラッシュしてしまいます。
Windows 7 64bit, Java 7.0.1, MT4 ver4.00 build 409 25 oct 2011 を使用しています。
java is installed here C:\jrebin╱jvm.dll
mt4 is installed here C:↵MT4
Windowsでは以下のようなエラーメッセージが表示されます。
Problem signature:
問題イベント名: BEX
アプリケーション名: terminal.exe
アプリケーションのバージョン: 4.0.0.409
アプリケーションタイムスタンプ: 0028f000
障害モジュール名: MSVCR100.dll
障害モジュールのバージョン: 10.0.30319.1
障害モジュールのタイムスタンプ: 4ba1dbbe
例外オフセット: 0008ae6e
例外コード: c0000417
例外データ: 00000000
OSバージョン: 6.1.7601.2.1.0.256.1
ロケールID: 2057
追加情報1: a0db
追加情報 2: a0db43c64a51ee21486e76f538ab825d
追加情報 3: 5a50
追加情報 4: 5a50e927a493324cabb3491f7239cdd1
当社のプライバシーステートメントをオンラインでお読みください。
http://go.microsoft.com/fwlink/?linkid=104288&clcid=0x0409
オンラインのプライバシーステートメントが利用できない場合は、オフラインでプライバシーステートメントをお読みください。
C:↵Windows↵US↵Errorofflps.txt
。
MT4ターミナルがクラッシュした原因は、以下の2つが考えられます。
1.64ビットJVMを使用している
MT4は32ビットアプリケーションであるため、これは動作しません。Win7-64bitに32bitのJVMをインストールし、MT4と一緒に使用できるようにする必要があります。
JVM Versioncheck should not show "64 Bit"
C:\jrebinjava -version
Java(TM) SE Runtime Environment (build 1.6.0_30-b12)
Java HotSpot(TM) 64-Bit Server VM (build 20.5-b03、ミックスモード)
これまで、Java6のみで動作確認をしてきました。もしかしたら、Java7では、クラッシュの引き金となるような変更があるのかもしれません。
cyberflohr さん、こんにちは。
私はMTの初心者ですが、Javaの経験はあるので、ブリッジは私にとって非常に興味深いツールです。おっしゃるとおりインストールはすべて行ったのですが、サンプルを起動することができませんでした。エキスパートログには以下のように記録されています。
20:53:13 mt4jSample EURUSD,H4: ロードに成功しました。
20:53:13 mt4jSample EURUSD,H4の入力です。IntProperty=99; BoolProperty=true; DoubleProperty=1.23; StringProperty="helloWorld "です。
20:53:17 mt4jSample EURUSD,H4: cannot load library 'mt4j.dll'(エラー126)
20:53:17 mt4jSample EURUSD,H4: エキスパートが停止しました。
20:53:17 mt4jSample EURUSD,H4: 初期化されました。
20:54:27 mt4jSample EURUSD,H4: ロードに成功しました。
20:54:27 mt4jSample EURUSD,H4: ライブラリ 'mt4j.dll' をロードできません (エラー 126)
20:54:27 mt4jSample EURUSD,H4: エキスパートが停止しました。
20:54:27 mt4jSample EURUSD,H4: 非初期化されました。
20:54:27 mt4jSample EURUSD,H4: uninit reason 1.
20:54:27 mt4jSample EURUSD,H4: 削除されました。
原因は何でしょうか?
Cyberflohrさん、こんにちは。
mt4jv0.2をインストールするためにあなたの指示に従いましたが、MT4プラットフォームで報告されたいかなるエラーも得ませんでした。しかし、SampleEA.javaを見ると、MT4BasicClient.javaの記述によると、EA初期化時に実行されるようなメソッドがあるようなのです。
のコードは、SampleEA.javaにあります。
オーバーライド
public void init() {
System.out.println("init()")。
}
MT4BasicClient.javaに記述されています。
/**
* initフェーズでMT4クライアントによって呼び出されます。
*/
これらのコードから、初期化中に出力されるものがあると思いますが、MT4プラットフォームでは、「init()」メッセージが出力 されるのを見ませんでした。私はコードを正しく理解しているのでしょうか?
また、注文をするために別のデモを与えることができますか?
どうもありがとうございました。
こんにちは。
126エラーは、MT4がDLLファイルを見つけられないという意味です。正しい名前で呼び出していると仮定して、それは主に/experts/libraries/フォルダにある必要があります。他の場所でも構いませんが、ここが最良の場所です。
これが助けになることを願っています。
ありがとうございました。
ブルッキー
正しい - mt4j.dll は、libraries フォルダーにありません。
メタトレーダーのインストールフォルダーが c:\program files
c:\program files︓Metatrader︓Sample.ex4
c:\program files︓Sample.mq4
c:\program files︓Metatrader︓Experts︓Libraries︓Mt4j.dll
c:\program files︓Metatrader︓Experts︓Libraries︓Mt4j.ex4 c:\program files︓Experts︓Mt4j.ex4properties
c:\program files ﹑Metatrader﹑Libraries﹑Sample.jar
PS: check the bridge logfile for further informationations about the error
c:\program files ﹑Metatrader﹑Libraries﹑Limitem4j.log
Cyberflohrさん、こんにちは。
mt4jv0.2をインストールするためにあなたの指示に従いましたが、MT4プラットフォームで報告されたいかなるエラーも得ませんでした。しかし、SampleEA.javaを見ると、MT4BasicClient.javaの記述によると、EA初期化時に実行されるようなメソッドがあるようなのです。
のコードは、SampleEA.javaにあります。
オーバーライド
public void init() {
System.out.println("init()")。
}
MT4BasicClient.javaに記述されています。
/**
* initフェーズでMT4クライアントからコールされます。
*/
これらのコードから、初期化中に出力されるものがあると思いますが、MT4プラットフォームでは、「init()」メッセージが出力されるのを見ませんでした。私はコードを正しく理解しているのでしょうか?
その上、あなたは注文を置くために別のデモを与えることができますか?
どうもありがとうございました。
数日中に、いくつかの取引を行う、より複雑なサンプルを用意する予定です。
よろしくお願いします。
サイバーフロアー
- 無料取引アプリ
- 8千を超えるシグナルをコピー
- 金融ニュースで金融マーケットを探索
私はJAVAプログラマーで、1年前からMT4を使っています。MQLは非常にシンプルで習得しやすいのですが、この言語でコーディングするのは本当に骨が折れるものがあります。数週間前、Javaで書かれたロジックコードを私のメタトレーダーEAに簡単に統合することを考えました。私はインターネットとこのフォーラムで解決策を探し、いくつかの興味深いツール(MT4-Java API https://forum.mql4.com/27050, Java Class to DLL converter, ...)を見つけました。) しかし、すべてに長所と短所があり、私は自分自身でMT4-Java統合を書くことにしました。
私のソリューションには、以下の4つの必須要件がありました。
1. 簡単なインストール2. JAVAコードのデバッグ機能
3. スピード
4. MT-Terminalと他のプロセスとの間のネットワーク通信がないこと
私にとって重要でないことの一つは、JavaコードからMT4の機能(インジケータ、取引機能)を呼び出す必要があることです。テクニカル分析には、www.ta-lib.org からのオープンソースライブラリを使用しており、注文処理は依然として MQL コードで行われています。Javacodeは、買いと売りのタイミングをMQLコードに通知するだけです。
必要なものは、MetaTrader、インストールされたJVM(1.6)、そしてMQLコードとJVMコンテナ用のDLLを含む添付のZIPファイルだけです。ZIPファイルをMTのインストールディレクトリにコピーし(ディレクトリ構造はそのまま)、mt4j.propertiesファイルを編集して、jvm.dllファイルへのパスを調整する。以上で、mt4Sample EAを実行することができます。
Sampleの実装は何もしません。これは、何が可能かを示すためのスケルトンに過ぎません。 MT4BasicClient.javaとSampleEA.javaの中のコメントを読んでください。 JAVA のソースは、mt4jSample.jar に含まれています。 自作クラスは、MT4BasicClientインターフェースを実装するか、AbstractBasicClientを継承 する必要があります。自作クラスのあるディレクトリまたは JAR ファイルをクラスパスに追加することを忘れないでください(mt4j.properties を参照)。
あなたのJavaクラスは、端末のプロセス内で実行されるJVMによってロードされ、実行されます。これにより、最適なパフォーマンスを得ることができます。MTのバックテスト中にprocessTick()が何回実行されたか、パフォーマンス・テストをしてみました。1秒あたりの平均呼び出し回数は400.000回/秒で、私のニーズには十分な速さだと思います。
JVMはデバッグポート8001を作成するように設定されているので、お気に入りのIDEを使用してコンポーネントをデバッグすることができます。私の小さなMT4-Javaブリッジを試すためのすべてのリソースは、この投稿に添付されています。
楽しんでください :-)Cyberflohr