#author("2020-09-23T07:35:07+00:00","","") #author("2020-09-24T23:30:01+00:00","","") [[由利恵]] [[技術資料]] *目次 [#e890b3d5] #CONTENTS **0. 売買ルールの基礎知識 [#i67428c5] *** 【ゴールデンクロスとデッドクロス】 [#b993d560] ~ゴールデンクロスとは、短期の単純移動平均線が、長期の単純移動平均線を下から上に突き抜けるケースのこと。買いシグナルの一つ。 #ref(a.jpg,,50%) デッドクロスは、逆に短期の単純移動平均線が、長期の単純移動平均線を上から下に突き抜けるケースのこと。売りシグナルの一つ。 #ref(b.jpg,,50%) 参考ページ:https://money-campus.net/archives/4024 *** 【MACD】 [#b993d560] MACD(マックディー)は日本語で、移動平均収束拡散法。 単純移動平均ではなく指数平滑移動平均を使い取引していく。 また、指数平滑移動平均は新しい価格の比重が高いのが特徴。 MACDという線(短期平均-長期平均)とシグナルという線(MACDの単純移動平均)の二本の線の推移でマーケットの判断を行う。 #ref(c.png,,25%) 参考ページ:https://www.jibunbank.co.jp/products/foreign_deposit/chart/help/macd/ https://orekabu.jp/view-of-macd/ *** 【ストキャスティクス】 [#b993d560] ストキャスティクスは一定期間の高値と安値を活用して、買われ過ぎなのか売られ過ぎなのかを判断する指標の一つ。 ストキャスティクスの種類は、動きの速い「ファースト」(%K・%D)と動きの緩やかな「スロー」(SLOW%D)がある。 #ref(d.png,,25%) 参考ページ:https://www.jibunbank.co.jp/products/foreign_deposit/chart/help/stochastic/ *** 【ボリンジャーバンド】 [#b993d560] ボリンジャーバンドは、標準偏差と正規分布の概念が用いられている。 ある一定の確率で値動きが収まりやすいレンジを『σ(シグマ)』と呼ぶ。 平均値からみて上のレンジを+1σ、下のレンジを-1σと呼び、これを二倍したものが+2σ・-2σになる。 #ref(e.png,,60%) 正規分布のグラフも参考にすると、値動きが異常なのかσの範囲を見ることで判断しやすい。 #ref(f.png,,40%) #ref(g.png,,60%) 参考ページ:https://www.jibunbank.co.jp/products/foreign_deposit/chart/help/bollinger_band/ **1. 目標 [#i67428c5] FXのTick情報を収集すると同時に,ゴールデンクロスというテクニカル分析を行い,オンラインのデモトレードで利益や損失を確定していく。 また、単純移動平均のほかにストキャスティクスも用意してある。 今回、動作確認をする時間を長く設けられないため、短期移動平均を20秒、長期移動平均を50秒に設定し、動作確認をするものとする。 一般的には短期の場合でも、移動平均は5日、6日、12日などの期間で行う。 **2. 【Windows】pythonのパッケージとMT5のインストール[#kbde4fb5] 以下のサイトを参考にして行った。 #ref(https://metaquotes.co.jp/2019/07/01/blog09/) pythonは以下のサイトを参考に予めインストールされているものとする。 #ref(https://www.javadrive.jp/python/install/index1.html) また、プログラムの見やすさや、実行のしやすさにおいて、[[visual stdio code>https://www.kkaneko.jp/tools/win/vscode.html]]を使ってpythonを書くのがおすすめである&br; Windows10ではコマンドプロンプトを起動し、pip install MetaTrader5を入力してインストールする。&br; また、今回は、時間関連処理も行うのでpip install pytzもインストールしておく。&br; その他にも、[[pandas、numpy、pyti>https://gammasoft.jp/blog/install-numpy-pandas-matplotlib-by-pip/]]も同じようにインストールしておく。 以下のサイトからMT5をインストールする。 ※ここでのMT5は前述したpip install MetaTrader5のMT5とは名前が同じだけで別物。 下記のリンクでインストールするものはアプリ #ref(https://www.metatrader5.com/ja/download) MT5での最低取引量は0.01lot(10000通貨)なので残高は大体10万以上にしておくべき MT5の左上のファイル→デモ口座を開くから残高を増やすことができる **3. 【Mac】pythonとMT5のインストール、Playonmacをインストールする必要がある [#ob9ba323] ※Playonmacとは、Mac環境内にWindowsアプリを入れられるようにする物である 動作確認もしていないので、できるか不明。 Macは以下を参考にし、インストールし、2番と同じ手順でMT5を入れることが出来る https://www.metatrader5.com/ja/terminal/help/start_advanced/install_mac **4. MT5で自動取引を行う~準備~ [#ma1025ac] 注意点として、口座番号は上記で作ったXMの口座IDである。 今回使うファイルは5つあり、一つ目がpythonのファイルで、残りはMT5用のファイルである。 [pythonのファイル] #ref(program.py) [MT5のファイル] #ref(initmql4.mqh) #ref(stdlib.mqh) #ref(stderror.mqh) #ref(TradeAI.mq5) MT5用のファイルの置き場所を下記に示す まず、MT5を起動し、左上のファイルからデータフォルダを開くを押す。 #ref(h.png,,30%) そのあと、開いたフォルダの MQL5→includeにinitmq4.mqh、stdlib.mqh、stderror.mqhの三つを入れる。 MQL5→scriptsにTradeAI.mq5を入れる。 MQL5→FilesにTrade.csvを入れる。 program.pyの場所は任意で大丈夫。&br; (PC>windows>user>user名 に専用のフォルダを作り入れる事がオススメ) これでファイルの配置は終了。 ※念のため、自動売買を実行したとき正常に動かなかった場合下にMQL5のフォルダをzip形式に圧縮したものがある。 なので解凍したMQL5と元からあったMQL5のフォルダを置き換えるとよい。 次に、TradeAI.mq5のコンパイルを行う。 以下の画像に従う。 #ref(i.png,,30%) #ref(j.png,,30%) これでファイルのコンパイルは終了 次にUSDJPYのチャートを表示する #ref(k.png,,30%) 次にTradeAIをUSDJPYに入れる。 ※もし、ウィンドウが出てきたらで自動売買の許可にチェックを入れる。 #ref(l.png,,30%) その後、上のタブからツール→オプションで下記の画像の箇所にチェックを入れ、OKを押す。 #ref(m.png,,30%) これでMT5の設定は終わり。 次にpythonのprogram.pyをメモ帳などで開き、Trade.csvのディレクトリを書き換える。 下記の画像の場所を自分に合ったディレクトリに変更する。 #ref(n.png,,30%) **5. MT5で自動取引を行う~プログラムの説明~ [#ma1025ac] #ref(o.png,,30%) Tickデータの取得と格納方法。【キーワード】データフレーム、Pandas、MT5 python #ref(p.png,,30%) 買い(売り)シグナルは、このページの上部、【ストキャスティクス】参照 #ref(q.png,,30%) 買い(売り)シグナルは、このページの上部、【ゴールデンクロスとデッドクロス】参照 **6. MT5で自動取引を行う~実行~ [#ma1025ac] MT5を起動した状態でprogram.pyをコマンドプロンプトから実行することで、自動売買が開始される。 上記写真で用いている、Visual Studio Codeで実行する場合右上の緑△ボタン押すことで自動でターミナルが起動され、プログラムを実行できる。 ※また、取引が行われたときに効果音が鳴る。短期と長期の間隔が小さすぎると小さい間隔で取引が行われるので、音が連続で鳴り続けてしまう。デフォルトでは短期が200秒、長期を500秒にしてあるため、連続で音は鳴らないようになっている。 模試気になる場合は、MT5画面上のツールタブ→オプション→イベントの音声アラートを有効にするのチェックを外す。 実際に動作している状態の画像を下記に載せる。 #ref(r.png,,30%) #ref(s.png,,30%) Ctrl+T上記写真の赤線で囲われた取引履歴などを見るツールボックスが表示される **7. MT5で自動取引を行う~結果~ [#ma1025ac] *** 【単純移動平均ゴールデンクロスの実行結果】 [#b993d560] #ref(t.png,,30%) 2020/1/8の1:00~2020/1/8の16:00の間動かした結果 525.86円の損失だった。 #ref(u.png,,30%) また、短期と長期の間隔を20秒、50秒から100秒、200秒に変更し同じ期間自動売買を行った結果、損失を421.5円減らすことができた。 *** 【ストキャスティクスの実行結果】 [#b993d560] #ref(v.png,,30%) 半日自動売買を行った結果損失はゴールデンクロスに比べ低くなった。 ***7.2.program.pyを変更後 [#rd35e2ab] MQL5ファイルを上記のものに置き換え、支障なく動作することを確認できました。 #ref(w.png,,27%) 期間:2020.02.05 17:19 ~20:30 (3時間10分) 結果:-130.33 (損失) #ref(x.png,,24%) **8.プログラムの書き換え [#od52f433]