アフィリエイト広告を利用しています

広告

この広告は30日以上更新がないブログに表示されております。
新規記事の投稿を行うことで、非表示にすることが可能です。
posted by fanblog

2015年05月02日

Quantitative Trading: How to Build Your Own Algorithmic Trading Business 1

MATLABを用いたAlgorithmic Tradingについて解説されている本はいくつかあるようだが、これが読みやすそう。
"Quantitative Trading: How to Build Your Own Algorithmic Trading Business"は2008年出版なのでちょっと古いが、内容は以下のようで、トレードをビジネスとしてとらえる考え方に惹かれる。MATLABを使ったBacktestの仕方も解説されているようなので、内容には期待している。この連休中に一気に読んでしまおう。

Chapter 2 Finding a viable trading strategy
Chapter 3 Backtesting the strategy
Chapter 4 Setting up the business and technological infrastructure
Chapter 5 Building an automated trading system
Chapter 6 Managing the money and risk
Chapter 7 Advanced concepts
Chapter 8 Conclusion

著者のブログ
http://epchan.blogspot.jp/


2015年05月01日

COURSERAのクラス進捗

COURSERAのコース”Introduction to Programming with MATLAB”がWeek5まで完了!なかなかMATLABが分かってきたかも?残りのWeek6-8でLoopとDatatypeとFileIOを学ぶことになっている。だんだんと宿題が難しくなってきている。十分な時間を使って考えないと簡単には正解にたどり着けない。
宿題の問題の文章が長い!しかもわかりづらい。以下Week5の宿題の1つの問題だが、読んでもなかなか頭に入ってこない。なぜこんな持って回ったような書き方をしているのか…

Consider the definition: function [s1, s2, sums] = sines(pts,amp,f1,f2). The input, pts, is an integer, but amp, f1, and f2 and are not necessarily integers. Output argument s1 is a row vector whose length (number of elements) equals pts. The elements of s1 are the values of the sine function when it is given equally spaced arguments that start at zero and extend through f1 periods of the sine. (Note that we ask for full periods, so if f1 is an integer, both the first and the last element of s1 will be 0 other than a very small rounding error.) The amplitude of the sine wave equals amp. The vector s2 is the same as s1 except that s2 contains f2 periods. The vector sums is the sum of s1 and s2. If f2 is omitted, then it should be set to a value that is 5% greater than f1. If f1 is omitted also, then it should be set to 100. If amp is not provided, then it should default to 1. Finally, if pts is omitted as well, then it should be set to 1000. For example, if you run sines without any input arguments and then you plot the third output argument, sums, the figure should look like this (if you stretch the plot window horizontally):

ただCOURSERAのシステムはよく出来て、Discussion Forumsからいろいろなヒントが見つけられる。いろいろな国籍の人がコメントをしていて面白い。どうしようもないコメントから、きらりと光るコメントまで、ほんと様々。

宿題の問題で指示されている関数を全て作成して、採点機能のあるスクリプトを実行すると自動的に得点が出力されるようになっている。これがゲーム性があり、思わず夢中になってしまう。
ほんとに良く出来ているシステムだ…これで無料だから驚いてしまう。


Homework 5 Grader

Type the number of the problem that you would like to check
or choose the last option to check all problems and compute
a score and a submission code. (Nothing is submitted.)

0. EXIT
1. generationXYZ
2. letter_grade
3. sort3
4. classify
5. older
6. movies
7. sines
8. moving_average
9. ALL PROBLEMS (gives score and submission code)

Your selection: 9
Grading all problems ...

