アルゴリズム取引におけるPython - ページ 7

 

MetaTrader 5 の Python セットアップ



MetaTrader 5 の Python セットアップ

このビデオ チュートリアルでは、Python 用 MetaTrader 5 をインストールするプロセスについて説明します。これには、Anaconda プロンプトに「pip install MetaTrader5」と入力し、Python の MT5 パッケージから MT5Initialize() 関数を実行してインストールを確認することが含まれます。

 

Streamlit で Python と MetaTrader 5 を使用して Web アプリケーションを構築する




Streamlit で Python と Metatrader 5 を使用して Web アプリケーションを構築する

このビデオでは、Python、Streamlit、および MetaTrader 5 を使用して為替レートを表示し、ズームと時間枠のオプションを提供するリアルタイム チャートを作成する方法を示します。発表者は Pandas を使用してデータ フレームをインポートし、Plotly を使用してデータをプロットし、移動平均と相対強度指数を計算する関数を追加します。このビデオには、ズームを処理するためのスレッドと対話型のキーボード ショートカットが含まれています。プレゼンターは、コードのさまざまな機能とチャート上にオブジェクトを描画する機能の追加について説明し、アプリの説明でコードを共有してビデオを締めくくります。このチュートリアルでは、初心者向けにリアルタイム財務チャートの構築について簡単に説明します。

  • 00:00:00 このセクションでは、ビデオの作成者が MetaTrader 5、Python、Streamlit を使用して構築されたリアルタイム チャートを紹介します。チャートには為替レートが表示され、ズームイン、ズームアウト、時間枠間の切り替え機能が提供されます。 Python コードでは、Streamlit ライブラリと MetaTrader 5 ライブラリを使用し、データ フレームのインポートには Pandas、グラフ作成には Plotly を使用します。チャートには、ユーザーが調整可能なパラメーターを使用して移動平均と相対強度指数を計算する関数が含まれています。この作成者には、ユーザーの対話性のためのズームとキーボード ショートカットを処理するためのスレッドも含まれています。全体として、このチュートリアルでは、これらのライブラリを使用してリアルタイム財務チャートを作成する方法を初心者向けに紹介します。

  • 00:05:00 Streamlit で Python と MetaTrader 5 を使用して Web アプリケーションを構築したい場合は、特定の関数を呼び出して必要なデータを提供する必要があります。シンボルを取得するには、「metatrader」関数を使用してシンボルの名前を抽出し、辞書形式で返すことができます。パッケージ構成設定機能を使用すると、Webアプリケーションのウィンドウサイズやタイトルなどのレイアウトをカスタマイズできます。さらに、lsi (相対強度指数) を計算するには、データ フレームや rsi 値など、プロットできる必要なデータとパラメーターを関数に提供する必要があります。

  • 00:10:00 このセクションでは、スピーカーがグローバル変数を作成し、データ フレームに LSI 計算を追加し、RSI 値をチャートに表示できるようにトレースを追加した方法を説明します。また、タイムフレーム、シンボル、バー、移動平均、LSI 値を使用してチャートを毎秒更新する無限ループ関数を作成した方法も示します。時間枠は辞書から取得され、バーは mt5.copy_rates_from_pos() 関数を使用して取得されます。チャートは画像ではなく、毎秒常に更新されるアニメーションです。

  • 00:15:00 このセクションでは、プレゼンターは、後で縮小するバーのデータ フレームを変換する方法と、読みやすくするために時間を秒に変換する方法を説明します。このセクションでは、散布図の使用方法と、移動平均を計算してグラフにプロットする方法についても説明します。発表者は、グラフを所定の位置に固定し、ユーザーにより適切にデータを表示するために、固定範囲と用紙の色を使用して図のレイアウトを更新します。

  • 00:20:00 このセクションでは、日次チャートのギャップをなくすためにウィンドウのサイズと X 軸をどのように調整したかについてスピーカーが説明します。また、単純なメソッドを使用して、最後の価格の水平線を追加します。
    コード行。次に、スピーカーは、ユーザーがマイナス キーまたはプラス キーを押すとチャートを縮小または拡大するオン プレス キー機能をデモンストレーションします。コードには、アプリケーションをシンプルにしてナビゲートしやすくするための複数の関数とプレースホルダーが含まれています。

  • 00:25:00 このセクションでは、スピーカーは、Metatrader5 とチャート間の接続を初期化するためのコードと、プラス キーとマイナス キーを使用してチャートのサイズを調整するためのキーボード リスナー スレッドの使用について説明します。また、「st.title」関数の使用と、「st.connect」関数によるスライダーとオプション用の 2 つの列の作成についても説明します。講演者は、列 1 のプレースホルダーの使用と、`sd.selectbox` 関数による移動平均の選択について説明します。また、銘柄記号またはペアを選択するためのオプションの利用可能性や時間枠についても言及しています。

  • 00:30:00 このセクションでは、YouTuber が Python と MetaTrader 5 と Streamlit を使用して Web アプリケーションを構築するデモンストレーションを終了します。彼らは、アプリが取引シグナルに関する情報を表示し、チャート上にオブジェクトを描画する機能を追加したと説明しました。また、コード内のさまざまな機能とその目的も指摘し、最後にアプリの説明でコードを共有しました。 YouTuberは視聴者に感謝の意を表し、動画を締めくくった。
 

