MT用のPythonトレーディングシステムを作る。 - ページ 4

 

これで準備が整いましたので、いよいよPython TSとMT端末を連携させます。しかし、そのためには、いくつかのアクションが必要です。

しかし、MT端末は、MQの気まぐれで、C: \<much letters and numbers>Filesという自分のディレクトリにしかファイルを読み書きできません。もちろん、Pythonのコードで設定を変更し、ネイティブのMQフォルダにスワップさせることもできますが、私はターミナルがそこからファイルを読み書きする必要があり、ターミナルが望んでいる場所にはできません。今後、より一層、必要になってくるでしょう。

実は、この問題は、数年前に、私のトピック -https://www.mql5.com/ru/forum/79922 で解決しています。

全てはWindowsのツールで解決する。TerminalのフォルダC:<<a lot of letters and numbers>> \Filesに、フォルダC:<<PyTS>>への参照を入れると、ターミナルは(OSも)サブフォルダFilesPyTSとして解釈し、ターミナルはそこに、本来のものと同様にC:<<PyTS>>に書き込みをします)。

これは、WindowsネイティブのMKLINKユーティリティを使用して、コマンドラインから実行されます。自分でできない人のために、ここで詳しく説明します。

実行-cmd、またはメニュー-ユーティリティ-Windows-コマンドプロンプトと入力します。MKLINKまたはmklinkと入力するウィンドウが表示されます。ここにあります。


ここでcd...と数回タイプし、C:Ⅾを表示させます。

そして、Windowsのエクスプローラーを開き、ターミナルがファイルを置いているC:㊧に行き、パスを選択しコピーするCtrl-Ins。

コマンドプロンプトウィンドウに戻り、そこでcd <space>と書き、Shift-Insで...へのパスを貼り付けます。\をクリックし、Enter。私たちはそれを理解しています。

ここで、コマンドラインに - mklink /D PyTS c:\PyTS , と書き、いつものように - Enter します。ここで、私たちはそれを手に入れます。

リンクが作成されたことが確認できます。フォルダ......㊧に出現したことがわかり、アクセスしてみると......フォルダC:㊧にファイルが表示されます。))それだけです。

これで、terminalで...FilesPyTSというフォルダに書き込まれたファイルは全て、実際にはC:FilesPyTSというフォルダに書き込まれることになります。

.

RAM Диск.
RAM Диск.
  • 2016.04.07
  • www.mql5.com
Общее обсуждение: RAM Диск.
 
だから、ファイル共有はもういいんです。すべて動作し、すべてのソースは添付ファイルにあります。それ以外も、PythonからMTへの逆転送も、すべて同じ方法で行っていますので、特に問題はないかと思います。実行するには、前回の投稿を読んで実行します。それ以外の方法はない)

MQLのコードも添付ファイルにあります。- MQLは履歴を読み取り、Pythonアプリケーションに渡します。Pythonはそれを受け入れてプリントします。Pythonでは、スタートボタンを押すことを忘れないでください。)

MQLのコードにコメントを書く必要はないかな~、リファレンスがあるし)。MTからのデータ転送はタイマーで行うので、現段階ではその方が都合がいいのです。

ご不明な点があれば、遠慮なくお電話ください)。

一旦、中断します。今度は、戦略で問題を解きましょう。何かご提案があれば-検討します)。

繰り返しになりますが、ファイル共有は修正に手間がかからないため、戦略 策定やデバッグに 最適です。ほとんどの実戦的な戦略には、やはり適しています。しかし、必要であれば、プログラムに大きな変更を加えることなく、いつでも他のものと交換することができます - 1〜2日のことです。

ファイル:
PyTS.zip  4 kb
PyTSMT.mq5  7 kb
 

頻繁に書くことを約束するわけではなく、手に入った時だけ書きます。プロジェクトは、ほとんど時間をかけずに水面下で進められています。

グラフを表示するシステムも良いと思った。

一般に、Pythonはシンプルな言語なので、2〜3日勉強すれば十分です。しかし、モジュールを扱うのはもっと大変で、何千ものモジュールがあり、誰が何をするのか、なぜするのかが必ずしも明らかではありません。 グラフィックについては、そのようなことがあり、私は長い間それを解決する必要がありました。しかし、結果は次のようになります。

CSVファイルを読み込み、グラフを描画するプログラムです。

ローソク足約5万本分の価格をクローズ単位で表示したチャートです。

虫眼鏡をクリックして、このようにチャート領域で矩形を選択すると。

をクリックすると、グラフが拡大 表示されます。

これは繰り返し行うことができます。チャートの移動や画像保存も可能で、もちろん全画面拡大も可能です。

必要なファイルはすべてアプリケーションに含まれています。zipを任意のフォルダに解凍し、CSVGraph.pyを実行します。

実行する前に、インポートしたいモジュールがインストールされているかどうかを確認することを忘れないでください。

