LINE FXに登録して5万円ゲットする方法(自動売買ツール&環境構築)
はじめに
このキャンペーンは既に終了してます。ただ利用しているコードは現在も使える可能性がるので共有目的で公開しました。
はじめまして、こんにちは。TwitterではJIN@システムトレーダー(@ea_fx_suzuki)です。
私は普段は会社員で職種はSEをやっている傍ら、身に付けたプログラミングスキルを活かして、FX、株、仮想通貨などで自動でトレードするツールを開発・運用してお小遣いを稼いでいます。
今回、LINE FXが新規登録者向けのキャンペーンとして5万円キャッシャバックをやっているのを見つけて、今まで見た中でもかなり太っ腹な部類なんですが、あまり盛り上がっていないせいか役に立つ情報がなかったので、実際に私が1から調べてやった事をまとめました。
提供する物
LINE FXはアフィリエイトなどやっていないのでそれが目的ではありません。
LINE FXの自動売買についての情報がなかったのでその知見とコードを共有したいと思います。これは一般的にMT4やAPIを公開していないFXブローカの全てに通用する汎用的な部分もあると思いLINE FXをやってない人にも有益かと思います。
基本的な知見部分は無料で公開し、それを読めばご自身で実装出来る構成にしました。
また、面倒くさがりな人やあまりプログラミングスキルがない人の中で希望する人のみ、以下のコードを別の有料記事に記載しておくので購入してみてください。
・(完成済み)スクレイピングでLINE FXのWeb版にログインして注文ページに遷移しbidをコンソールに書き出すプログラム
・(執筆中)本手順で構築した環境でLINE FXのページをchromeブラウザをheadlessで起動しスクレイピングしてEAのトレード結果を参照して同様の取引をLINE FX上で取引するコード(ミラートレード)
・(執筆予定)おそらく収支がトントンくらいになりそうなEAのサンプルコード
但しあくまでサンプルコードなのでノークレーム&ノーサポートでお願いします。
私の環境では実際に動作していますが、多岐に渡る環境全てでテストした訳ではないので動作保証は致しませんのでご注意願います。多少の技術があれば、ちょっとした環境等の違いで動作しない場合、ご自身で解決出来るかと思います。また儲かるEAを低価格で提供する事は出来ないので、希望者には使ってきたEAの中で収支がトントンな物を提供したいと思います。これもあくまでもサンプルとしての提供なのでロジックの優位性がなくなったりバグ等が発生してトレードで損失を被っても責任は負いかねますのでご理解の上での購入をお願いします。
キャンペーンの詳細
5000ロットの取引を行うには裁量は厳しいので自動売買ツールで達成しようというのが今回の目標です。
自動売買とは
あらかじめ決めた一定の取引ルール(アルゴリズム)に従って、機械的・継続的にトレードする手法のことを「システムトレード(シストレ)」と言いますが、ツールを用いて自動で売買することを「自動売買システム」または単に「自動売買」と呼びます。
ここで言う取引ルール(アルゴリズム)とは、どのような条件・タイミングで買うかまたは売るか、どのような条件・タイミングで利益を確定するかまたは損切るか、などトレードにおけるエントリー(新規注文)とイグジット(決済注文)の決め事を指します。
以下のサイトから引用させて頂きました
https://xn--fx-fk1eu00k.tokyo/what-is-fx-automatic-trading/
Windows(AWS又はローカル)+Python+Selenium+Chrome headlessの環境構築
今回のツールはWindows上でpythonをインストールしてseleniumとchromeブラウザを使ってスクレイピングを行い、WEB版のLINE FXにログインして待機します。トレードの売買のトリガーはMT4内で動作させているEAで行います。pythonのプログラムはMT4でトレードが行われたかどうかを監視して注文や決済が行われていた場合に同様のトレードを行うという仕組みになります。
注文や決済あるいはトレードのロジックなどをpythonのスクリプト内で完結する事も可能です。今回はあえてMT4のEAとミラーさせているのは汎用性やロジックの分離が目的です。
1. プログラムを動かすWindowsの準備
今回掲示する方法は2つとなります。どちらかを選択してください。
・WindowsのPCを持っていてローカルに環境構築する
・AWSのインスタンスを下記のようにWindowsで作成して環境構築する
※スペック的には高頻度取引しなければ、t2.smallで十分かと思います。
インスタンスが出来たらChromeブラウザとAnacondaとChromeブラウザをインストールします。
Chromeブラウザのダウンロードページ
ここからはプログラムを動作させる環境の構築になります。
pythonをインストールするにはAnacondaが便利です。
Anacondaのダウンロードページhttps://www.anaconda.com/products/individual
以下の64-Bit~からダウンロードする。
インストール手順のページは以下の記事等を参考にしてください。
https://weblabo.oscasierra.net/python-anaconda-install-windows/
Anacondaのインストールが完了したらWindowsのスタートメニューからAnaconda Promptを右クリックで管理者から実行して「conda update --all」を実行する。(途中でProceed?と聞かれたら「y」を入力し進める。)
「pip install selenium」を実行してseleniumをインストールします。
自身の利用しているChromeのバージョンを確認して、WebDriverを下記のサイトからインストールする。
該当バージョンのchromedriver_win32.zipをダウンロードする。解凍してchromedriver.exeを任意のフォルダに保存する。
これでLINE FXに自動でログインするまでのプログラムを書くために必要なツールは揃いました。
LINE FXにログインして任意の通貨のページに移動するスクリプトの作成
Webページのスクレイピングをする時はseleniumを使いChromeを利用してDOM操作やJavaScriptの実行を行ってログインから目的のページまで遷移させます。プログラムをどうやって作るか簡単には書きますのでご自身で調査しながら作成してみてください。もし、実際のコードをお求めの場合は以下の有料記事を購入してみてください。
※但し私の環境で動作実績があるサンプルコードとしての提供となります。万が一、要素のIDや名前が違う場合はエラーで先に進めない可能性がありますがノークレーム、ノーサポートでお願いします。調査方法が下記に示しますのでソースコードを正しいIDや名前に修正する必要がある可能性をご理解願います。
プログラムの作り方
基本的な部分のサンプル
こんな感じでchromeの起動処理部分を書きます。テスト中は--headlessオプションは無効化した方がいいでしょう。CHROME_DRIVERは前項でダウンロードしたWebDriverでCHROME_BINはChromeブラウザのexeファイルです。
import os
import time
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
class LineFx:
def __init__(self,login_id,login_pass,pin_code):
self.CHROME_BIN = "C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe"
self.CHROME_DRIVER = os.path.expanduser('C:\\Users\\Administrator\\python-anaconda\\chromedriver.exe')
self.wtime = 1
self.login_id = login_id
self.login_pass = login_pass
self.pin_code = pin_code
self.url = 'https://line-fx.com'
def login(self):
# settings for chrome browser.
options = Options()
options.binary_location = self.CHROME_BIN
#options.add_argument('--headless')
options.add_argument('--window-size=1280,3000')
self.driver = webdriver.Chrome(self.CHROME_DRIVER, chrome_options=options)
self.driver.get(self.url)
これらの基本処理の後にページ内をスクレイピング技術で操作します。要素などの調べ方は以下のようにすると簡単です。
Chromeブラウザでline-fx.comにアクセスし、右上のメニューからMore tools→Developer toolsを開きます。
select an element~のボタンを押した後に「ログイン」リンク部分にカーソルを合わせると該当の要素の情報が分かります。それを指定してプログラムで操作していきます。
ログインのリンクをクリックする処理は以下のような感じになります。
line-fx login process.
self.driver.find_element_by_class_name("Header_loginBtnWrapper__2oByA").click()
time.sleep(self.wtime)
このようにして1画面ずつ調査して処理を書いていき最終的にUSD/JPYのトレードページに遷移して定期的にbidを取得しコンソールに書き出すスクリプトを作成しました。Ctrl+Cで止めるとブラウザも閉じます。
ここまでのコードをお求めの方は以下のリンクから購入をお願いします。
次項からはMT4とEAを用いた自動トレードと連携して同様の注文・決済をLINE FXで実行する方法を説明します。
MT4のEAを利用してLINE FXに同様の注文・決済を行う方法
これをすれば普段お使いになっているEAと同様のトレードをLINE FXで行う事が出来ます。
また、前項までの情報だけでもLINE FXにログインできていると思いますのでご自身でトレード部分を作って動作させる事は可能と思います。
ただ、それとは別に既存のEAを使ってLINE FXにミラートレードをする方法があります。これはネタばらしすれば簡単でMT4のログファイルをpythonのスクリプトで読み込んでエントリー・イグジットの注文のログを見つけたら同じようにLINE FXでトレードするという事です。まずはEAを動かす環境を準備しましょう。
Windows端末にMT4のアプリケーションをインストールします。口座を持つブローカーからダウンロードできます。その後、xx.ex4というEAのプログラムをExpertフォルダに置きます。
・MT4の「ファイル」から「データフォルダを開く」を選択。「MQL4」 →「Experts」の順に開いてファイルを置く。
MT4のナビゲーションに置いたファイルの名前があるのでそれをチャートウインドウにドラッグ&ドロップする。OKボタンを押すと設定画面が出るので「自動売買を許可する」にチェックをしてOKボタンを押す。
右端に顔が出ますが画像の左端にある自動売買ボタンを押すと笑顔になります。これで自動売買のプログラムが動き出します。
この状態でトレードをすると先ほど開いたデータフォルダのすぐ下にlogsフォルダの中のファイルに下記のようなログが保存されます。
0 16:34:08.156 'xxxxxx': order sell market 0.01 USDJPY sl: 107.577 tp: 107.377
pythonのスクリプトでこのファイルをポーリングしてこのログが出現したら同様の注文をLINE FX上で行うという処理を書きます。これでMT4のEAとLINE FXの自動売買スクリプトで同様のトレードが出来るという事です。
収支がプラスになるサンプルEAとpytonのスクリプトが現在開発は終えてフォワードテスト中です。出来上がり次第、別の有料記事でアップしたいと思います。本記事はこれで終了です。コードはありませんが、EAを利用出来ないブローカーでの自動売買方法についてある程度の参考になるとは思います。以上、最後まで見て頂いてありがとうございました。
この記事が気に入ったらサポートをしてみませんか?