Python合成インデックス取引ボット!! - MetaTrader 5 からのキャンドルデータの受信



Python合成インデックス取引ボット!! - MetaTrader 5 からのキャンドルデータの受信

ビデオチュートリアルでは、MetaTrader 5 (MT5) からローソク足データを受け取る Python 取引ボットの作成方法を説明します。プレゼンターは、MT5 の構成、ボットのクラスの作成、変数の初期化、スレッドの作成、単純なテイクプロフィットとストップロスのパラメーターを使用した取引戦略の定義など、プロセスを段階的に説明します。プレゼンターは、エラーの処理とコードのデバッグに関する手順も提供し、プロセスの単純さを強調し、このトピックに関する今後のコースについて言及してビデオを締めくくります。このチュートリアルは洞察力に富み、初心者にも優しいので、Python 取引ボットの作成に興味がある人にとって素晴らしいリソースです。

  • 00:00:00 ビデオのこのセクションでは、プレゼンターが Python でインデックス取引ボットを作成する方法を示し、そのプロセスに含まれる手順を説明します。最初のステップは、アルゴリズム取引を有効にし、ローカル ホストの Web リクエストを許可することにより、MetaTrader 5 プラットフォームを構成することです。その後、発表者は Visual Studio Code を開き、ロット エッジ、期間、市場のパラメーターを受け取るコンストラクターを使用してボットのクラスを作成することでコーディングを開始します。ボットは辞書を介して情報を共有するスレッドで動作するため、プレゼンターはスレッドのリストと共有データを保存するための辞書を初期化します。最後に、スレッドを停止するイベントが作成されます。発表者は、GitHub リポジトリで詳細な情報と説明を提供します。

  • 00:05:00 このセクションでは、プレゼンターはクラス変数、定数、キュー、辞書、スレッドなどの必要な項目をすべて初期化し、取引ボットがスレッド間でデータを共有できるようにします。プレゼンターは、ボットがスレッドを開始および終了するためのメソッドも宣言します。 kill スレッド関数は、peel 変数の値を「kill」に設定し、join 関数を呼び出してスレッドを安全に停止します。最後に、プレゼンターは、ユーザーが Enter キーを押してボットを停止できるようにする待機関数を作成します。

  • 00:10:00 ビデオのこのセクションでは、スピーカーは、ソケットを使用して MetaTrader 5 からローソク足データを受信する Python プログラムを作成することを説明しています。まず、candles.py というファイルを作成し、ソケットを介してデータを送受信するためにソケットや json などの必要なライブラリをインポートします。また、ソケット接続に使用されるアドレスとポートも定義します。次に、スピーカーは、サーバーとクライアントのソケットを使用してソケット接続を初期化する関数の作成に進みます。これらは、ソケットを指定されたアドレスとポートにバインドし、受信接続をリッスンする方法を示しています。次に、この関数は接続を受け入れ、クライアント アドレスを出力します。

  • 00:15:00 このセクションでは、YouTuber が「thread_candles」関数を呼び出してローソク足の情報を取得する関数の作成方法を説明します。まず、MetaTrader5 から情報を受け取るための「message」という変数を作成します。次に、ソケットが開始され、ユーザーが Enter キーを押すまで動作するメイン ループが作成され、その時点で殺菌剤が設定されます。ループは、接続のソケットからメッセージを取得してデコードすることで開始されます。このコードは、メッセージが印刷できるかどうかを確認し、印刷できる場合はメッセージを印刷します。メイン ファイルの作成方法を示した後、この YouTuber は MT5 内でクライアントを作成する方法の説明に移りますが、これは MT5 のチュートリアルではないため、深くは説明しないと強調しています。

  • 00:20:00 このセクションでは、プレゼンターが GitHub からコードをコピーし、それを使用して MT5 からローソク足データを受け取る Python 取引ボットを作成する方法についてステップバイステップのガイドを提供します。プレゼンターは、コードがトークンを使用してティックごとの情報を送信し、各ローソク足の始値と終値の JSON 形式を含む文字列を作成すると説明しました。文字列を辞書に変換するには、プレゼンターは json ロード関数を使用することを提案します。プレゼンターは、ボットとクライアントを開始および停止する方法、およびエキスパート アドバイザ メニューからボットを削除する方法も実演します。

  • 00:25:00 このセクションでは、ビデオ チュートリアルで、MT5 から受信したデータで辞書を更新し、注文スレッドを作成する手順を説明します。更新された辞書は、データを正しい形式に変換する self.data 関数を使用して送信されます。このチュートリアルには、オペレーション間のローソク足の数やストップロスパラメータなど、ボットのマクロの定義が含まれています。注文スレッド関数はストップ イベントと取引データを受け取り、単純なテイクプロフィットとストップロスを含む基本的な取引戦略を作成します。このチュートリアルには、接続とサーバー ソケットを閉じてから、サンプル コードを使用してボットをテストすることも含まれています。

  • 00:30:00 このセクションでは、YouTuber が MT5 からローソク足データを受け取り、それを使用して特定の基準に基づいて操作を開始するために必要な手順について説明します。最初のステップは、最終操作時間と呼ばれる変数を宣言し、その初期値をゼロに設定することです。この値は、後で操作がいつ開かれたかを追跡するために使用されます。次に、datetime 関数を使用してエポックが宣言されます。この関数は、後で現在時刻を秒に変換するために使用します。次に、エラーを防ぐためにローソク足スレッドが開始されるのを待ちます。それが完了すると、オペレーションを開始するための条件が満たされているかどうかを確認するループに入ります。前のローソク足がブーム (終値 > 始値) であり、現在の時間が最後の操作時間に取引データ期間を加えたものより大きい場合、操作が開始されます。最終操作時刻が更新され、オープンポジション関数が呼び出されます。最後に、取引データ (市場とロット サイズを含む) が定義され、引数としてオープン ポジション関数に渡されます。

  • 00:35:00 このセクションでは、作成者がMT5を使用してセル操作を送信する方法を説明し、オープンポジション関数を実行する方法についてチュートリアルを提供します。ユーザーは市場を文字列として入力し、lotex を浮動小数点数および型操作として入力する必要があります。この関数は、現在の価格からストップロスの値を引いて、現在の価格にテイクプロフィットの値を加算することによって定義されるストップロス変数とテイクプロフィット変数の定義に役立ちます。作成者は、コードのテストとデバッグにセル キャンドルと取引データを使用することを推奨しています。最後に、作成者は、関数が実行され、注文が取引されるときの例を提供します。

  • 00:40:00 このセクションでは、チュートリアルはエラーのデバッグに焦点を当てています。表示されたエラー メッセージから解決策を見つけるまでの、段階的なデバッグ プロセスが示されています。ここでの具体的なエラーは、無効な注文執行タイプであり、これは使用されているブローカーによって異なります。解決策は、リストされている 3 つの注文執行タイプをすべて試して、どれがブローカーに適しているかを確認することです。エラーが修正されたら、チュートリアルはポジションを正常にオープンする手順に進みます。

  • 00:45:00 このセクションでは、講演者が Python 合成インデックス取引ボットの概要を説明し、それがいかに簡単に作成できるかを強調してビデオを締めくくります。彼はまた、このテーマに関するコースを作成する予定であるとも述べています。このコースは、同様のコースと比較して非常に包括的で、手頃な価格になります。彼は視聴者に「いいね!」、共有、チャンネル登録をしてもらい、質問があれば彼に連絡するよう勧めています。
 

