2009年04月04日

1分足のデータをMySQLにロードする(3)

1分足のデータをMySQLにロードする(1)と(2)

では、ヒストリカルデータをロードするテーブルの定義は、日付と時間を一つにして、MySQLのデータ型としては"datetime"にしていました。

理由は、今まで作っていたアプリケーションとの互換性のためなのですが、日付と時間を分けた形でもロードする手順を残します。

データのダウンロードは
1分足のデータをMySQLにロードする(1)
と同じで、sedの部分だけ除きます。

中身はこんなファイルです。

$ head -5 1min_2001.txt
2001-01-03,07:01:00,0.9507,0.9507,0.9507,0.9507
2001-01-03,07:02:00,0.9506,0.9506,0.9505,0.9505
2001-01-03,07:03:00,0.9505,0.9507,0.9505,0.9506
2001-01-03,07:04:00,0.9506,0.9506,0.9506,0.9506
2001-01-03,07:05:00,0.9506,0.9506,0.9506,0.9506

テーブルはこんな感じで作りました。

mysql> CREATE TABLE eur_usd_2001(
-> date date,
-> time time,
-> start decimal(6,4),
-> high decimal(6,4),
-> low decimal(6,4),
-> end decimal(6,4),
-> PRIMARY KEY (date,time)) ENGINE=MyISAM DEFAULT CHARSET=utf8
-> ;

ストレージエンジンはMyISAMなのかInnoDBなのか迷うところです。

というのも、昔は検索用途で更新が少ないテーブルであれば、MyISAMと定石のように決まっていましたが、最近ではInnoDBの性能向上もあり、どちらが良いかは一概には言えなくなってきています。

どちらが早いかも、2つを比べて検証してみます。

であとは、ロードするだけなので、
こちらも前と同様の手順です。

mysql> load data infile '/tmp/1min_2001.txt' into table eur_usd_2001 fields terminated by ',';

これで、日付と時間を分けたテーブルにロードができました。

あと忘れずにAnalyze

mysql> analyze table eur_usd_2001;
+------------------+---------+----------+----------+
| Table | Op | Msg_type | Msg_text |
+------------------+---------+----------+----------+
| fx2.eur_usd_2001 | analyze | status | OK |
+------------------+---------+----------+----------+
1 row in set (0.13 sec)


うーんも元々こうすれば良かったのに。。。

↓励みになりますので、宜しければクリックをお願いします。
にほんブログ村 為替ブログ FX サラリーマン投資家へ


にほんブログ村 為替ブログ FX テクニカルトレード派へ


人気ブログランキングへ
posted by よろ at 12:00| Comment(0) | TrackBack(0) | システム構築

1分足のデータをMySQLにロードする(2)

さてさて、前回ダウンロードしたファイルをMySQLにロードします。

/tmp/配下にファイルがあるものとして、mysqlクライアントからログインを行い、以下のSQLを実行します。


mysql> load data infile '/tmp/1min_2001.txt' into table eur_usd_2001 fields terminated by ',';

意味としては、

/tmp/1min_2001.txt というファイルを
eur_usd_2001 というテーブルに
列の区切り文字を',' として

ロードします。

ということです。

で、テーブルの統計情報も取得しておきましょう。
(PRIMARY KEYだけの場合は関係ないかもしれないけど。。)

mysql> analyze table eur_usd_2001;
+------------------+---------+----------+----------+
| Table | Op | Msg_type | Msg_text |
+------------------+---------+----------+----------+
| fx2.eur_usd_2001 | analyze | status | OK |
+------------------+---------+----------+----------+
1 row in set (0.13 sec)


時間があれば、解析用のSQLを書いてみようと思います。


↓励みになりますので、宜しければクリックをお願いします。
にほんブログ村 為替ブログ FX サラリーマン投資家へ
にほんブログ村
にほんブログ村 為替ブログ FX スキャルピング派へ
にほんブログ村
にほんブログ村 為替ブログ FX テクニカルトレード派へ
にほんブログ村 
posted by よろ at 01:55| Comment(0) | TrackBack(0) | システム構築

2009年04月02日

1分足のデータをMySQLにロードする(1)

1分足のデータをMySQLにロードするために、まずデータのダウンロードから。

自分は、このサイトのツールを使わせていただいています。

http://kasege.net/forex/archives/2006/09/forexitedl_autoforexite.html

ダウンロードが完了すると、

1min_2001.txt

のようなファイルが出来上がりますので、これを使ってデータロードします。

そのためには、MySQLでテーブルを作る必要がありますが、こんな感じにしました。(decimalの数値は使いまわしなので適当でした。。。)