Problem 1 (generationXYZ):
Feedback: Your function performed correctly for argument(s) 1965
Feedback: Your function performed correctly for argument(s) 1966
Feedback: Your function performed correctly for argument(s) 1975
Feedback: Your function performed correctly for argument(s) 1980
Feedback: Your function performed correctly for argument(s) 1981
Feedback: Your function performed correctly for argument(s) 1990
Feedback: Your function performed correctly for argument(s) 1999
Feedback: Your function performed correctly for argument(s) 2000
Feedback: Your function performed correctly for argument(s) 2005
Feedback: Your function performed correctly for argument(s) 2008
Feedback: Your function performed correctly for argument(s) 2012
Feedback: Your function performed correctly for argument(s) 2013
Feedback: Your function performed correctly for argument(s) 2009
Feedback: Your function performed correctly for argument(s) 1993
Feedback: Your function performed correctly for argument(s) 1983

Your solution is correct.

Problem 2 (letter_grade):
Feedback: Your function performed correctly for argument(s) 95
Feedback: Your function performed correctly for argument(s) 91
Feedback: Your function performed correctly for argument(s) 90
Feedback: Your function performed correctly for argument(s) 82
Feedback: Your function performed correctly for argument(s) 81
Feedback: Your function performed correctly for argument(s) 75
Feedback: Your function performed correctly for argument(s) 71
Feedback: Your function performed correctly for argument(s) 70
Feedback: Your function performed correctly for argument(s) 69
Feedback: Your function performed correctly for argument(s) 61
Feedback: Your function performed correctly for argument(s) 60
Feedback: Your function performed correctly for argument(s) 100

Your solution is correct.

Problem 3 (sort3):
Feedback: Your function performed correctly for argument(s) 1, 1, 1
Feedback: Your function performed correctly for argument(s) 1, 1, 2
Feedback: Your function performed correctly for argument(s) 1, 2, 1
Feedback: Your function performed correctly for argument(s) 2, 1, 1
Feedback: Your function performed correctly for argument(s) 1, 2, 3
Feedback: Your function performed correctly for argument(s) 1, 3, 2
Feedback: Your function performed correctly for argument(s) 3, 2, 1
Feedback: Your function performed correctly for argument(s) 3, 1, 2
Feedback: Your function performed correctly for argument(s) 2, 1, 3
Feedback: Your function performed correctly for argument(s) 2, 3, 1
Feedback: Your function performed correctly for argument(s) 5, 1, 9
Feedback: Your function performed correctly for argument(s) -0.689309992672154, -0.262809605838835, 0.17447421737566
Feedback: Your function performed correctly for argument(s) 0.158583018376615, -0.755175650656217, 0.551261328213263

Your solution is correct.

Problem 4 (classify):
Feedback: Your function performed correctly for argument(s) []
Feedback: Your function performed correctly for argument(s) zeros(1,0)
Feedback: Your function performed correctly for argument(s) zeros(0,4)
Feedback: Your function performed correctly for argument(s) 3.14159265358979
Feedback: Your function performed correctly for argument(s) [1 2 3]
Feedback: Your function performed correctly for argument(s) [1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18;19;20]
Feedback: Your function performed correctly for argument(s) [1 0 1 1 0;1 1 1 1 0;1 0 0 0 0;1 1 1 1 1;0 1 0 1 1]

Your solution is correct.

Problem 5 (older):
Feedback: Your function performed correctly for argument(s) 1997, 5, 23, 1997, 5, 23
Feedback: Your function performed correctly for argument(s) 1998, 5, 24, 1998, 5, 23
Feedback: Your function performed correctly for argument(s) 1998, 5, 23, 1997, 5, 23
Feedback: Your function performed correctly for argument(s) 1998, 5, 23, 1998, 4, 23
Feedback: Your function performed correctly for argument(s) 2000, 1, 1, 1999, 12, 31
Feedback: Your function performed correctly for argument(s) 2001, 1, 31, 2001, 2, 1
Feedback: Your function performed correctly for argument(s) 1997, 12, 24, 1998, 12, 24
Feedback: Your function performed correctly for argument(s) 1998, 12, 24, 1998, 11, 24
Feedback: Your function performed correctly for argument(s) 1997, 2, 24, 1997, 10, 24
Feedback: Your function performed correctly for argument(s) 1, 1, 1, 1, 1, 1
Feedback: Your function performed correctly for argument(s) 1, 1, 1, 1, 1, 2
Feedback: Your function performed correctly for argument(s) 1, 1, 2, 1, 1, 1
Feedback: Your function performed correctly for argument(s) 1, 1, 31, 1, 2, 1
Feedback: Your function performed correctly for argument(s) 1, 12, 31, 2, 1, 1
Feedback: Your function performed correctly for argument(s) 12, 12, 12, 12, 12, 13
Feedback: Your function performed correctly for argument(s) 1957, 9, 6, 1965, 2, 15
Feedback: Your function performed correctly for argument(s) 1972, 10, 8, 1965, 10, 5
Feedback: Your function performed correctly for argument(s) 1976, 4, 5, 1950, 2, 9
Feedback: Your function performed correctly for argument(s) 1962, 6, 25, 1990, 8, 8