MetaTrader 5 から Python に株価データをインポートするにはどうすればよいですか?



MetaTrader 5 から Python に株価データをインポートするにはどうすればよいですか?

この YouTube ビデオでは、MetaTrader 5 から Python に株価データをインポートするさまざまな方法が説明されています。この方法には、必要なライブラリのインポート、目的の時間枠とタイム ゾーンの設定、「データ取得」と呼ばれる関数の定義、結果のデータ フレームの操作、tqtndm パッケージの使用、料金フレームの作成、および価格とタイム ゾーンを取得するための 2 つのデータ フレームの利用が含まれます。日付/時刻情報。講演者は、ループを関数に入れてコードをすっきりさせることを提案しています。これらの方法を使用すると、ユーザーはそれほど難しいことなく、多数のシンボルのデータを簡単にインポートできます。

  • 00:00:00このセクションでは、MetaTrader5 から Python に株価データをインポートする方法をスピーカーが説明します。最初のステップは、pandas、pytz、datetime、tqdm、MetaTrader5 などの必要なライブラリをすべてインポートすることです。次に、講演者は MetaTrader5 を初期化し、希望のタイムゾーンと時間枠を設定します。スピーカーは、シンボル、必要なローソクの数、および時間枠を必要とする「データの取得」と呼ばれる関数を定義します。関数は目的のデータを返し、スピーカーは関数内で各入力と出力が何を行うかを説明します。

  • 00:05:00このセクションでは、MetaTrader5 の株価データを Python にインポートする関数について説明します。この関数はシンボル、時間フレーム、および日付を受け取り、要求されたデータを含むデータ フレームを返します。講演者は、時間列を日中に変換したり、不要な列を削除したりするなど、結果のデータ フレームを操作する手順を実行します。さらに、複数のアセットのデータを簡単に呼び出すことができるように、for ループを使用することをお勧めします。

  • 00:10:00このセクションでは、講演者が tqtndm パッケージを使用して MetaTrader5 から Python に株価データをインポートする方法を説明します。 try 関数と accept 関数を使用して、シンボルと 400 に設定された日数を受け取る、事前に定義されたレート関数を呼び出します。返されたデータは辞書に追加され、使用できないデータは削除されます。講演者は、コードをすっきりさせるためにループを関数に入れることを提案しました。全体として、プロセスにはレート フレームの作成、データの辞書への追加、スクリプトの実行が含まれます。

  • 00:15:00このセクションでは、スピーカーは 2 つのデータ フレームを使用して、価格と日付/時刻情報を取得することで、metatrader5 から Python に株価データを簡単にインポートできることを説明します。この方法は、多くのシンボルに対してそれほど困難なく使用できます。
 