mysql> show create table eur_usd_2001\G
*************************** 1. row ***************************
Table: eur_usd_2001
Create Table: CREATE TABLE `eur_usd_2001` (
`time` datetime NOT NULL default '0000-00-00 00:00:00',
`start` decimal(6,4) default NULL,
`high` decimal(6,4) default NULL,
`low` decimal(6,4) default NULL,
`end` decimal(6,4) default NULL,
PRIMARY KEY (`time`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8
1 row in set (0.01 sec)

startは 始値
highは 高値
lowは 安値
endは 終値

です。

あと、ダウンロードした 1min_2001.txt のはじめのカラムが
日付と時間が分かれているので、自分は合わせています。

元々がこんなのが

$ cat samp.txt
2008-01-01,17:01:00,1.4589,1.4591,1.4589,1.4591
2008-01-01,17:02:00,1.4591,1.4591,1.4591,1.4591
2008-01-01,17:03:00,1.4590,1.4590,1.4589,1.4589
2008-01-01,17:04:00,1.4589,1.4590,1.4589,1.4590

sedなどでこうなります

$ sed "s/,/ /" < samp.txt
2008-01-01 17:01:00,1.4589,1.4591,1.4589,1.4591
2008-01-01 17:02:00,1.4591,1.4591,1.4591,1.4591
2008-01-01 17:03:00,1.4590,1.4590,1.4589,1.4589
2008-01-01 17:04:00,1.4589,1.4590,1.4589,1.4590

あとは、このファイルをロードするだけですがまた後日。


↓励みになりますので、宜しければクリックをお願いします。
にほんブログ村 為替ブログ FX サラリーマン投資家へ
にほんブログ村
にほんブログ村 為替ブログ FX スキャルピング派へ
にほんブログ村
にほんブログ村 為替ブログ FX テクニカルトレード派へ
にほんブログ村 
posted by よろ at 03:14| Comment(0) | TrackBack(0) | システム構築

2009年03月31日

MySQL と PostgreSQL と システムトレード

意外と、前回のMySQLの話に興味を持っていただいた方が多いようで?

今回も、ソフトウェアについての話を書いてみます。

自分は、本職でデータベースのソフトをよく使うので、
システムトレードにはどんなデータベースのソフト(DBMS)を使えば良いのかを、考えてみます。

個人でDBMSを使う場合は、やっぱりオープンソースのソフトウェアが良いですね。なんたって無料で使えますから。

 ・MySQL
 ・PostgreSQL

が有名です。では、どちらがシステムトレードに向いているかですが、当然ながら一言では言えません。

なので、両方のメリット・デメリットを列挙します。

 ■MySQL

  ・メリット
   ・ほっておいても止まらない。普段使っていても特に、
    メンテナンスを意識することはありません。
   (MyISAMの場合はAnalyzeが必要)

  ・デメリット
   ・頭が悪い
     複雑なクエリが苦手です。特に副問い合わせや、結合が
     多段になってくると劇的に性能が悪くなります。
   ・C言語での開発が難しい
     C言語のプリコンパイラがないのでSQLベースでの
     開発が難しいです。

 ■PostgreSQL

  ・メリット
   ・頭が良い
     複雑なクエリでも、MySQLより比較的早く処理でき
     ます。(ものによりますが平均的に)
   ・C言語での開発がやや楽
     埋め込みSQLのプリコンパイラによりC言語での開発が
     比較的楽

  ・デメリット
   ・定期的なメンテナンスが必要。
     更新処理が多い場合は、定期的にVaccumという処理が
     必要になります。


↓励みになりますので、宜しければクリックをお願いします。
にほんブログ村 為替ブログ FX サラリーマン投資家へ
にほんブログ村
にほんブログ村 為替ブログ FX スキャルピング派へ
にほんブログ村
にほんブログ村 為替ブログ FX テクニカルトレード派へ
にほんブログ村 

こんなところです。
なぜ、C言語かというと、システムトレードを繰り返す場合、どのくらいの時間を要するかが重要になる場合もありますが、C言語だと比較的早く処理できるからです。

もちろん、Javaやその他スクリプト言語で開発するのも良くて、その場合、メリット・デメリットの有意さが一つなくなります。



結局のところ、書いててどっちでも良いと思い始めました。
(無責任)

メモリを潤沢に積んで、新しいCPUを使えばMySQLでもPostgreSQLでも、そこそこ使えるはずです。

もちろん、システムトレードではない、WEBアプリケーションだったり別のシステムでは、向き不向きが出てきますが。

自分はMySQLが「好き」なのでMySQLを使ってます。
大きな理由はない!(笑)

あと、最近ではOracleの無料で使えるエディションがあるので、実はこれが一番だったり。(頭が良くて、早いのです)

ってなわけで、やっぱりOracleさまさまですかね。。。

オープンソースが全ての面で、Oracleを凌駕する日は来るのか。。。
posted by よろ at 22:37| Comment(0) | TrackBack(0) | 日記

2009年03月30日

MySQL & perl

最近、本業の方がごたごたしていて、全く投資関連に時間をかけられていないです。

自分はいわゆるシステムエンジニアなので、簡単なシステムなら自分で作ることもできます。

今は、MySQLというデータを管理するソフトウェア(DBMS)にperlというプログラム言語を使っています。

なんで、MySQLを使うかというと、

「無料」

「無難」

「そこそこ早い」

からです。同じく、無料で使えるオープンソースのDBMSにはPostgreSQLとうソフトウェアもありますが、こちらはVACUUMという、Javaでいうガーベージコレクションと同等の処理が必要になり、運用面で面倒だから使っていません。(これが「無難」に当たる。)

ただ、DBMSという大きな観点からは、MySQLもPostgreSQLも一長一短であるため、適材適所に使えばどちらでも良いと思います。

で、なぜperlかというと、一番なれているからです(笑)

一度Javaでも作ったことがありますが、やっぱり慣れていないせいか、時間もかかります。

ただし、速度面ではJavaの方が早いので、複雑な処理をする場合は、Javaが良いでしょう。(C言語が使えればもっと良いですが。。。)

というわけで、MySQL & Perl でしばらくはシステムを作ってみます。

たまには、技術的な話もしてみますね。
posted by よろ at 02:11| Comment(0) | TrackBack(0) | 日記

2009年03月22日

久しぶりの更新で

しばらく、スキャルピングで叩きのめされたのと、仕事が忙しかったのとで、更新が滞ってしまいました。

(仕事が忙しいというのは逃げです。。。)

まあ振り返ってみて、結論としては、

スキャルピングは無理!!

ということです。。。


付け焼刃の方法で素人が勝てるはずが無いです。


コンスタントに利益を出すことができれば、億万長者になれてしまいます。


そう簡単にはできないからこそ、ある意味、FXというビジネスが成り立つのだと思います!?


勝てる人・勝てない人が程良くいてこそ、FX!!


まだまだ、勝てない人な自分はもっと精進が必要なようです。


とりあえず、新しいルールの作成から始めます。


まずは、

過去のデータで検証して有用性が証明されていない手法では取引しない!!

こととします。

↓励みになりますので、宜しければクリックをお願いします。
にほんブログ村 為替ブログ FX サラリーマン投資家へ
にほんブログ村
にほんブログ村 為替ブログ FX スキャルピング派へ
にほんブログ村
にほんブログ村 為替ブログ FX テクニカルトレード派へ
にほんブログ村
posted by よろ at 04:08| Comment(0) | TrackBack(0) | 日記

2009年02月04日

コツコツ奈落

また失敗してしまいました…

コツコツ稼いだ先々週からの利益も水の泡…さらにマイナス

コツコツドカン以上にコツコツ奈落へ…

月曜日は典型的な駄目パターンでした。

別途履歴をグラフにして、結果からなにが悪かったのか確認したいと思います。

とりあえず今回感じたことは

初めてのトレードがマイナスの場合リズムが狂う

・トレード画面を録画して振り返ることも検討

・先月や先週、昨日、直前のトレードを気にし過ぎ

・ポジションを持ったらその場でストップを入れる

 ・熱くなるとインディケータが見えなくなる

今日はなんとか反省点を踏まえてましなトレードになりました。

結果は明日まとめて書きたいと思います。

まだまだ修行がたらんな。。。


↓励みになりますので、宜しければクリックをお願いします。
にほんブログ村 為替ブログ FX サラリーマン投資家へ
にほんブログ村
にほんブログ村 為替ブログ FX スキャルピング派へ
にほんブログ村
にほんブログ村 為替ブログ FX テクニカルトレード派へ
にほんブログ村
posted by よろ at 00:35| Comment(0) | TrackBack(0) | 日記

2009年02月02日

2009年1月の結果まとめ

2009年1月の結果をまとめてみます。

結果は、惨敗。。。
よく生き残っていました。

損益: -48,259円
勝率: 57%
取引回数: 481
勝ち数: 296
負け数: 171
引分け数: 14

ペア 損益 取引回数 勝率 平均損益
EUR/USD +14,958円 102 62% -711円
GBP/JPY +34,900円 261 72% +2,149円
NZD/JPY -8,000円 1 0% -8,000円
USD/JPY -36,200円 105 58% -2,730円
AUD/USD -10,798円 2 31% -10,798円
EUR/JPY -52,200円 6 60% -10,120円
USD/CHF -6,345円 2 50% -6,345円
GBP/USD +15,426円 2 100% +15,426円
Total -48,259円 481 54% -2,641円

200901Total.jpg

第5週目からブログを書き始めましたので、一見プラスのように見えましたが、その前にある理由から大負けしていました。

理由とは、枚数の増やしすぎと、完全にマーケットが逆に動いてしまったことが原因なのですが。

二度とこのようなことは起こさないと、大大大反省したので、もう大丈夫です!!

というわけで、2月はまずは、マイナスをプラスに持っていくことが目標になります。

ではでは、今後ともよろしくお願いします。


↓励みになりますので、宜しければクリックをお願いします。
にほんブログ村 為替ブログ FX サラリーマン投資家へ
にほんブログ村
にほんブログ村 為替ブログ FX スキャルピング派へ
にほんブログ村
にほんブログ村 為替ブログ FX テクニカルトレード派へ
にほんブログ村
posted by よろ at 00:05| Comment(0) | TrackBack(0) | 投資履歴

2009年02月01日

2009/1/26 - 1/30 の結果

1週間の損益結果をまとめてみましたので、そこから傾向を確認したいと思います。

2009/1/26 - 1/31 損益推移

損益: +17,038円
勝率: 61%
取引回数: 150
勝ち数: 91
負け数: 55
引分け数: 4

Max Profit: +5,900円
Max Loss: -8,000円

ペア 損益 取引回数 勝率 平均損益
EUR/USD +22,938円 64 61% +358円
GBP/JPY +1,900円 34 59% +56円
NZD/JPY -8,000円 1 0% -8,000円
USD/JPY +200円 51 63% +4円
Total +17,038円 150 61% +114円

20090126-0131.jpg

こうやってみると、いい具合に上がっていってますが、途中にマイナスになっている部分も。。。

そうです、ポンドです。ポンドの複数枚攻撃です。
なんとかリカバリーできてますけど、逆になっていたら、かなりの大打撃だったことでしょう。

これ以降は反省して、ポンドも複数枚攻撃も自粛してます。。。

あとは、

USD/JPYがあれだけ頑張って、+200円とは。。。
ちょっと凹みます。。。
こちらも損切りが遅れてることが原因ですが、全体のパフォーマンとしては問題ないような気もします。

代わって、EUR/USDはかなりのパフォーマンスです。
これからはEUR/USDをメインに攻めるのもありかなと思いました。

来週からは今週のペースを元に、EUR/USDで頑張ってみようかな。

NZD/JPYはルール通りなので、残念ですが良しとします。


月間がまとまればまたアップしたいと思います。


↓励みになりますので、宜しければクリックをお願いします。
にほんブログ村 為替ブログ FX サラリーマン投資家へ
にほんブログ村
にほんブログ村 為替ブログ FX スキャルピング派へ
にほんブログ村
にほんブログ村 為替ブログ FX テクニカルトレード派へ
にほんブログ村
posted by よろ at 17:58| Comment(0) | TrackBack(0) | 投資履歴

2009年01月31日

2009/1/30の結果 金曜の夜は楽しい

サラリーマンの一番好きな曜日といえば、そうです金曜日です。
一週間の仕事から解放されて飲むときのビールは最高です!

まあ、昨日は予定も無く、家に直行でしたが。

冷蔵庫を開けてもビールが無く。。。しょうがなくホットココアを飲みましたが、意外とビールと同じくらい仕事が終わった感があり、不思議な気分になりました。

さて、2009/1/30のトレードですが、またしても途中で寝てしまい気がついたらまた朝という結果に。。。(コタツでトレードしてるのが悪いのですが。。。)

意識を失う前に、ポジションが無いことはかろうじて意識できていたのは、なんとか及第点!?

ルール通り、口座金額が10万円を超えましたので、2万円を引き出して、来週からはまた8万円からのスタートです。

損益: +2,547円
勝率: 65%
取引回数: 23
勝ち数: 15
負け数: 8
引分け数: 0

ペア 損益 取引回数 勝率 平均損益
EUR/USD +3,047円 12 58% 254
USD/JPY -500円 11 73% -45
Total +2,547円 23 65% 111


20090130.jpg

励みになりますので、ぜひクリックをお願いします。
にほんブログ村 為替ブログ FX サラリーマン投資家へ
にほんブログ村
にほんブログ村 為替ブログ FX スキャルピング派へ
にほんブログ村
にほんブログ村 為替ブログ FX テクニカルトレード派へ
にほんブログ村
posted by よろ at 23:00| Comment(1) | TrackBack(0) | 投資履歴