Your solution is correct.

Problem 6 (movies):
Feedback: Your function performed correctly for argument(s) 1, 30, 120, 3, 45, 90
Feedback: Your function performed correctly for argument(s) 1, 30, 120, 3, 0, 90
Feedback: Your function performed correctly for argument(s) 1, 0, 90, 2, 30, 60
Feedback: Your function performed correctly for argument(s) 1, 0, 90, 2, 25, 60
Feedback: Your function performed correctly for argument(s) 1, 0, 90, 2, 55, 75
Feedback: Your function performed correctly for argument(s) 1, 0, 90, 3, 0, 75
Feedback: Your function performed correctly for argument(s) 1, 0, 90, 3, 1, 75
Feedback: Your function performed correctly for argument(s) 10, 10, 60, 11, 5, 120
Feedback: Your function performed correctly for argument(s) 10, 10, 60, 11, 10, 120
Feedback: Your function performed correctly for argument(s) 10, 10, 60, 11, 40, 120
Feedback: Your function performed correctly for argument(s) 10, 10, 60, 11, 41, 120
Feedback: Your function performed correctly for argument(s) 1, 30, 120, 4, 30, 120
Feedback: Your function performed correctly for argument(s) 1, 28, 42, 9, 57, 130
Feedback: Your function performed correctly for argument(s) 11, 4, 73, 8, 40, 55
Feedback: Your function performed correctly for argument(s) 8, 42, 60, 10, 55, 95
Feedback: Your function performed correctly for argument(s) 3, 15, 135, 9, 1, 125
Feedback: Your function performed correctly for argument(s) 4, 41, 105, 1, 4, 30
Feedback: Your function performed correctly for argument(s) 7, 20, 141, 11, 44, 110

Your solution is correct.

Problem 7 (sines):
Feedback: Your function performed correctly for argument(s) 100, 1, 100, 101
Feedback: Your function performed correctly for argument(s) 500, 0.5, 50, 60
Feedback: Your function performed correctly for argument(s) 1000, 5, 150, 148
Feedback: Your function performed correctly for argument(s) 1000, 2, 120
Feedback: Your function performed correctly for argument(s) 1024, 1
Feedback: Your function performed correctly for argument(s) 2048
Feedback: Your function performed correctly for argument(s)

Your solution is correct.

Problem 8 (moving_average):
Feedback: Your function performed correctly for argument 65
Feedback: Your function performed correctly when values 1 - 50 were passed consecutively
Feedback: Your function performed correctly when 3109 consecutive values of a noisy sine wave were passed to it

Your solution is correct.


Score: 100

そして人工知能?関係のクラスが始まる。これも期待している!
”Computational Neuroscience”
この連休中に落としたR関係のクラスをもう一度総復習して、今度はしっかり修了させよう。
posted by itot at 16:11| Comment(0) | TrackBack(0) | COURSERA

Rubyではじめるシステムトレード4

「Rubyではじめるシステムトレード」の勉強を再開している。データー取得方法はいろいろありそうなので、先にシミュレーションのスクリプトの方の解析を進める。テストはLinuxのVPS上で行う。とにかく正常に動かせるところをまずは目指す。