MetaTrader 5 の Python によるオンライン取引 + MQL5 からデータを取得



MetaTrader 5 の Python によるオンライン取引 + MQL5 からデータを取得

このチュートリアルでは、MetaTrader からデータセットをダウンロードし、Python を使用してオンライン取引取引を行う方法を示します。インストラクターは、MetaTrader5、pandas、および datetime ライブラリをインポートし、データセットのアセットとタイムフレームを指定して、最後の 100 個のデータ ポイントをダウンロードします。ストップロス、テイクプロフィットを設定し、指定された期間で GTC コマンドを使用することにより、MetaTrader5 でポジションを管理する方法を説明します。このセクションでは、ポジションを管理するために必要なさまざまなコマンドについての基本的な理解を提供しますが、採用されている全体的な取引戦略が何であるかは不明です。

  • 00:00:00 チュートリアルのこのセクションでは、インストラクターが MetaTrader 5 からデータセットをダウンロードし、Python を使用して簡単なオンライン取引取引を実行する方法を示します。 MetaTrader5 ライブラリがインポートされ、ソフトウェア ショートカット パスが Python に指定されます。 pandas ライブラリと datetime ライブラリもインポートされ、現在の時刻がデータセット内の最後のデータの時刻を指定するために使用されます。目的のアセットのシンボル キーが書き込まれ、データセットの時間枠 (この場合は日単位の時間枠) が選択されます。最後の 100 個のデータ ポイントがダウンロードされ、フォーマット コマンドを使用してデータがユーザーの個人システムに保存されます。オンライン取引は、取引の資産と量を決定し、価格の単位をピップとして定義し、入力されたポジションに応じて売り値または買い値のいずれかを使用することによって実行されます。

  • 00:05:00 このセクションでは、ビデオでは、MetaTrader 5 で Python コマンドを使用してポジションのストップロスと利食いを設定する方法を説明します。また、ポジション チケット番号を指定してポジションを決済する方法も示します。トランザクションを指定した期間アクティブに保つための GTC コマンドについて説明します。ビデオでは、アクティブなストップロスとテイクプロフィットを使用したUSDJPY取引の例も示しています。全体として、このセクションでは、Python を使用して MetaTrader 5 でポジションを管理するために必要なさまざまなコマンドについての基本的な理解を提供します。

  • 00:10:00 このセクションでは、ロングポジションが正常にクローズされたことがわかります。残念ながら、さらなる文脈がなければ、ロングポジションが何を指すのか、または採用されている全体的な取引戦略が何であるのかは不明です。
 

Python MetaTrader 5 コピートレード



Python MetaTrader 5 コピートレード

このアプリケーションは、MetaTrader 5 から Web ダッシュボードで制御される別の MetaTrader 5 に取引をコピーできます。Web ダッシュボードは、取引をコピーできる人、ペア/ティッカーの設定、ボリュームの設定、ストップロス、各コピーシグナルの利益確定を制御することもできます。
コピーの許容時間は 5 秒ですが、5 秒を超えると信号がコピーされない場合、Windows cmd がスタックすることがあります。Windows 上で別のターミナル アプリケーションを使用することをお勧めします。

Q&A
-----------------------------------
Q:MT4でも実行できます
A: いいえ、MT4 は Python をサポートしていません。

Q : Linux でも実行できますか?
A: いいえ、実際には、mt5 は Windows 用に設計されており、Mac または Linux で実行している場合は、Windows エミュレーターなどを使用してのみ実行されます。または、Mac または Linux で実行されている Windows アプリケーションを強制的に実行するようなものを使用します。

Q : 信号がコピーされるという保証はありますか?
A : 信号のコピーが成功するか失敗するかは、さまざまな要因によって決まります。最も頻繁に発生するのは、VPS の状態、マスターまたはクライアントからの接続を処理できるか、不安定なクライアント接続、スクリプトの遅延、ターミナル、ハングなどです。

