2017年02月19日

MT4からSQLiteの処理を行う

SQLiteのDBに更新処理する時のジャーナルモード設定種類に違いによる処理時間差。
WAL がとんでもなく遅くて、他は大差なし、OFFとmemoryがほぼ同じ。

memory>OFF>DELETE>>>>WAL

CPU:i7-3770K 定格,Windows7 SP1 64Bit ストレージはSSD 60GB
MT4 Build950

MT4のスクリプトから10万件insertする際の、ジャーナルDBmode設定での処理時間
1レコード1カラム、数字をstringにしてinsert

サンプルスクリプト:sqlite_test_journal.mq4
DL元:https://github.com/Shmuma/sqlite3-mt4-wrapper

コーディングではDBを接続する時ではなく、insertの直前にmode設定している。

10万件での結果
Alert: Benchmark for mode OFF took 18 seconds
Alert: Benchmark for mode MEMORY took 18 seconds
Alert: Benchmark for mode WAL took 124 seconds
Alert: Benchmark for mode DELETE took 19 seconds
Start benchmarks

100万件での結果
Alert: Benchmark for mode OFF took 192 seconds
Alert: Benchmark for mode MEMORY took 189 seconds

ジャーナルモードの解説してくれてる参考ブログ


為替ブログ FX 専業投資家へ
タグ:sqlite
posted by ワンさん at 14:44 | 大阪 ☀ | Comment(0) | TrackBack(0) | データ分析 | このブログの読者になる | 更新情報をチェックする

2017年02月02日

初めてやってみたこと SQLiteとテーブルやらビューやら

ここ数日で作成した部分成果をアップする。
ソースコードをアップすると商材屋に丸パクリされるのでそれはなし。
あくまでも自分用メモ。

最初にやってみたのは、バックテスト取引ログを読み込んで、時間別に集計する。
時間別の勝ち数負け数、勝ち値幅計、負け値幅計を計算
次に
時間別の勝ち越し数、勝ち越し値幅をもとにスコア点数化して、どの時間がスコアが高いか低いか、ひとめでわかるようにしてみた。

sql書いてて、はまったのはトリガー処理、テーブル単位での更新で動くんじゃなくて、レコード単位での更新で動く、つまりレコードを1行いれると1回トリガーが動く、1万件のデータをいれると1万回動くのだw

テーブルやビューの流れ関係をまとめたER図がこれ
書きかけのEA図.png

MT4インポートTempにデータを流し込むと、カラムを追加してMT4DATAテーブルにコピーしてるのだが、この処理を最初はトリガーでやってて1万件importするのに10分かかった。CPUは1コアしか使わないが、コア使用率80%以上で、RAMDISKに移しても処理時間は少ししか減らないし、コア使用率が50%くらいあった。
あまりにおかしいので調べてみたら、トリガーがレコード挿入の都度動いてた。
まるでSSDの負荷テストしてるようなもん、SSD寿命が減ってもったいない。
トリガーでコピーするのをやめてSQLバッチ処理に切り替えたら1秒ちょいくらいで終わるようになった。
データ取り込みが終わるとビューを重ねていって、スコア集計するときのみテーブルにためている。
ビューでもいいのだが、SQL文が長くなるのでワークテーブルにためている。

20年位前のふっるーいデータベース開発でよくあったやり方だ。

とりあえずこんなやり方で通貨ペアひとつあたりの処理は終わるようになった。
処理時間はデータ流し込み時間込みで2秒以内。
ストレージは安物SSDで、インメモリ化はまだ採用していない。

これから複数通貨対応をDB上でやっていくとディスクIOが増えてくるのでSSDの消耗を減らすためにインメモリに移していく予定。

利用パソコンのスペックは
Windows7 SP1
CPU i7-3770K 定格クロックで利用
メモリ16GB
SSDはいろいろ、DBファイルを置いてるのは ADATA SP550の120GB



為替ブログ FX 専業投資家へ
タグ:sqlite
posted by ワンさん at 07:44 | 大阪 ☀ | Comment(0) | TrackBack(0) | データ分析 | このブログの読者になる | 更新情報をチェックする

FXデータの金融分析はじめる

これまではForexControlCenterのアプリ版に、ストラテジーテスターのバックテスト取引結果ログを入れて
どのトレード手法の時に、いつ(日別、曜日別、時間別)、大きく動いてるのかを分析していたのだが
やたら処理が遅かったり、ハングアップする頻度がふえてきていた。
本家サイトを見に行くと、アプリ版の配布はやってなくてクラウド版だけとなっており、そのサービスも起業失敗で2月に閉鎖するという。
http://www.forexcontrolcenter.com/

アプリ版は見た目よいのだがハングアップ多くて使えない。
見たいところは時間別の成績結果だけなのでSQLを使えば自作できる。

ということで

メタトレーダー4のバックテスト取引結果ログやフォワード取引結果ログを個人でデータベース分析していく手順について、まとめてみる。