本に書いてあるとおり、スクリプト"trade_check.rb"の動作チェックを行う。実行すると以下のように出力される。

$ ruby ./check/trade_check.rb

8604
2011/11/14
251
true
false
false
241
241
10
1
2
true
2011/11/15
400
1.593625498007968
0.4

これは正常に動いていることを確認。

次はスクリプト"array_check.rb"の動作チェック。コマンドラインから打ち込んでみると、

$ ruby ./check/array_check.rb

1127
112.7
[nil, nil, nil, 105.75, 109.75, 116.25, 118.75, 119.75, 119.5, 116.25]
[nil, nil, 111, 115, 116, 123, 123, 123, 121, 119]
[nil, nil, 97, 97, 111, 115, 116, 119, 115, 110]
[nil, nil, 104.0, 106.0, 113.5, 119.0, 119.5, 121.0, 118.0, 114.5]
[nil, -3, 14, 4, 1, 7, -2, -2, -4, -5]
[nil, nil, nil, 5.0, 6.333333333333333, 4.0, 2.0, 1.0, -2.6666666666666665, -3.6666666666666665]
[nil, nil, nil, 105.75, 109.85, 115.11, 117.466, 118.0796, 116.84776, 114.108656]

となりこれも正常に動いている。

次はIndicator関係のクラスの動作チェック。スクリプト"indicator_check.rb"を実行してみると、

$ ruby ./check/indicator_check.rb

nil
nil
3
5
8
4


3
5


3
5
8
4
[nil, nil, 3]
[3, 5, 8]

と出力され、これも問題なさそう。

続けてTickモジュールの動作チェック用スクリプト"tick_check.rb"を実行してみると、

$ ruby ./check/tick_check.rb

1
1
1
5
5
10
10
50

99
3000
3005

100
3005
3010

100
99
3005
3000

101
103
3000
3005
3005

99
97
3000
2999
2999
2999

と出力され、これも問題なし。

さらに売買ルールに関するスクリプト"rule_check.rb"の動作チェック。

$ ruby ./check/rule_check.rb

#
nil

nil
#

100
105

100
95

95
105

:long_only
:short_only
:no_entry
:long_and_short

となり、これも問題なし。

さらに売買ルールのスクリプト"estrangement_entry_check.rb"も実行してみると、

$ ruby ./check/estrangement_entry_check.rb

/system_trading/tradeSimulation_ruby/lib/text_to_stock.rb:41:in `[]': no implicit conversion from nil to integer (TypeError)
from /system_trading/tradeSimulation_ruby/lib/text_to_stock.rb:41:in `market'
from /system_trading/tradeSimulation_ruby/lib/text_to_stock.rb:22:in `generate_stock'
from ./check/estrangement_entry_check.rb:7:in `
'

エラーがでる。これはおかしいようだ。

そしてシステムトレード用クラスの動作チェックスクリプト"trading_system_check.rb"を実行してみると、

$ ruby ./check/trading_system_check.rb

/system_trading/tradeSimulation_ruby/lib/text_to_stock.rb:41:in `[]': no implicit conversion from nil to integer (TypeError)
from /system_trading/tradeSimulation_ruby/lib/text_to_stock.rb:41:in `market'
from /system_trading/tradeSimulation_ruby/lib/text_to_stock.rb:22:in `generate_stock'
from ./check/trading_system_check.rb:19:in `simulate'
from ./check/trading_system_check.rb:46:in `
'

同じエラーがでる。

結果を出力するためのクラスの動作チェックスクリプト"record_check.rb"を実行してみると、

$ ruby ./check/recorder_check.rb

�L�^�t�H���_ result/test ���łɑ����܂��B�㏑�����܂����H y/n
y
�㏑�����܂�
/system_trading/tradeSimulation_ruby/lib/text_to_stock.rb:41:in `[]': no implicit conversion from nil to integer (TypeError)
from /system_trading/tradeSimulation_ruby/lib/text_to_stock.rb:41:in `market'
from /system_trading/tradeSimulation_ruby/lib/text_to_stock.rb:22:in `generate_stock'
from ./check/recorder_check.rb:18:in `simulate'
from ./check/recorder_check.rb:49:in `block in
'
from ./check/recorder_check.rb:48:in `map'
from ./check/recorder_check.rb:48:in `
'