Python スクリプトの実行時にコマンド プロンプトがフリーズするなどの問題がある場合は、 https://stackoverflow.com/questions/591047/command-line-windows-hanging-in-rdp-windowsにアクセスしてください。

スクリプト
------------
仮想環境を作成します:
Python -m venv .venv

仮想環境をアクティブ化します:
.venv/スクリプト/activate

要件ライブラリをインストールします:
pip install -r 要件.txt

実行中のマスタースクリプト:
Pythonマスター.py

スレーブスクリプトを実行中:
Python trade.py

 

Python および MetaTrader バック テスト システム |トレーディング ML 戦略の開発とテスト



Python および Metatrader バック テスト システム |トレーディング ML 戦略の開発とテスト

このビデオでは、複数の取引戦略を評価し、外国為替取引に機械学習を採用するための安定したバックテスト プラットフォームの開発について説明しています。講演者は、MetaTrader 5 を使用してブローカーと連携して入力データを抽出する新しいバックテスト プラットフォームを作成する方法をデモンストレーションします。また、エキスパートアドバイザーをコーディングしてデータを抽出し、Python 戦略を使用して処理し、所定のパラメーターに基づいて取引を開始する方法についても説明します。このビデオでは、ラベル データを生成し、機械学習アルゴリズムを構築およびトレーニングするための特徴を抽出する方法も示しています。最後に、講演者はバックテストに使用されるいくつかのアルゴリズムについて説明します。ランダム フォレストが最も正確であると特定されています。全体として、バックテスト システムは 96% のパフォーマンスという信頼性の高い効率的な結果を提供しました。今後の作業には、機械学習アルゴリズムをライブ取引環境に統合することが含まれます。

  • 00:00:00 このセクションでは、講演者が外国為替取引の概念と、それが機関、政府、多国籍企業、個人投資家の間でこれほど人気になっている理由を紹介します。マーケットは月曜日から金曜日まで 24 時間開いており、誰でもアクセスできます。その人気の理由の1つは、莫大な利益の可能性です。ただし、外国為替の方向を正確に予測することが重要です。そのために、講演者の目的は、複数の取引戦略を評価し、どの通貨ペアと時間枠が最もパフォーマンスが優れているかを判断し、機械学習を使用して予測を改善するための安定したバックテスト プラットフォームを作成することでした。講演者は、予測にサポート ベクター マシンと人工ニューラル ネットワークを使用した以前の研究についても言及しています。

  • 00:05:00 このセクションでは、講演者は、機械学習アルゴリズム開発の最初のステップである、アルゴリズムのトレーニングとテストのためのバックテスト プラットフォームを開発するアプローチについて説明します。彼らは、MK バックテストなどの利用可能なバックテスト プラットフォームを検討しましたが、最終的には、既存の Python 戦略とシームレスに統合し、データの一貫性と整合性の基準を満たす新しいプラットフォームを作成することにしました。新しいプラットフォームは業界標準の MetaTrader 5 プラットフォームに依存しており、ブローカーと連携してバックテスト プラットフォームの入力データを抽出します。バックテスト プラットフォームは、ストップロスやテイクプロフィットなどのパラメーターのセットを使用してデータを評価し、取引戦略クラスなどの取引戦略によって生成されたシグナルに基づいて出力ファイルを生成します。全体として、このアプローチには、レベル データを準備し、バックテスト プラットフォームを開発し、準備されたデータに基づいて機械学習アルゴリズムを構築することが含まれます。

  • 00:10:00 このセクションでは、講演者は、新しいローソク足が生成されるたびにライブ取引ベースで MetaTrader 5 からデータを拡張するためにエキスパート アドバイザがどのようにコード化されるかを説明します。エキスパート アドバイザーは MetaTrader 5 からデータを抽出し、外部スプレッドシート ファイルに書き込みます。その後、そのファイルが Python エンジンによって読み取られ、さまざまな戦略を使用して処理され、取引シグナルが取得されます。次に、シグナルはアクション ファイルに書き込まれ、エキスパート アドバイザによって読み取られ、MetaTrader 5 環境への取引が開始されます。取引環境では、決定されたテイクプロフィットマージンとストップロスマージンに基づいて取引を実行することでライブ取引を行うことができ、エキスパートアドバイザーはさまざまなパラメータに基づいて取引を変更してクローズします。

  • 00:15:00 このセクションでは、講演者が MetaTrader プラットフォームでのバックテストとレポート生成のプロセスについて説明します。バックテストの速度を調整し、予測を行うために必要な戦略をインポートする方法を示します。次に、出力ファイルの作成や保存などのハウスキーピング タスクを処理するアクション ライターなど、プログラムのさまざまな機能について説明します。最後に、バックテストによって作成されたレポートを示します。このレポートには、通貨ペア、時間枠、期間に関する詳細とともに、行われたすべての取引の概要が含まれています。

  • 00:20:00 このセクションでは、取引用の ML アルゴリズムを構築およびトレーニングするためのラベル データと特徴抽出を作成するために設計されたバックテスト プラットフォームの使用方法をビデオで説明します。このプラットフォームは、抽出されたデータの全期間を取得し、取引に必要なシグナルとインジケーターを生成し、取引を開始して追跡して実際の結果を得ることでプロセスを簡素化します。このプラットフォームを使用して、ビデオでは、取引の真の結果を表すラベル データと、RSI、TSI、ストキャスティクスなどのデータから抽出されたさまざまな特徴を生成する方法を示します。よりバランスの取れたデータを作成することで、このプラットフォームは取引のためにより信頼性の高い機械学習アルゴリズムを生成できます。

  • 00:25:00 このセクションでは、サポート ベクター マシン、ロジスティック回帰、xgboost、MLP、ランダム フォレストなど、バックテストに使用されるさまざまな機械学習アルゴリズムについて講演者が説明します。各アルゴリズムの精度は記録および分析され、話者はランダム フォレストが 96% の精度で最も正確であると識別します。また、データにはラベルが付けられ、追跡されて、後で使用できるようにスプレッドシート ファイルが作成されます。全体として、これらのアルゴリズムを使用したバックテストのプロセスは迅速かつ効率的です。

  • 00:30:00 このセクションでは、講演者がバックテスト システムの結果と、テクニカル指標と機械学習アルゴリズムを使用したトレーディング ML 戦略の開発について要約します。安定したバックテスト プラットフォームにより、信頼性が高く効率的な結果が得られ、ベンチマーク戦略 SMAEMA のパフォーマンスが 25% であったのと比較して、96% のパフォーマンスが得られました。バックテスト プラットフォームは、手動介入を必要とせずに自動取引を行うことができました。今後の取り組みには、複数の戦略とセルフアテンション RNN や LSTM などのより洗練されたアルゴリズムを使用して、予測精度を向上させ、利益を最大化するためのライブ バックテストおよび取引環境への機械学習アルゴリズムの統合が含まれます。
 

