サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
災害への備え
qiita.com/toyolab
MetaTrader5(MT5)に組み込まれているテクニカル指標にDEMA, TEMAというのがあります。それぞれ Double Exponential Moving Average、Triple Exponential Moving Average の略で、2重指数移動平均、3重指数移動平均と訳されます。 この記事では、EMA、DEMA、TEMAの違いを調べてみます。 EMAの基本的な説明は以下にあります。 IIRフィルタ型の移動平均をpandasとscipyで比較してみた 計算式は $$y(n)=\alpha x(n)+(1-\alpha)y(n-1)$$ と表され、他の移動平均と同じように期間$period$をパラメータとすると、$\alpha=2/(period+1)$となります。 DEMAはDouble EMAの略ですが、単にEMAを2回かけることではありません。EMAを2回かけ
Pythonのプログラムで、ファイル名をフルパスで指定する場合など、WindowsとLinuxでパス名が違っているため区別したいことがあります。 WindowsかLinuxかを判別するだけでよければ、os.nameで十分です。 Windowsの場合
Bash on Ubuntu on WindowsでTensorFlowを使うためのメモ で、TensorFlowが使えるようになったのだが、いまいち使い方がわからない。 TFLearnっていう、TensorFlowをもっと簡単に使えるライブラリがあるということなので、それも入れてみた。 サンプルコードを眺めていると、logical.pyっていう論理演算を学習させるらしいプログラムが入っていたので、今回それを試してみた。 ORの学習 logical.pyは、複数の論理演算の学習がひとまとめになっているので、関連するところだけを抜き出してみた。 import tensorflow as tf import tflearn # Logical OR operator X = [[0., 0.], [0., 1.], [1., 0.], [1., 1.]] Y = [[0.], [1.], [1
Pythonでグラフを描画するパッケージはたくさんあるのですが、なかなかローソク足チャートに特化したものはありません。 今回、4本値データから比較的簡単にローソク足チャートが作成できるパッケージとして、matplotlibとPlotlyを試してみました。 準備 本記事のPythonコードは、Jupyter notebookで実行することを前提としています。チャートもJupyter notebookにインライン表示させます。 まずは、2016年6月から2か月分の架空の相場データを作成します。 Pythonでランダムウォーク を参考に、 %matplotlib inline import numpy as np import pandas as pd idx = pd.date_range('2016/06/01', '2016/07/31 23:59', freq='T') dn = np.
Windows 10 Anniversary Updateで、WindowsでUbuntuが使えるようになったということで、TensorFlowを入れてみました。 参考記事 以下の記事を参考にさせていただきました。 [1] Bash on Ubuntu on Windowsをインストールしてみよう! [2] CentOSにpyenvを利用してAnacondaをインストール [3] TensorFlow Installation Using conda [4] Bash on Ubuntu on Windows + XmingによるGUI [5] Cygwin絶対殺すマン ~物理のオタクがWindows Subsystem for Linuxで数値計算できるようになるまで~ [6] Bash on Ubuntu on Windows とX Windowの組み合わせで日本語表示と日本語入力 B
はじめに Pythonで書いた移動平均の計算時間を比較してみた で、for文を使った移動平均(LWMA)が遅くて使い物にならないことがわかったのですが、MetaTraderのテクニカル指標のなかにはfor文使わないと書けないものもあって、それであきらめるわけにはいかないので、高速化に挑戦してみました。 とりあえず高速化にはCythonがあることは知っていたのですが、コードを書き換えなくてはいけないということだったので、ほかを調べてみたところ、Numbaというのがありました。今回はNumbaを試したときのメモです。 for文を使ったとても遅いコード import numpy as np import pandas as pd dataM1 = pd.read_csv('DAT_ASCII_EURUSD_M1_2015.csv', sep=';', names=('Time','Open','
PythonでFXシストレのバックテスト の記事でちょっと触れていますが、GitHubに公開したテクニカル指標のうち、パラボリックSAR(iSAR)の関数だけがやけに時間がかかっていました。アルゴリズムが複雑だからしょうがないかと思っていたのですが、実は最大値、最小値の求め方に問題があったことが判明しました。 本記事では、サンプルコードを使って問題点をまとめておきます。 例題 適当な時系列データから3サンプルずつ取り出して、その最大値を順次求める問題を考えます。式で書くとこんな感じです。 $$y(n)=\max\{x(n), x(n-1), x(n-2)\}$$ 時系列データは、次のように乱数列として作成しておきます。
[Python]FXシストレパラメータの最適化をランダムサーチでやってみる の続きです。ランダムサーチの代わりに遺伝的アルゴリズム(GA)を実装してみます。 準備 1時間足データの作成については、前回と同じです。 import numpy as np import pandas as pd import indicators as ind #indicators.pyのインポート from backtest import Backtest,BacktestReport dataM1 = pd.read_csv('DAT_ASCII_EURUSD_M1_2015.csv', sep=';', names=('Time','Open','High','Low','Close', ''), index_col='Time', parse_dates=True) dataM1.index += p
PythonでFXシストレのバックテスト で、バックテストのコードを書いたので、こんどはシストレのパラメータの最適化をやってみます。トレードシステムの最適化といっても、今流行りのディープラーニングをやるわけではなく、単にテクニカル指標のパラメータの値を色々と変えて、最も評価値の高くなるものを見つけるだけです。Pythonのプログラミングの練習のためです。 準備 PythonでFXシストレのバックテスト と同じく、FXのヒストリカルデータを準備します。前と同じくEUR/USDの2015年の1時間足のデータを作っておきます。 import numpy as np import pandas as pd import indicators as ind #indicators.pyのインポート dataM1 = pd.read_csv('DAT_ASCII_EURUSD_M1_2015.csv'
はじめに Pythonでシストレのバックテストをするライブラリってたくさんあるのですが、MetaTraderから入った人にとってはわかりにくいので、Pythonの練習がてらバックテストのためのコードを書いてみました。 Pythonでシストレのバックテスト ただ、最初のバージョンは、まず動くことを第一に書いたので、結構無駄があったり、実行速度が遅かったりしたので、今回、ちょっと改良してみました。 FXヒストリカルデータの取得 株価だと、Yahoo!とかから直接ダウンロードして使えるものも多いのですが、FXだと5分足とか15分足とか複数のタイムフレームのデータを使うこともあるので、基本のデータとして1分足データが欲しいところです。 そうなると、データも大きいので、予めダウンロードしたデータを読み込む方が都合がいいかと思います。ここではサンプルデータとして以下のサイトからダウンロードしておきます
このページを最初にブックマークしてみませんか?
『@toyolabのマイページ - Qiita』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く