MetaTrader 5 Python User Group - メタトレーダーでPythonを使用する方法 - ページ 15

 
Maxim Dmitrievsky:

コマンドとパラメータのリストをセパレータで区切った文字列として渡すことができます。Expert Advisorがメッセージを解読すると、何をすべきか理解できます。


OrderSendコマンド ?

文字列のフォーマットは どうすればいいですか?文字列 ?ソケットの例では、mql5ソケットからの文字列がresultに 渡される: socketreceive(int sock,int timeout)...result+=CharArrayToString(rsp,0,rsp_len);...の 結果を返します

 
slukin:

OrderSendコマンド ?

文字列のフォーマットは どうすればいいですか?文字列 ?ソケットの例では、mql5ソケットのクライアントからの文字列がresultに 渡される: socketreceive(int sock,int timeout)...result+=CharArrayToString(rsp,0,rsp_len);. 結果を返します

OrderSend() ではなく、最初の3文字を含む文字列、例えば "BUY" と、それに続く引数リスト:lot, take, sl。 Expert Advisor は文字列を読み、最初の3文字 buy を見て、Trog Request を形成します。

つまり、アプリケーション間の簡単な交換プロトコルを、自由な形式で設計すればいいのです
 
Maxim Dmitrievsky:

OrderSend() ではなく、最初の3文字、例えば "BUY" を含む文字列と、lot, take, sl という引数のリストです。 Expert Advisor は文字列を読み、最初の3文字が買いであることを確認し、trog リクエストを形成します。

すなわち、アプリケーション間の単純な交換プロトコルを考えるだけで、自由な形式で


経験豊富な開発者の方の例を教えていただけると大変助かります。

 
Roffild:

もう本格的なPythonをターミナルに繋 いでいるのに、まだ動きの遅いソケットやパイプを使ってやり取りしているんですね。

あまり難しく考えずに、どの時間軸で1回のテストがどのくらいなのか?

つまり、テスターでの最適化時間がどれくらいなのか、間違った計算が可能なのか、ということに興味があるのです。

以前のコメントで、JAVAの背景知識がないと理解できないと書かれていましたね。

C#やPythonも多少知っていますし、MQL4,5でプログラミングもできますが、御社のライブラリは割と簡単に使いこなせますか?

 
slukin:

経験豊富な開発者の方の例を教えていただけると大変助かります。

後で記事があれば別だが、例を挙げて説明する時間はない

 
forexman77:

もし、どのような時間軸で1回のテストにどれくらいの時間がかかるかを書くことが難しいのであれば?

つまり、テスターでの最適化はどのくらいなのか、間違った計算はないのか、ということに興味があるのです。

以前のコメントで、JAVAの背景知識がないと理解できないと書かれていましたね。

私はC#とPythonを少し知っていて、MQL4,5でプログラミングができますが、御社のライブラリは割と簡単にマスターできますか?

Strategy Testerでの最適化は、通常のものと同じです。Pythonへの転送中にデータが破損して戻ってくることによる不正な計算は除外されます。転送はRAM経由で行われ、不安定なソケットやファイルを経由しないためです。

はい、私のライブラリには、MQL、Java、Pythonのコードを入れています。しかし、Apache Sparkなどが必要ない場合は、Javaを使う必要はありません。

 

MetaTrader 5 build 2055 beta: Pythonとの統合、C++のようなスコープ、ストラテジーテスターの大幅な改善

Terminal: Добавлено API для запроса данных из терминала MetaTrader 5 через приложения, использующие язык Python

Pythonは、スクリプトやアプリケーションを開発するための最新の高水準プログラミング言語です。機械学習、プロセス自動化、データ分析、可視化のための多くのライブラリが含まれています。

MetaTrader package for Pythonは、MetaTrader 5ターミナルから直接プロセス間通信を介して為替データを簡単かつ迅速に取得できるように設計されています。こうして得られたデータは、さらに統計計算や機械学習などに利用することができる。



コネクティング

  1. 最新版のPythonは、https://www.python.org/downloads/windows からダウンロードしてください。
  2. Pythonのインストール時に「Add Python X.X to PATH%」にチェックを入れると、コマンドラインからPythonでスクリプトを実行できるようになります。
  3. MetaTrader 5 モジュールをコマンドラインからインストールします。
    pip install MetaTrader5
  4. matplotlib と pytz パッケージの追加
    pip install matplotlib
    pip install pytz

機能

  • MT5Initialize- MetaTrader 5 ターミナルへの接続を確立します。
  • MT5Shutdown- MetaTrader 5ターミナルへの確立された接続を閉じます。
  • MT5TerminalInfo- 接続されているMetaTrader 5ターミナルの状態およびパラメータを受け取ります。
  • MT5Version- ターミナルのバージョン MetaTrader 5 を返します。
  • MT5WaitForTerminal- MetaTrader 5端末が取引サーバーに接続するまで待ちます。
  • MT5CopyRatesFrom- 指定された日付から MetaTrader 5 ターミナルからバーを受信します。
  • MT5CopyRatesFromPos- 指定されたインデックスから始まるバーをMetaTrader 5ターミナルから受信します。
  • MT5CopyRatesRange- MetaTrader 5 ターミナルから指定された日付範囲のバーを受信します。
  • MT5CopyTicksFrom- 指定された日付から始まるMetaTrader 5ターミナルからティックを受信します。
  • MT5CopyTicksRange- MetaTrader 5ターミナルから指定された日付範囲のティックを受信します。
Welcome to Python.org
Welcome to Python.org
  • 2019.05.15
  • www.python.org
The official home of the Python Programming Language
 

それで?その方向で動いている人はいるのでしょうか?熱意が感じられない。

グッドラック

 
Vladimir Perervenko:

それで?その方向で動いている人はいるのでしょうか?熱意が感じられない。

グッドラック

この中にはない。そして、NSのテストにはpythonを使っています。
 
Roffild:

テスターでの最適化はいつも通りです。Pythonとの転送時のデータ破損による不正な計算は、不安定なソケットやファイル 経由ではなく、RAM経由の転送であるため、除外しています。

はい、私のライブラリには、MQL、Java、Pythonのコードを入れています。しかし、Apache Sparkなどが必要ない場合は、Javaを使う必要はありません。

メモリ経由の方が速いのは同意しますが、ソケットやピップが安定しないのは納得いきませんし、コネクタを構成する際の異常なメモリ速度は、レイテンシー交換<---(中間サーバ可) ----端末があるので、1マシン内で数百ソケット連続でも過剰なほど...なのです。