Python でアルゴリズム取引戦略を作成する方法 - ステップバイステップのプロセス



Python でアルゴリズム取引戦略を作成する方法 - ステップバイステップのプロセス

このビデオでは、Python を使用してアルゴリズム取引戦略を作成する方法についてステップバイステップのガイドを提供します。最初のステップでは、システムのルールを定義し、取引から感情を排除し、収益性を最適化するためのバックテストを実施します。次に、プレゼンターは仮説と移動平均クロスオーバーなどのテクニカル指標を使用してトレーディング戦略を作成する方法をデモンストレーションします。その後、戦略がコード化され、最適化を確実にするためにバックテストが繰り返し実行されます。 2 番目のセクションでは、アルゴリズム フレームワークのコーディングと、単純な移動平均の比較に基づいて買うか売るかを決定するシグナル関数の作成に焦点を当てます。 3 番目のセクションでは関数を使用してライブ市場データを処理する方法について説明し、4 番目のセクションでは WPS で戦略を展開する方法について説明します。プレゼンターは、初心者に取引戦略をシンプルかつ明確に保つようアドバイスして締めくくりました。

  • 00:00:00 ビデオのこのセクションでは、プレゼンターが Python を使用してアルゴリズム取引戦略を作成するプロセスを説明します。まず、彼らはアルゴリズム取引を、明示的に定義されたルールと例外のないシステムとして定義します。この利点は、定量化可能なデータに基づいて取引戦略をコーディングできることと、感情が考慮されないことです。また、システムの収益性を最適化しテストするためのバックテストが簡単に実行できるとも述べています。次に、プレゼンターは、仮説とテクニカル指標、特に移動平均クロスオーバーを使用してトレーディング戦略を作成する方法を示します。収集された情報をもとに一連のルールが作成され、その後戦略のバックテストが行われます。このプロセスは、戦略が最適であるとみなされるまで繰り返すことができます。

  • 00:05:00 このセクションでは、講演者が Python を使用してアルゴリズム取引戦略を作成する段階的なプロセスについて説明します。彼らは、バックテストによってトレーダーが利益と損失がどのように推移しているかを理解できるようになり、成功した場合、トレーダーはデモ口座でライブ取引ボットを使用したフォワードテストに進むことができると説明しています。講演者はまた、Python は学習しやすい言語であり、バックテストやアルゴリズム取引のためのパンダやプロットリーなどのライブラリが多数あるため、取引に Python を使用することを推奨しています。最後に、講演者は、高速移動平均 10 と低速移動平均 100 を使用して、ドイツの株価指数に対する単純な移動平均クロスオーバー戦略を作成するプロセスを説明します。彼らは、アルゴリズムのフレームワークをコーディングすることの重要性を強調しています。 GitHub ページで見つかります。
     
  • 00:10:00 このセクションでは、プレゼンターは、Python を使用して、前述の移動平均クロスオーバー戦略を使用したアルゴリズム取引戦略を作成する方法を示します。バックテストされたファイルとライブ取引ボット ファイルの 2 つのファイルが提供されます。バックテストされたファイルには、2032 年に戦略がどのように実行されたかに関するデータ分析が含まれています。ライブ取引ボット ファイルでは、ログイン資格情報を含むファイルの作成が必要であり、ユーザーは移動平均クロスオーバーを使用して取引できるようになります。次に、発表者は Python 統合開発環境を示し、pandas、blockly、datetime などのライブラリを使用して履歴データを取得し、単純な移動平均を計算し、取引ロジックを適用するコードを説明します。最後に、プレゼンターは、単純移動平均の比較に基づいて、買うか売るかを決定するシグナル関数を作成します。

  • 00:15:00 このセクションでは、スピーカーは、特定の証券をいつ売買するかを示すシグナル列を計算するプロセスを説明します。シグナル列は、「シグナルの取得」関数をデータ フレーム バーに適用することによって取得されます。この関数は、売買の条件が満たされているかどうかを行ごとにチェックします。さらに、以前の価格変化とシグナル変化の列も、取引量とブローカーに支払われる手数料を考慮して、仮想利益を決定するために計算されます。次に、講演者は 6 か月間の総利益と純利益を使用したプロットを示し、この戦略がいくつかのドローダウン期間を含めて 2,380 ユーロの純利益を生み出したことを示します。最後に、講演者は、視聴者がより長い歴史を自分でテストしたい場合に備えて、バックテスト戦略のサンプル コードを共有することに言及しました。

  • 00:20:00 このセクションでは、プレゼンターが関数を使用してライブ市場データを処理し、Python で取引戦略を作成する方法を説明します。彼らは、MetaTrader5、pandas、時刻、日付時刻、およびアカウントの原則を戦略のデフォルトのパラメーターを使用してインポートすることを提案しています。プレゼンターは、ポジションを決済し、ロンドンとニューヨークのセッションの取引時間を確認するための取引機能を作成しました。また、ループ内の取引シグナルを使用して成行注文を送信する機能も作成し、高速 SMA が低速 SMA を上回っている場合、売りポジションを閉じることを提案します。プレゼンターは、これらの機能の使用方法と、取引口座にログインするときに口座の概要を提供する MT5 ポジション合計機能を使用してオープン ポジションの数を確認する方法をデモンストレーションします。

  • 00:25:00 このセクションでは、スピーカーが WPS (Web Processing Service) で戦略を展開するプロセスの最終ステップについて説明します。彼は、基本的な構成を提供する Countable と呼ばれる DP (クラウド デスクトップ プロバイダー) の使用を提案しています。同氏はまた、MT5 は Windows 上でのみ動作することを指摘し、ブローカーがロンドンにある場合は英国でホストされているデータセンターを選択することを推奨しています。次に、スピーカーは初心者にヒントと推奨事項を与え、後で時間をかけてさらに戦略を追加できるように、戦略をシンプルかつ明確に保つようアドバイスします。彼は視聴者に感謝の意を表し、コメントで質問するよう勧めて締めくくりました。
 