まず、どんなデータベースエンジンを使って分析するか?
とにかく簡単に使えて、処理が速い、この2点は譲れない。

大昔はデータベースSQL言語でプログラムを書いてた記憶がわずかながらあるのだが、おっさんになってしまうと昔のような学習能力はないのだ。思い出すことさえエネルギーがいる。

採用したデータベースエンジンは SQLite3 
こいつは簡単だ。スタンドアロンでしか使わないのでセキュリティはどうでもいい。
やりたいことは「瞬間で集計が終わって、わかりやすい結果をだせること」

SQLite3をより簡単に使いこなすためのツールが2つ必要となる。

DB内管理ツール
テーブル、ビュー、トリガーをGUIで簡単に作れて、テキストリバースもすぐできる。
ブラウザFireFoxのアドオン、SQLiteManagerを採用。
ブラウザの拡張機能で検索してインストール後、ブラウザ再起動して、ブラウザメニューのツールから選ぶだけで即起動する。

SQLエディタ
フリーだけど高機能で有名な A5:SQL Mk-2
http://a5m2.mmatsubara.com/

SQLエディタのA5:SQL Mk-2にもDB管理機能はあるんだけど、ハイスペックなDBエンジン対応がメインになってて、お手軽なSQLite対応はいまいち。しかしSQLエディタとしては大変優れているのでSQL文を書いて実行して試行錯誤を繰り返すのに最適なんだ。

[まとめ]
SQLite3
wiki https://ja.wikipedia.org/wiki/SQLite

FireFoxのアドオン、SQLiteManager
A5:SQL Mk-2

この3つで始めてみる。



為替ブログ FX 専業投資家へ
posted by ワンさん at 07:08 | 大阪 ☀ | Comment(0) | TrackBack(0) | データ分析 | このブログの読者になる | 更新情報をチェックする

2015年08月03日

自分用メモ、ボリンジャーバンドでの表示位置を右シフトさせる

答えがわかれば簡単なことなんだけど、ぐぐっても一発回答のブログが見つからない。
なので自分用メモとしてブログに残す。


iBands関数で右シフトさせるパラを与えても
IndexBufferで表示させている場合、表示位置を右シフトさせることができない。

どうするかというとSetIndexShiftを使って右シフト位置を設定する。

extern int BB_period = 25;
extern int BB_shift = 3;

int init()
{
SetIndexBuffer(0,Band1);
SetIndexStyle(0,DRAW_LINE);
SetIndexShift(0,BB_shift);

SetIndexBuffer(1,Band0);
SetIndexStyle(1,DRAW_LINE);
SetIndexShift(1,BB_shift);

SetIndexBuffer(2,Band2);
SetIndexStyle(2,DRAW_LINE);
SetIndexShift(2,BB_shift);

SetIndexDrawBegin(0,BB_period+BB_shift);
SetIndexDrawBegin(1,BB_period+BB_shift);
SetIndexDrawBegin(2,BB_period+BB_shift);
}



為替ブログ FX 専業投資家へ
タグ:自分用メモ
posted by ワンさん at 17:42 | 大阪 ☀ | Comment(0) | TrackBack(0) | メタトレーダー | このブログの読者になる | 更新情報をチェックする

2015年01月23日

バイナリーオプションでの儲け方その1

目のつけどころは2つ。

まったりタイムだけ狙うか、ブレイクタイムだけ狙うか、、、
両方狙いもありだけど裁量だと頭がついていかない。
自動化するなら両方狙いもありだけどEAは分けたほうがいい、同じEA使うならパラ設定は分けたほうがいい。

バイナリーオプションでは、スプ有とスプ無があって、スプ有のほうがリターンがよい。しかしだ、まったりタイムではスプ有だと負けてしまう。

まったりタイムは機械売買中心で運営されててテクニカルパターン通りに動くことが多い。しかしだ、値幅はない、スプ負けしてしまうがスプ無しなら勝率は高い。

一番おいしいのは、まったりタイムからブレイクタイムに切り替わる境目タイム。

今年になってからのバイナリーオプション裁量トレードはこの時間帯狙いでしかやってない。

ねらい目は
まったりテクニカルどおりに、大口さんも機械売買してるだけタイム、か
走り出したら止まらない、大口さんもイケイケブレイクタイム、か

あなたなら、どっちにする?


為替ブログ FX 専業投資家へ
posted by ワンさん at 16:56 | 大阪 ☀ | Comment(1) | TrackBack(0) | オプション | このブログの読者になる | 更新情報をチェックする

2015年01月22日

2015年からの方針

ブログURLの 11326 という数字は、2007年12月に、ドル円が113.26円だったときにはじめたものです。
いつかここまで戻るときもくるだろうと思いつつ、つけたのですが、はるかに突破し120円前後な位置まで戻りました。
ブログ開始から丸7年、FX始めてから8年すこし経過しました。

極端な円安進行で庶民物価はバカ上がりしてるのに、日銀は不動産価格しか見てないのか、まだまだ全然だとかアフォなことを言っています。
そんな中でも、自宅でまったり稼げる手法を研究実践しています。

