「二度に買うべし、二度に売るべし」を調べてみる

投資の格言にある「二度に買うべし、二度に売るべし」が実際に有効かどうか、MT5で調べてみる。

2つのトレード戦略を用意した。1つはブレイクアウト戦略で、もう1つは押し目買い・戻り売り戦略である。

そして、それぞれにオリジナルバージョンと「二度に買うべし、二度に売るべし」バージョンを用意した。オリジナルバージョンは同じエントリー価格、同じストップ価格を持つ2つのポジションで売買する。「二度に買うべし、二度に売るべし」バージョンでは1つのポジションはオリジナルバージョンのエントリー価格、ストップ価格に0.05銭を加えた価格で売買し、もう1つのポジションは0.05銭を減らした価格で売買する。

2つのトレード戦略ともトレンドフォロー型なので、ナンピンにはならず、ピラミッディングとなる点に注意。

環境

  • OANDA MetaTrader 5:5.00 build 3440

設定

バックテストは以下の設定でドル円について10年間のデータを用いて行った。

  • 銘柄:USDJPY M1
  • 日付:期間指定 2012.09.01 2022.09.01
  • フォワードテスト:キャンセル
  • 延滞:延滞ゼロ、理想的な実行
  • モデル:始値のみ
  • より高速計算のためのピップ単位利益:なし
  • 入金:1000000 JPY
  • レバレッジ:1:25
  • オプティマイズ:無効化
  • チャート、指標、取引を表示するビジュアルモード:なし

ブレイクアウト戦略

各バージョンのパフォーマンスは以下の通り。

オリジナルバージョン

「二度に買うべし、二度に売るべし」バージョン

押し目買い・戻り売り戦略

各バージョンのパフォーマンスは以下の通り。

オリジナルバージョン

「二度に買うべし、二度に売るべし」バージョン

感想

「二度に買うべし、二度に売るべし」バージョンではリカバリーファクターがやや向上する傾向にあるか。「二度に買うべし、二度に売るべし」はパフォーマンスを安定させるのが目的であろうから、多少の効果はありそうである。

ただ、その他のパフォーマンス指標ではまちまちであり、そもそも誤差程度の差しかない。自動売買なら問題ないが、手動で注文を入れる場合は手間が2倍になる。あえて導入しなければならないほどの有効性は感じない。

解凍ファイル名が文字化けする場合

UbuntuでZipファイルを右クリックし、「ここに展開」で解凍するとファイル名が文字化けしていることがある。ファイル名が日本語であるのが原因である場合が多いと思う。そういう場合はunzipで文字コードをShift-JISに指定して解凍すればいい。

環境

例えばホームフォルダに「hoge.zip」というZipファイルがあって、それを解凍する場合は以下のようにする。

◯端末で以下のコマンドをコピー&ペーストして「Enter」キーを押す。

unzip -O sjis hoge.zip

Ubuntuでpandas-datareader

pandas-datareaderを使おうと思ったら、Anacondaにはデフォルトでは入っていなかった。そこでAnacondaからインストール。

環境

  • Ubuntu 22.04
  • Anaconda 2022.05
  • Spyder 5.1.5

pandas-datareaderのインストール

①端末で以下のコマンドをコピー&ペーストして「Enter」キーを押す。

conda install -c anaconda pandas-datareader

②端末の

Proceed ([y]/n)?

で「Enter」キーを押す。

使用例

例として今年のドル円ヒストリカルデータをYahoo Financeからダウンロードし、直近のデータを表示させてみる。

①SpyderのIPythonコンソールに以下のコマンドをコピー&ペーストして「Enter」キーを押す。

from pandas_datareader import data
usdjpy = data.DataReader('JPY=X', 'yahoo', '2022-01-01', '2022-09-10')
usdjpy.tail()

IPythonコンソールに以下のように表示される。

                  High         Low        Open       Close  Volume   Adj Close
Date                                                                          
2022-09-05  142.968002  140.251999  140.429993  140.429993       0  140.429993
2022-09-06  144.981995  142.979996  143.151001  143.151001       0  143.151001
2022-09-07  144.503998  143.337997  144.128006  144.128006       0  144.128006
2022-09-08  143.947006  141.505997  143.856003  143.856003       0  143.856003
2022-09-10  142.570007  142.570007  142.570007  142.570007       0  142.570007

UbuntuでSpyder

UbuntuでSpyderを使う。あらかじめUbuntuにAnacondaをインストールしておく。