Python を使用した 3 キャンドル設定のバックテスト



Python を使用した 3 キャンドル設定のバックテスト

このビデオでは、Python を使用して 3 つのローソク足設定の収益性をバックテストする方法を示します。発表者は、Metatrader5 から EUR/USD 通貨ペアの週次 OHLC データを取得し、それを Pandas データフレームに変換し、Plotly Express を使用して視覚化します。これらは、指定されたローソク足タイプ関数を使用して強気ローソク足と弱気ローソク足を識別し、3 本の強気ローソク足の設定条件を定義します。セットアップが発生するたびに 4 番目のローソク足が上昇または下降する確率を計算することで、これらのセットアップを購入することの収益性をバックテストします。プレゼンターは、それぞれの強気の設定でロングを続けることである程度の収入が得られただろうと結論付けていますが、利益は短期間で得られるため忍耐強くいることの重要性を強調しています。

  • 00:00:00このセクションでは、講演者が Python を使用して 3 本のローソク足設定をバックテストする方法について説明します。そのために、彼らはまず Metatrader5 プラットフォームに接続し、2019 年 1 月 1 日から 2021 年 11 月までの週次の期間で EUR/USD 通貨ペアの OHLC データをリクエストします。その後、データは Pandas データフレームに変換され、Plotly Express を使用して視覚化されます。 。次に、講演者は、指定されたローソク足タイプの関数を使用して、データフレーム内のローソク足に強気または弱気のラベルを付ける方法を示します。彼らはこれを使用して、ローソク足タイプの列を 1 つ、2 つ、および 3 つのローソク足だけ前方に移動し、3 本のローソク足がすべて強気である条件を作成することで、3 本の強気ローソク足のセットアップの条件を満たすことができます。次に、この設定が発生するたびに 4 番目のローソク足が上昇または下降する確率を計算し、これらの設定を購入することの収益性をバックテストします。

  • 00:05:00 ビデオのこのセクション では、プレゼンターが Python を使用して 3 つのキャンドル設定をバックテストする方法について説明しています。この設定には、最初、2 番目、および 3 番目のローソク足がすべて強気であるローソク足を特定することが含まれます。プレゼンターは前の終値を使用してデータフレームを作成し、その結果を前のローソク足と比較して、獲得または損失したポイント数を計算します。次に、データを統計的に分析して、購入するのが得策か売却するのが得策かを判断します。個々の設定を繰り返し、プロットに 3 つのローソク足の設定を追加することで、状況によっては、各設定の終値で買い、次のローソク足の終値直後に売ると利益が得られることがわかります。プレゼンターは、セットアップが発生する回数と、セットアップごとに平均でどれくらいの利益または損失が得られるかを計算します。彼らは、それぞれの強気の設定でロングを続ければ、ある程度の収入が得られただろうと結論付けています。

  • 00:10:00このセクションでは、Python を使用して 3-candle-setup をバックテストする例をビデオで紹介します。軸をリセットした後、2019年のトレードで負けた期間と利益が出た期間を累積ポイントの利益曲線で示します。利益は短期間で得られるため、この期間が到来するまで忍耐が必要です。このビデオでは、日次チャートで XA USD を分析し、履歴データをリクエストしてデータ フレームをプロットすることでそのパフォーマンスを表示する方法も示しています。利益曲線は、利益と損失の浮き沈みを確認するために使用されます。最後に、ビデオでは、このテスト方法は任意の数の市場と時間枠で使用できると結論付けており、ユーザーが独自のアルゴリズム戦略を作成できることを示唆しています。
 