ファイル:
CSVGraph.zip  582 kb
 
Pythonの練習として、でしょうか。しかし、実用的な観点からは、ほとんど役に立たない+時間の無駄である。もちろん、人それぞれのやり方があります。グッドラック
 

おバカなことはご近所さんや素人の音頭取りに任せて、自分たちで速報をまとめましょう。

すでにご存知の方は プロであれば、すでにPythonをある程度知っていて、CSVファイルの扱い方も知っていて、チャートを作ったり、ターミナルでデータをやり取りする方法も知っているはずです。これだけでもすでに、取引戦略の開発、シミュレーション、テストには十分です。ティックを使用せず、5~10秒間隔でターミナルにアクセスし、TF1分以上のストラテジーを動作させている場合、すでにPhytonで直接動作するストラテジーを作成し、データの配信と注文の「実行」だけをターミナルに任せている可能性があります。

それに、あなたはすでにプログラミングとPhyton環境を知っていて、機械学習の地元の謝意者の間で人気のあるRという言語と環境を超えるレベルです。すでにPythonで非常に複雑なインジケータ戦略まで構築できるようになりますが、Pythonのすべての機能(Rと同様)はモジュールを使って実装することができます。このトピックでは、tkinter、numpy、matplotlibの3つのモジュールだけを使用しました。

さて、Pythonがより高度な戦略を構築するために必要なのは、例えば機械学習を利用することです。このとき、-scikit-learn モジュールを使用することができます。scikit-learnを 使用することで、以下の機能が利用可能になります。メソッドのセットはいかがでしょうか?- RやMachine Learningのトピックでは馴染みのない、ベイズ分類からランダムフォレスト、ニューラルネットワークまで、すでにかなりのものが揃っています。

これはPythonの機械学習モジュールのひとつに過ぎず、十数種類ある。scikit-learn モジュールは、その中でも特に優れているわけでもなく、先進的でもないと言われています。それは、誰が何を必要としているかによります。その他は、インターネットで検索すればすぐに見つかります。


PS Pythonを始める人、これから始める人へ。

いくつかのPython開発環境を試しましたが、(私も含めて)初心者に最も便利なAnacondaで止まって います。便利なのは、Pythonをはじめ、必要なものがすでにインストールされていることです。私はAnacondaと 一緒にインストールされたSpyderを 使用しているエディタです。 また、VSCodeエディタをインストールすることをお勧めします。

私の選択に納得がいかないかもしれません。

 
4ページのトピックを経て、ようやく記載されている内容、つまりPythonでのストラテジーに移ることができました。そのための準備は、すでにすべて整っているのです。
EMAの交差を利用した取引というシンプルな戦略から始め、場合によっては修正を加えることもあります。
私がニューラルネットワーク(NS)をマスターしたとき、NSはEMAの交叉点を特定するというシンプルなタスクから始めました。このタスクは、実務的には全く役に立たないのですが、NSにどのようにマーケットデータを与えるか、それをどのように準備するか、トレーニングの多くの問題を解決することができました。
今、私たちの仕事は、利益を上げることではなく、端末と通信することでもない。単純なことだが、利益を上げる戦略がなければ意味がないのだ。私たちの課題は、ストラテジーのテンプレートを作成し、それをテストする方法を学ぶことですが、どんなストラテジーでも構いません。そして、テンプレートに任意のストラテジーを入れてテストし、うまくいけば、ターミナル経由で取引を開始することができます。

必要な指標はすべて揃っている。Pythonで作成した図をご覧ください(Pythonでは、あらゆる種類のグラフを高速に描くことができ、非常に便利です)。これは、1回のジャンプに対する応答-1(t)、つまり過渡的な関数である。実は、標準テストの1つ。


fmは従来の移動平均(キャリブレーションにのみ使用)、f1は係数計算を変更したEMA、f2は非標準の指標です。

しかし、共通の知人がよく言っていた。

Igor Makanu:

何度も言っていることだが、おそらくもう一度言うだろう...。MT供給による指標(標準的な...つまり古いスラブ系の指標...異教徒!!)より優れたものは誰も発明していない。

そこで、科学で頭を誤魔化さないために、定番のEMAや攻略ソースを入手します。しかし、私のインジケータでストラテジーを作ってテストしてみます。もしかしたら、他のものを詮索されないように、しかし機能を損なわないように隠しておくかもしれません。

しかし、これはEMAの横断のためではありません。すべての目的は、機械学習戦略です。今のところ、さまざまな分類方法を試しています。そして、これがテスト結果です。

今のところ、ガウシアン、RBF SVM、ニューラルネットワーク、ナイーブベイズが上位を占めています。Pythonのプログラムはすでに出来上がっていて、インターネットのどこかに公開されていますが、データの準備はユーザー次第です。

