【c#botで国内fxの自動売買 】c#とplaywrightを使った自動売買ツールの作成方法

1.はじめに

 このnoteではc#(windowsフォームアプリ)とplaywrightを用いた国内fxの自動売買ツールの作成方法を動画にまとめたので紹介します。

 fx以外にもバイナリーオプションや仮想通貨の自動売買にも応用できる考えになっています。

動画はすべて無料ですのでご安心ください。


2.こんなお悩みありませんか

突然ですがこんなお悩みありませんか?

・mqlでEAを作れるようになったが、mt4以外でも自動売買したい

・スプレッドさえ小さければ勝てる手法を見つけたが、fx海外口座はスプ レッドが大きすぎて利益にならない

・seleniumを使ってブラウザ操作の自動化に挑戦したがうまく動作せず失敗 した

・国内仮想通貨業者のAPIを使ってbot作成できるようになったが、APIを使 わず自動売買に挑戦してみたい

 上記に心当たりがある人はぜひ最後までご覧ください。このnoteが悩みを解決するヒントになるはずです。

3.MT4のEAだけがFXの自動売買ではない

 FXで自動売買するには、MT4のEAを作ることが一般的です。
しかし、EAはMT4を扱っている業者でしか使えません。

 Visual studio でwindowsアプリを作ればEAを使わなくても、ブラウザ操作を自動化することでFXの自動売買が可能です。

MT4以外で自動売買する方法を紹介するのがこのnoteの目的です

4.seleniumは時代遅れ。web自動化はplaywrightで。

 国内fxの自動売買ツール作成にはwebブラウザ操作の自動化用のパッケージが不可欠です。そして、一昔前までwebブラウザ操作の自動化といえばseleniumでした。

 しかしseleniumの根幹となるwebdriverの使用はサイトの運営者から簡単にばれてしまい、アクセス拒否やログインボタンなどの各種ボタンのクリック拒否など対策されてしまい、攻略が困難となりました。

そこで新たに登場したのがplaywrightです。
 Visual studioにplaywrightパッケージをインストールしたwindowsアプリを作ることで、webdriverを介さずログインからボタンのクリック、空欄の文字入力など問題なく自動化できます

5.どんなツールを作るか


 作成するツールは全部で二つで、一つはトレードシグナルを外部からアクセス可能なファイルに書き込むmt4のEA。

 もう一つは売買シグナルファイルにアクセスし、その内容に基づき国内fx業者に注文を自動発注するwindowsアプリです。

 windowsアプリの方は見た目がスタートだけでシンプルですが裏方で自動売買の処理が行われます。

6.相場の分析はmt4で。作成するツールはあくまで注文の発注だけ


 ここまでご覧になられた方は、「なんだ,やっぱりmt4使うのかよ」と思われたかもしれません。あくまで当コンテンツの主旨は”mt4に対応していない低スプレッド国内業者で自動売買”することにあります。売買に使用しないだけで、その他の便利な機能は有効活用すべきです。

 逆に、あえてc#(windowsアプリ)でmt4の機能まで実装しようとすると、mt4が用意している便利な関数群まで一から作ることになり膨大な工数がかかります。

 また、当コンテンツでは業者側のサーバーにあまり負荷がかからないよう、工夫してプログラムするよう心がけています。そのためにも注文の発注以外の相場分析などの処理はmt4側で対応してもらいます。

7.ツール作成の大まかな流れ

 このツールを作るに当たり、4つの処理を書いていく必要があります。

①:テクニカル分析を行い適切な売買タイミングを知らせる処理

②:そのタイミングでtxtファイルを作成し、①の内容を書き込み、外部から  アクセス可能なフォルダへ配置する処理

③:②のファイルに内容を確認しに行く処理

④:ファイルの内容に基づいて売り買いのオーダーを発注する処理

①、②の処理のためにメタエディターでEAを作ります。
③、④の処理のためにvisual studioでwindowsフォームアプリ(c#)を作ります。

先ほどから何度も出てきたplaywrightは④の処理を書くために必要となります。

8.利確、損切り、指値、逆指値、OCO、トレーリングストップなどの注文選択はどうするか


 EAが作成するファイルの役割は”売り”、”買い”、”何もしない”の3つとそのタイミングを知らせることだけです。利確や損切り、指値などの注文の選択はwindowsアプリのPlaywrightパッケージの機能が行います。

 例えばGMOクリック証券でGBPJPYを成行で5lot、利確20pips,損切り10pipsで買い注文を出したいときどうすればよいでしょうか。

この場合赤枠で囲まれたUSDJPYクリックしGBPJPYを選択、注文タイプはすでに成行なので何もしない。売買が”売”になっているので、”買”をクリック。取引数量は1になっているのでこれを消去し新たに5を入力。決済同次発注はすでにOCOになっているので何もしない。指値幅と逆指値幅が50になっているので、これを消去し新たに20、10を入力。最後に確認画面へをクリック。その前に確認省略をクリックすればワンクリックで注文が発注されます。

 これらの処理を順番に記述していくことで、サインを確認してから0.1秒にも満たない時間で今回作成するツールが自動で注文を選択し発注してくれます。


9.準備するもの

 
・Visual Studio 2022(Visual Studio Codeとは異なるのでご注意ください。)
・google chrome
・XMのデモ口座(mt4)
・GMOクリック証券のfxデモ口座(FXネオ)

 動画では、mt4でxmのデモ口座にすでにログインした状態から、GMOはまだ口座へログインしていない状態から始めます。

GMOの方は一度ログインし、ユーザーIDやパスワードをブラウザへ記憶させると、自動ログインが上手くいっているか分かりにくくなりますのでご注意ください。

※Visual studio2022をインストールする際、.NETデスクトップ開発は必ずチェックを入れて下さい

10.動画の説明

(1)visual studioでplaywrightを使う下準備

visual studioにplaywrightをインストールする手順を解説します。


(2)【C#】windowsフォームアプリでwebサイトのログインを自動化する方法

c#とplaywrightに慣れてもらうためにまずは簡単なログインの自動化から始めます。playwrightを用いたweb操作の自動化とwindowsアプリを作成するコツがわかると思います。


(3)【MQL4】mt4のメタエディターで為替レートをファイルに書き込むEAを作成

メタエディターでドル円のレートをファイルに書き込むEAを作ります。メタエディターはMT4をインストールする際、付属するので別途用意する必要はありません。


(4)【C#】mt4へアクセスしファイルの中身を表示するwindowsフォームアプリを作成

実際の自動売買では為替レートを画面に表示する必要はないのですが、mt4とwindowsアプリを連携する感覚を体験できます。


(5)【MQL4】売買サインをファイルに出力するEAを作成

ボリンジャーバンドを使って売買シグナルをファイルに書き込むEAを作成します。


(6)【C#】windowsフォームアプリでfx自動売買ツールを作る方法

毎分0秒0ミリ秒にファイルへアクセスし、中身に応じて実際に売買するプログラムを書きます。すでにポジションを保有している場合、エントリーしない機能も実装します


11.有料部分について

ソースコードを配布しています。丸々コピペしても動作しませんが、必要に応じてご利用ください。

ここから先は

17,122字

¥ 1,980

この記事が気に入ったらサポートをしてみませんか?