為替ブログ FX 専業投資家へ
posted by ワンさん at 21:32 | 大阪 ☔ | Comment(0) | TrackBack(0) | 見通し | このブログの読者になる | 更新情報をチェックする

2014年01月07日

DOCOMO系格安データ通信SIMとバイナリーオプショントレード

ひさびさの更新です。
タイムリーな話題をひとつ。

昨年からDOCOMO系の2次代理店のデータ通信格安SIMが話題になっています。
DOCOMO直だと月額6000円かかるスマホデータ通信が1000円未満で使えるサービスです。

これを使ってトレードできるか、どんなものか、レポートします。

トレード内容はGMOクリック証券の、FXバイナリーオプションです。
十分余裕でトレードできます。
いまは月額700円相当でデータ通信しつつ、スマホでポチってます。

最初のお試しは
イーモバイルのモバイルルータGP02をヤフオクで入手し、楽天LTEエントリープランで3ヶ月ほど使ってみました。
ルータ代、約三千円。
格安SIM代、初期費用なし、月額875円。支払いはりそなVISAデビで。

私の使い方だと平日1時間程度、屋外利用なので高速通信は少なくてもOK。
GMOBOとツイッターとGmailくらいで1日あたり3から7MB程度、多くて10M行くかどうか。
月に150から200MB高速通信できれば問題ないので、楽天LTEの一番安いコースで始めてみました。

この使い方で特に問題はなかったのですが、
スマホ+ルータだと、同じポケットにいれてると傷がつきやすいのと、
WIFI接続の初回は問題ないけどしばらく時間を置くと再接続に少し時間がかかるので即応性がいまひとつという感想でした。

そこで、さらなるお試しとして
DOCOMOスマホ、2012年夏モデルをヤフオクで入手しました。
価格は1万円ちょっと。CPU2コアのスマホなのでそんなに高くはありません。
これに格安SIMはIIJプリペイドSIMを刺して使っています。
IIJプリペイドSIMは定価は4900円ですが、ヤフオクで買うと3000円弱です。
容量500Mを使い切るか、4ヶ月経過したら終了です。
楽天LTEと価格差はほとんどないのと、気に入ったら初期費用なしで月コースに移行できます。
使い勝手はというと、初回お試しより高速です。

GP02ルータは3Gでしか接続できないのですが、スマホ直だとすべてLTEで接続されています。
PINGの応答速度が3分の1くらいに短縮されているので速いです。

これは快適です。

なので、高いスマホ代を払わなくても、十分です。

肝心のGMOのBOですが、たぶん世界で3本指に入るくらいの儲けやすさ。
2ch掲示板ではいろいろ言われていますが、ハイレバ400倍の魅力の世界と同じです。
負けるときは1日に2割負けますが、勝つときは2倍の世界。

いつまで釘が甘いかはわかりませんが、今のところはおいしいー。


為替ブログ FX 専業投資家へ
posted by ワンさん at 00:01 | 東京 ☀ | Comment(0) | TrackBack(0) | オプション | このブログの読者になる | 更新情報をチェックする

2013年07月28日

ドル円、来週以降の見通し


フィボナッチエクスパンションから
95.30
91.47
85.30

日銀短観7月1日発表、大企業製造業のドル円レートは91.20円

95円割れ前後でもみ合うかもしれないが前回安値93.72を下ブレイクすると
次のターゲットは91.20から91円割れ。
日経平均も前回安値12549円を割り、さらに1000円くらい下げる可能性がある。

ドル円は7月18日からスイングのSポジを
日経は先週木曜からプットオプションのLポジを
それぞれ保有しているので、ポジショントークです。





為替ブログ FX 専業投資家へ
posted by ワンさん at 03:30 | 東京 ☀ | Comment(0) | TrackBack(0) | 見通し | このブログの読者になる | 更新情報をチェックする

2013年06月14日

日経225CFDのフィボナッチポイント他

高値15,978円(2013年5月22日)
安値 8,215円(2012年6月4日)

14,146円、23.6p押し
13,013円、38.2p押し
12,097円、50.0p押し

11,790円、下値ストップポイント

11,180円、61.8p押し
11,015円、下値ストップポイント

10,297円、GAPポイント
10,185円、GAPポイント

10,000円、パリティポイント


為替ブログ FX 専業投資家へ
posted by ワンさん at 06:41 | 東京 ☔ | Comment(0) | TrackBack(0) | 見通し | このブログの読者になる | 更新情報をチェックする

2013年05月27日

ドル円の下値サポート2013年5月27日

日足下値サポート
100.00 OPバリア
98.45
96.90
95.00 OPバリア
92.60
90.80
90.00 OPバリア


為替ブログ FX 専業投資家へ
posted by ワンさん at 05:54 | 東京 ☁ | Comment(0) | TrackBack(0) | 見通し | このブログの読者になる | 更新情報をチェックする