さあ、行こう。

 
Yuriy Asaulenko:
4ページのトピックを経て、ようやく記載されている内容、つまりPythonでのストラテジーに移ることができました。そのための準備は、すでにすべて整っているのです。
EMAの交差を利用した取引というシンプルな戦略から始め、場合によっては修正を加えることもあります。
私がニューラルネットワーク(NS)をマスターしたとき、NSはEMAの交叉点を特定するというシンプルなタスクから始めました。このタスクは、実用的な観点からは全く役に立たないものですが、NSに市場データをどのように供給するか、どのように準備するか、多くのトレーニングの問題を解決することができました。
今、私たちの仕事は、利益を上げることではなく、端末と通信することでもない。単純なことだが、利益を上げる戦略がなければ意味がないのだ。私たちの課題は、ストラテジーのテンプレートを作成し、それをテストする方法を学ぶことですが、どんなストラテジーでも構いません。そして、テンプレートに任意のストラテジーを入れてテストし、うまくいけば、ターミナル経由で取引を開始することができます。

必要な指標はすべて揃っている。Pythonで作成した図をご覧ください(Pythonでは、あらゆる種類のグラフを高速に描くことができ、非常に便利です)。これは、1回のジャンプに対する応答-1(t)、つまり過渡的な関数である。実は、標準テストの1つ。


fmは従来の移動平均(キャリブレーションにのみ使用)、f1は係数計算を変更したEMA、f2は非標準の指標です。

しかし、共通の知人がよく言っていた。

そこで、科学で頭を騙さないために、標準的なEMAと攻略の元となるものを入手します。しかし、私のインジケータでストラテジーを作ってテストしてみます。もしかしたら、他のものを詮索されないように、しかし機能を損なわないように隠しておくかもしれません。

しかし、これはEMAの横断のためではありません。すべての目的は、機械学習戦略です。今のところ、さまざまな分類方法を試しています。そして、これがテスト結果です。

今のところ、ガウシアン、RBF SVM、ニューラルネットワーク、ナイーブベイズが上位を占めています。Pythonのプログラムはすでに出来上がっていて、インターネットのどこかに公開されていますが、データの準備はユーザー次第です。

さあ、行こう。


ニューラルネットワークに切り替えたのは残念です。しかし、ほとんどは非常に便利だと思います。

トレーディング、自動売買システム、ストラテジーテストに関するフォーラム

機械学習ロボット

ユリイ・アサウレンコ さん 2018.09.21 00:45

それはないでしょう。最大でも以前と同じようにやってくれる。


 
Sergey Chalyshev:


ニューラルネットワークに切り替えたのは残念です。しかし、ほとんどは非常に便利だと思います。

このスレッドではNSなどMoD方式への切り替えは予定していません。今のところ、少なくとも)。見てみよう。

ここで行われているのは、Pythonのシステムテンプレートです。このテンプレートへの具体的な記入は、特定のユーザーの問題である。

まあ、Pythonのライブラリの能力を示すことは、余分なことではないと思っています。

 
PS そうそう、FORTS(MOEX)のストラテジーを全部やります、とは言っていないんですよ。FXのOCで遊ばない。
 
ゲームの続きをしよう。今日現在、準備が整い、機能しています。
2.ストラテジーテンプレートを使用する。
3.シンプルなEMAクロス戦略がテンプレートに配置されています。

プログラムを起動すると、ストラテジーがテストされ、全取引のレポートがCSVファイルに保存され、利益グラフがコンソールに表示され、ディスクに保存することができます。


テストはSBER MOEX先物、3M間隔、1Mタイムフレーム、合計〜55000本のローソクを使用して行われました。ストラテジーでは、終値のローソク足のみが使用されました。テスト時間は、番組開始から1分程度です。これは1本のロウソクにつき、約1msです。
SBER先物用ヒストリを含む必要なプログラムファイルが入ったフォルダを添付します。
プログラムを実行するには - main.py ファイルを実行します。実行する前に、Pythonに必要なパッケージとモジュールがすべてインストールされていることを確認してください。Anacondaで実行している場合、必要なすべてのパッケージ-モジュールはすでにインストールされています。
基本的には、テンプレートに戦略を書き込んで、テストしてみましょう。
さて、この技術の応用をどうイメージするか。
Pythonプラットフォームで実績のあるニューラルネットワークを使った戦略を、おそらく少しバージョンアップして翻訳することになりました。これにより、Pythonで利用可能なML技術の応用を習得し、端末に接続し、直接運用を開始することが最小限の費用で可能になります。私の場合、メインの取引プラットフォームはMOEXで、FXは補助的なものなので、MT端末への接続は、トピックの冒頭でテスト用のオプションとして想定していましたが、当面は予定していません。
しかし、このフォーラムには、やろうと思えばできる専門家が十分にいます。また、PythonのC APIは、同じRのC APIよりもはるかに簡単で、現地の専門家がうまく対処しています。
このテーマの目的は完全に達成されたと考えてよいでしょう。
ファイル:
Public.zip  683 kb