Python でリアルタイムのローソク足チャートをコーディングする



Python でリアルタイムのローソク足チャートをコーディングする

このビデオでは、著者が Dash、pandas、plotly を使用して Python で Web アプリケーションを作成し、外国為替取引用のリアルタイムのローソク足データ チャートを生成します。このアプリケーションは MetaTrader 5 ライブラリを使用してデータを収集し、ユーザーがシンボル、時間枠、表示するローソク足の数を変更できるようにします。このビデオでは、MetaTrader 5 からの履歴バーのリクエストや go.candlestick による Figure オブジェクトの作成など、アプリケーションのレイアウトとコールバックを作成するプロセスを説明します。結果のアプリケーションは 20 ミリ秒ごとに更新され、更新間隔は 200 ミリ秒になります。閲覧者は、GitHub ページにアクセスしてアプリケーションをダウンロードするよう勧められます。

  • 00:00:00 このセクションでは、YouTuber が、リアルタイム ストリーミング ローソク足データを使用したライブ外国為替データ チャートの作成に関する視聴者の質問に答えます。このビデオでは、YouTuber が MetaTrader5 ライブラリを使用して MetaTrader 5 からデータを収集しながら、データ分析と視覚化のために Dash、pandas、plotly を使用して Python で Web アプリケーションをコーディングする方法を説明しています。また、シンボルのリストを取得し、シンボルを変換するプロセスについても説明しています。辞書を使用して時間枠を設定します。アプリケーションの結果の出力は、ユーザーがシンボル、時間枠、ローソク足の数を変更して、200 ミリ秒の更新間隔でリアルタイムにデータを表示できるチャートです。

  • 00:05:00 ビデオのこのセクションでは、スピーカーがリアルタイム ローソク足チャート アプリケーションのレイアウトの作成について説明します。シンボルと時間枠のドロップダウン コンポーネントは MT5 関数からインポートされ、値はデフォルトに設定されます。バーの数の入力は、DBC 入力フィールドを使用して作成され、デフォルト値は 20 です。アプリのレイアウトは、シンボル ドロップダウン、タイム フレーム ドロップダウン、およびバーの数の入力を含む HTML div で構成されます。小さな区切り文字が追加され、その後に 200 ミリ秒ごとに新しいコールバックを作成してリアルタイム チャートを更新する DCC 間隔コンポーネントが追加されます。ページのコンテンツには、シンボル ドロップダウン、時間枠ドロップダウン、入力されたバーの数の状態を取得して、20 ミリ秒ごとにチャートを更新するコールバックが含まれています。コールバックは MetaTrader 5 から履歴バーをリクエストし、go.candlestick を使用して Figure オブジェクトを作成します。最後に、講演者は視聴者に注目していただいたことに感謝し、GitHub ページにアクセスしてアプリケーションをダウンロードするよう勧めます。