• カテゴリー別アーカイブ Python
  • Pythonで読み込んだFXデータのタイムフレームを変えたりする

    Pythonプログラミングの記事の続きです。

    前回の記事では、ダウンロードしたFXの1分足データを読み込んでみました。

    今回はそのデータから色々なタイムフレームの4本値データを作成するプログラムを紹介します。

    続きは下のリンクから(Jupyter notebook便利です。これがなかったら連続して記事は書けなかったでしょう)

    Pythonで読み込んだFXデータのタイムフレームを変えたりする by Jupyter notebook



  • PythonでFXヒストリカルデータを読み込む

    皆さん、こんにちは。珍しく連続して記事を書いています。

    Pythonのプログラミングですが、とりあえず、FXのヒストリカルデータを読み込ませることをやってみました。これまでC++で書いていたのですが、ファイルからデータを読み込んで、タイムフレーム変えたりするのって結構面倒でした。Pythonだとどれくらい楽になるのかなと、あまり期待はせず調べてみましたが、結果的には予想以上に便利でした。

    FXのヒストリカルデータは、以下のサイトからダウンロードしました。

    HistData.com

    このサイトのダウンロードのページには、66種類の通貨ペアのヒストリカルデータがあります。EUR/USDやUSD/JPYなどメジャーな通貨ペアであれば2000年頃からのデータが入手できます。ただし、無料ということなので、データの品質については保証はできないかと思います。とりあえずPythonでのテスト用データとして使ってみます。

    1分足データとティックデータがありますが、ティックデータはサイズが大きいので、ここでは1分足データを使うことにします。

    データの種類もMT4用やNinjaTrader用など何種類か用意されています。基本的にテキストファイルなので、どの形式でも問題はありませんが、データの読み込み関数を使う関係で、日付データと時刻データが同じデータになっている「Generic ASCII」の形式を使いました。

    今回の記事で使ったのは、EUR/USDの2015年のデータです。ダウンロードしたのはzipファイルなので、これを解凍(最近は展開って言うんでしたっけ)すると、次のファイルができます。

    DAT_ASCII_EURUSD_M1_2015.csv

    ここまで準備できたら、Pythonのプログラムを作っていきます。続きは以下のリンクを見てください。

    PythonでFXヒストリカルデータを読み込む by Jupyter notebook



  • Pythonはじめました

    皆さん、こんにちは。

    私、MQL4,MQL5が人生最後のプログラミング言語かと考えていたのですが、わけあって、巷で噂のPythonをはじめることになりました。

    わざわざ宣言する必要もないのですが、このブログのネタもないですし、内輪で使う人がいるかもしれないので、これから不定期にPythonに関する記事を書いていく予定です。と言っても、私自身がPython初心者なので、わかったことを備忘録として書いていく感じです。

    Pythonの魅力は、Python単体の機能に加えて、そのライブラリの種類、量の豊富さでしょう。ライブラリをうまく使えば、面倒な処理も簡単に書くことができるようです。ただ、ライブラリの機能が多すぎるので、やりたいことがあっても、その方法を探し出すのに結構手間がかかります。

    まず、Pythonのインストールについても、調べてみると色々な方法が出てきます。Python本体をインストールして、その後、必要なライブラリをインストールしていくのが基本なのでしょうが、Windows PCでやろうとすると、うまくいかないこともあるようです。結局のところ、Pythonの開発環境なども含めると、以下のサイトのANACONDAをインストールするのが最も無難な気がします。

    https://www.continuum.io/

    ただ、Pythonもバージョン2.7と3.5という二つのバージョンがあるようです。完全な互換性はないようなので、使用するライブラリの対応状況などで、使い分けるのでしょう。まあ、MQL4とMQL5の違いに比べれば、些細な違いでしょうが。

    一応、これから取り上げるPythonの記事では、Python3.5.1を対象にします。システムトレードで使うことを目的としているので、ほんとのPython入門的なところは省略します。

    ではまた。