環境

  • Ubuntu 22.04
  • Anaconda 2022.05
  • Spyder 5.1.5

作業用フォルダーの作成

○端末で以下のコマンドをコピー&ペーストして「Enter」キーを押す。

mkdir ~/py

「~/py」フォルダーが生成する。これを作業用フォルダーとする。

Spyderの起動

○端末で以下のコマンドをコピー&ペーストして「Enter」キーを押す。

spyder

Spyderが起動する。

Spyderの設定

①Spyderのメニューバーで「ツール」をクリックする。

②「設定」をクリックする。

③「設定」で「現在の作業ディレクトリ」をクリックする。

④「コンソールディレクトリ」で「以下のディレクトリ」を選択する。

⑤続いて「/home/****/py」を選択する。

⑥「設定」で「IPythonコンソール」をクリックする。

⑦「グラフィックス」タブをクリックする。

⑧「画像のサポート(Matplotlib)」で「サポートを有効化」にチェックを入れる。

⑨「設定」で「適用」ボタンをクリックする。

⑩「OK」ボタンをクリックする。

UbuntuでPython

UbuntuにAnacondaをインストールしてPythonを使う。

UbuntuではデフォルトでPythonが使える。

だが、Anaconda版のPythonはデータサイエンスや機械学習用のライブラリが多く用意されており、依存問題も解消されていて便利だ。そこで、ここではAnacondaをインストールしてPythonを使うこととする。

Anacondaをインストールすると6GBほど容量を消費するので注意。

環境

Anacondaのダウンロード

①端末で以下のコマンドをコピー&ペーストして「Enter」キーを押す。

cd ~/ダウンロード

Anacondaは「~/ダウンロード」に保存することとする。

そこで先ずは作業ディレクトリを「~/ダウンロード」にする。

②端末で以下のコマンドをコピー&ペーストして「Enter」キーを押す。

wget https://repo.anaconda.com/archive/Anaconda3-2022.05-Linux-x86_64.sh

現時点で最新のLinux用Anacondaをダウンロードする。

Anacondaのインストール

上に続けて実行する。

①端末で以下のコマンドをコピー&ペーストして「Enter」キーを押す。

bash Anaconda3-2022.05-Linux-x86_64.sh

②端末の

Please, press ENTER to continue
>>>

で「Enter」キーを押し続ける。端末に

Please answer 'yes' or 'no':'
>>>

と表示されたら離す。

③「yes」と入力して「Enter」キーを押す。

④端末の

[/home/****/anaconda3] >>>

で「Enter」キーを押す。インストールが始まるので、しばらく待つ。

⑤端末の

Do you wish the installer to initialize Anaconda3
by running conda init? [yes|no]
[no] >>>

で「yes」と入力して「Enter」キーを押す。

Anacondaのアップデート

○端末で以下のコマンドをコピー&ペーストして「Enter」キーを押す。

conda update --all --yes

まあまあ時間がかかる。

UbuntuでMT5

UbuntuにMT5をインストールする。ここではOANDA版のMT5をUbuntuにインストールすることとする。

環境

  • Ubuntu 21.10 日本語 Remix

Wineのインストール

UbuntuでMT5を動かすためにはWineをインストールする必要がある 。 ついでにWine環境でライブラリを追加インストールするのに必要なwinetricksもインストールしておく。

①端末で以下のコマンドをコピー&ペーストして「Enter」キーを押す。

sudo apt install -y wine-development winetricks

②「[sudo] **** のパスワード:」でパスワードを入力して「Enter」キーを押す。

フォントのインストール

Wineがデフォルトで用意しているフォントだけでは文字化けすることがあるのでフォントを追加インストールする。

winetricks cjkfonts

MT5のインストール

ここではMT5のファイル名が「oanda5setup.exe」、ファイルは「~/ダウンロード」ディクトリ内にあるとする。

①端末で以下のコマンドをコピー&ペーストして「Enter」キーを押す。

cd ~/ダウンロード

「~/ダウンロード」ディクトリに移動する。

②端末で以下のコマンドをコピー&ペーストして「Enter」キーを押す。

wine oanda5setup.exe

③「OANDA MetaTrader 5 セットアップ (64 ビット)」で「次へ」ボタンをクリックする。

この後はWindowsにインストールする場合と変わらない。

ブラウザで「ユーザー登録 -MQL5-」というページが開いたら何もせずに閉じる。