何やら文字化けをするようだが、同じエラーが出力される。

そして最後にシミュレーションの動作チェックスクリプト"simulation_check.rb"を実行すると、

$ ruby ./check/simulation_check.rb

�L�^�t�H���_ result/estrangement/test_simulation ���łɑ����܂��B�㏑�����܂����H y/n
y
�㏑�����܂�
/system_trading/tradeSimulation_ruby/lib/text_to_stock.rb:41:in `[]': no implicit conversion from nil to integer (TypeError)
from /system_trading/tradeSimulation_ruby/lib/text_to_stock.rb:41:in `market'
from /system_trading/tradeSimulation_ruby/lib/text_to_stock.rb:22:in `generate_stock'
from /system_trading/tradeSimulation_ruby/lib/simulation.rb:24:in `simulate_a_stock'
from ./check/simulation_check.rb:25:in `
'

同じエラーが出て終了。
とりあえず問題はtext_to_stock.rbにあり、エラーは”`[]': no implicit conversion from nil to integer ”ということだ。
課題をまとめると、

[課題]
  • open_http': 999 Unable to process request at this time -- error 999 (OpenURI::HTTPError)の原因
  • /lib/text_to_stock.rb:41:in `[]': no implicit conversion from nil to integer (TypeError)の原因


おいおい調べていこう。

2015年04月30日

MATLABのクラス

COURSERAで取っているMATLABのクラスが、入門レベルの私には非常に分かりやすい。

「Introduction to Programming with MATLAB」



この先生の話し方が、癒し系で授業を聞いているのが楽しい。Week4まですべてビデオの視聴を終了した。今はプログラミングの宿題に挑戦中。問題はこのような感じ。

Write a function called quadrants that takes as its input argument a scalar integer named n. The
function returns Q, a 2n-by-2n matrix. Q consists of four n-by-n submatrices. The elements of the
submatrix in the top left corner are all 1s, the elements of the submatrix at the top right are 2s, the
elements in the bottom left are 3s, and the elements in the bottom right are 4s.

コードを書いて、チェック用のスクリプトを実行するとコードのチェックが行われる。

Homework 4 Grader

Type the number of the problem that you would like to check
or choose the last option to check all problems and compute
a score and a submission code. (Nothing is submitted.)

0. EXIT
1. quadrants
2. checkerboard
3. randomness
4. mtable
5. identity
6. ALL PROBLEMS (get homework score)

Your selection: 1
NOTE: the grader will only determine if your
solution for Problem 1 is correct or not.
No score will be given.

Problem 1 (quadrants):
Feedback: Your function performed correctly for argument(s) 1
Feedback: Your function performed correctly for argument(s) 5
Feedback: Your function performed correctly for argument(s) 10
Feedback: Your function performed correctly for argument(s) 18

Your solution is correct.

なかなか良い。このクラスは楽しいので、ゴールデンウィーク中に終わらせてしまおう。
R関係で落としたクラスを今の内に復習しておいて、来週始まったところで一気に進めてしまうつもり。
posted by itot at 06:55| Comment(0) | TrackBack(0) | COURSERA

Scientific Linux のVirtualBoxへのインストール

Scientific LinuxをVirtual Boxにインストールした。特に明確な目的があるわけではないが、これからの開発でいろいろなツールをテストするための環境を一応用意しておく。

パソコンは少し古く、ホストOSはWindows7で32bitのマシンである。Version7は64bit版のみしかなさそうなので、諦めてVersion6をインストールすることにした。

本家のサイトから最小構成のファイル?、SL-6-i386-2014-11-05-netinstall.isoをダウンロードし、インストールメディアを入手。
まずはVirtualBoxの設定から。VirtualBoxマネージャーから新規にガイドに従ってVirtual環境を構築する。

virtualbox.png


”新規”から仮想マシンを設定していく。

welcome.png


"次へ”進み、OSタイプはLinux/Redhatと設定する。

ostype.png


メモリは少なすぎると問題がありそうなので、1GBに設定しておく。

memory.png


ハードディスクは”新規ハードディスク”を作成していく。

HD.png


ハードディスクの設定が始まるので、ガイドに従って行う。

HDwizard.png


ストレージのタイプは”可変サイズ”とし、

HDtype.png


サイズは40GB程度にしておく。

HDsize.png


設定のまとめが出力されるのでこれを確認。

summary.png


VirtualBoxの”設定”から”ストレージ”を選び、ダウンロードしたインストールメディアを選択する。

setting.png


これで仮想マシンの設定が終わったので、OSのインストールを始める。さっそく”起動”!何年ぶりかのLinuxのインストール作業…”Install or upgrade an existing system"からインストーラーを起動させていく。

boot.png


メディアのテストは”Skip”する。

DiskFound.png


言語はEnglishにしておく。

Language.png


キーボードはパソコンのキーボードに合わせて、"jp106"とする。

Keyboard.png


インストールはネットから行うので、”URL"を選択。

Installation.png


TCPIPの設定はデフォルトのままにしておく。

ConfigureTCPIP.png


URLは http://ftp.jaist.ac.jp/pub/Linux/scientific/6x/i386/os/ と設定する。

URL.png


いよいよインストールの開始!

installer1.png


"Basic Storage Devices"を選択。

installation2.png


警告が出るが問題無く、"Yes discard any data"を選択。

installation3.png


今は特にホストネームは設定せずデフォルトのままにしておく。

installation4.png


タイムゾーンはAsia/Tokyoを選択。

installation5.png


続いてrootのパスワードを設定。

installation6.png


インストールは”Use All Space"を選択。

installation7.png


パーティション設定に伴いデータが消失するという警告だが、問題がないので"Write changes to disk"を選択。

installation8.png


インストールタイプは後からパッケージをインストールすればいいので、ここでは”Desktop"とする。

installation9.png


しばらく待つ…

installation10.png


無事インストール完了。

installation11.png


VirtualBoxの”設定”でストレージから、読み込んでいたメディアを消去しておく。

emptyCD.png


そして”起動”させてみると、

firstBoot.png


無事にScientific Linuxが起動。


posted by itot at 02:30| Comment(0) | TrackBack(0) | Linux

2015年04月29日

Rのクラス苦戦中

COURSERAでRの勉強を兼ねていくつかコースを取っているが、全部落としてしまうことになった…
各コースは4週間の構成になっていて、先週が第3週で順調に進んでいたが、コースプロジェクトの締め切りが週末に集中してしまい間に合わず。消化不良気味だったので良かったのかもしれない。今週は残りのビデオとを見ながらQuizを解いて、来週からもう一度挑戦。

  • Regression Models
  • Practical Machine Learning
  • Statistical Inference
  • Reproducible Research


Rに関してはCOURSERAのコースで講師をされているRoger D. Pengの電子書籍を入手し読み終わった。
https://leanpub.com/rprogramming
非常に入門者向けの本。

さらにRubyとMATLABのコースを受けている。
  • Web Application Architectures
  • Introduction to Programming with MATLAB

Web Application Architecturesは全部のQuizに解答し、Bitbucketを使ったProgramming Assignmentsを全部提出して無事これは修了のはず!しかしこのコースはシステムトレードとはあまり関係がないか…
MATLABのクラスはすごく基本的な解説がなされていて、非常に良い。順調にQuiz1, 2, 3に解答し、
Lesson 3 Programming Assignmentsまで完了。このコースは期待通りの内容で受講するのが楽しい。なんとか修了させよう。

さらに今週から起業関係のクラスを受けている。
  • Developing Innovative Ideas for New Companies: The First Step in Entrepreneurship

Innovationは商業化に結びつく革新なのだと理解した。非常に興味深い。
これは昼休みを中心にビデオを見て、週末Quizに取り組む感じで進めていくつもり。
posted by itot at 00:19| Comment(0) | TrackBack(0) | COURSERA

2015年04月22日

COURSERAでRを勉強中

4月からCOURSERAのクラスで

  • Regression Models
  • Practical Machine Learning
  • Statistical Inference
  • Reproducible Research

を取っている。目的はRを勉強することだが、内容が盛りだくさんでかなり大変だ。Reproducible Researchのコースは宿題の提出が間に合わず、落としてしまった…何度でも受けられるので来月もう一度受け直そう。
とにかく宿題を提出しないといけない。時間が無いのでネットでの情報も見ながら宿題を進めている。とりあえず消化不良気味ながらもQuizを解いている。1つずつ理解していくことの方が重要なのかもしれないが…

さらにRubyとMATLABのコースを受けている。
  • Web Application Architectures
  • Introduction to Programming with MATLAB

Web Application Architecturesのコースは、RubyそのものというよりはRailsの解説がメインであまり関係ないのだけれど、なんとか修了したい。そしてMATLABのクラスはすごく期待している。

COURSERAのクラスはすごく実用的で面白い!
posted by itot at 23:30| Comment(0) | TrackBack(0) | COURSERA

パチンコトレーダー

坂本タクマ氏の「Rubyではじめるシステムトレード」をシステムトレードを勉強している。サンプルコードを試しているが、なぜか動かず停滞中…
ところで、この著者の作品として「パチンコトレーダー」がある。マンガであるが、著者が開発したシステムの毎日の投資記録が紹介されていて、これがすごい成績だ。













全作品を一気に読んでしまった。システム通りに淡々と売買を進めていくのだが、時に大きなドローダウンに見舞われるとシステムが機能していないように見える。システムトレーダーの著者はそこでシステムを使い続けるのか、なんらかの変更をするのか選択を迫られる。非常に実践的な情報が得られる良書だと思う。
posted by itot at 22:47| Comment(0) | TrackBack(0) | 読書

2015年04月09日

Rubyではじめるシステムトレード3

「Rubyではじめるシステムトレード」で解説されている株価データ取得のスクリプトを実行するとエラーがでる。少し調べるとYahooファイナンスは自動的にデータを取得するソフトでの利用を制限しているようだ。よって対策としては、

[課題]
  • open_http': 999 Unable to process request at this time -- error 999 (OpenURI::HTTPError)の原因


=> データを小分けして取得する。あるいはRubyの別のGem (sorry_yahoo_financeなど)を使用するか、本で紹介されているPanActiveMarketDatabaseを利用することが考えられそうだ。Linuxベースのシステムにしたいので、Gemを試してみながら、パンローリング社のデーターベースにも興味があるので、Windows上にRubyの環境も構築することにする。

部分的にデータは取得できているので、シミュレーションのスクリプトの方を試していこう。

COURSERAのクラス

今週からCOURSERAのいくつかのコースを取っている。

どの講義も魅力的な内容のものだが、IT系のコースは非常に実用的で充実しているように思う。これらのコースでしっかり宿題をやって、ちゃんと修了させよう。

  • Regression Models
  • Practical Machine Learning
  • Statistical Inference
  • Reproducible Research


これでRの基礎を身につけるつもり。あとは内容がやや古いようだが、EXCELを使った日本株の自動売買の本も読み進めよう。
posted by itot at 18:59| Comment(0) | TrackBack(0) | COURSERA
ファン
検索
<< 2016年09月 >>
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30  
最新記事
写真ギャラリー
最新コメント
タグクラウド
カテゴリアーカイブ
月別アーカイブ
プロフィール
日別アーカイブ
×

この広告は30日以上新しい記事の更新がないブログに表示されております。