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

広告

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

2015年05月06日

MATLABによるPan Active Market Databaseへのアクセス方法

書籍”Rubyではじめるシステムトレード”ではRubyでPanrolling社の株価データベースであるPan Active Market Databaseへのアクセス方法が紹介されている。その中で少しActiveXやCOM、OLEなどについて触れらている。
MATLABでこのデータベースにアクセスできないかと調べてみたが良くわからない。ActiveXなどの知識は全くないので、Rubyのコードを参考に適当にMATLABのコードを打ち込んでいたら出来た!

RubyやExcelのサンプルコードではcalendarという名前の変数が使われているが、MATLABではcalendarという関数があるので、日付関係の変数名を例えばdayinfoなどとしておく。さらに引数はシングルクォートで囲む。

> dayinfo = actxserver('ActiveMarket.Calendar')
> prices = actxserver('ActiveMarket.Prices')

これらを定義した後で、価格を読み込むときは証券コードをシングルクォートで囲むことに注意をして、
> prices.Read('1001")
> prices.Begin

ans = 5632

> prices.End

ans = 8191

とおなじみの値が出力される。

日付に関しては、
> dayinfo.Date(5632)

ans = 2005/06/20

> dayinfo.DatePosition('2015/5/1')

ans = 8191

とシングルクォートで囲むことに注意すれば、あとはRubyやExcelと同じ。MATLABを使って全株価データをMySQLなどのデーターベースに移せば、様々な環境でシステムが開発できそう。プログラム言語は何でもいいはずだが、どういう環境にするか…
posted by itot at 05:04| Comment(0) | TrackBack(0) | MATLAB

COURSERAのクラス進捗 5/6/2015

現在、COURSERAでシステムトレード開発に活かせそうな以下のクラスを受講している。

  • Introduction of Programming with MATLAB
  • Computational Neuroscience
  • Developing Innovative Ideas for New Companies: The First Step in Entrepreneurship
  • R Programming
  • Developing Data Products
  • Reproducible Research
  • Statistical Inference
  • Practical Machine Learning
  • Regression Models



”Introduction of Programming with MATLAB”はWeek6まで終了。Week7が始まるのを待っているところ。”Computational Neuroscience”と”Developing Innovative Ideas for New Companies: The First Step in Entrepreneurship”はWeek1まで終了。

特にR関係の勉強を進めていて、”Regression Models”はWeek2までビデオ視聴のみ終了、”Practical Machine Learning”をWeek4までビデオ視聴のみ終了。順次受講を進めていく。

”Practical Machine Learning”は全てのビデオを視聴したが、まだ理解がいまいち。QUIZを解きながら復習して理解を深めるつもり。機械学習の応用例として分類に関するものが多く紹介されている。これはマーケットの状態が”上昇局面”なのか”下降局面”なのか、判定することなどに使えるかも?株価などの時系列データの予測に関する例はWeek4で少し紹介されている。コードは以下の通り。Quantmodは株価などの解析に使えるパッケージのようだ。これもいろいろ使えそうなので、もう少し調べてみよう。またforecastパッケージは名前の通り、予測用のものか。


library(quantmod)
library(forecast)
from.dat <- as.Date("01/01/08", format="%m/%d/%y")
to.dat <- as.Date("12/31/13", format="%m/%d/%y")
getSymbols("IBM",src="google",from = from.dat, to=to.dat)
head(IBM)
mIBM <- to.monthly(IBM)
ibmOpen <- Op(mIBM)
ts1 <- ts(ibmOpen,frequency=12)
plot(ts1,xlab="Years+1",ylab="IBM")

ibm.png


plot(decompose(ts1),xlab="Years+1")

ibm2.png


decompose(ts1)
ts1Train <- window(ts1,start=1,end=5)
ts1Test <- window(ts1,start=5,end=(7-0.01))
ts1Train
plot(ts1Train)
lines(ma(ts1Train,order=3),col="red")

ibm3.png


ets1 <- ets(ts1Train,model="MMM")
fcast <- forecast(ets1)
plot(fcast); lines(ts1Test,col="red")
accuracy(fcast,ts1Test)

ibm4.png



クラスではグーグル(GOOG)の株価が使われているが、以下のエラーがでるので銘柄をIBMに変更した。

Error in `index<-.xts`(`*tmp*`, value = integer(0)) :
unsupported 'index' index type of class 'integer'
In addition: Warning message:
In to.period(x, "months", indexAt = indexAt, name = name, ...) :
missing values removed from data

実行していくと、

> head(IBM)
IBM.Open IBM.High IBM.Low IBM.Close IBM.Volume
2008-01-02 108.99 108.99 104.17 104.69 9503410
2008-01-03 104.83 105.57 103.98 104.90 7529206
2008-01-04 103.95 103.95 100.48 101.13 11034849
2008-01-07 100.25 101.00 99.03 100.05 12650525
2008-01-08 100.05 100.38 97.17 97.59 9434330
2008-01-09 97.76 99.15 97.16 98.31 10922994

問題なく株価が取得できていて、decompose関数で株価をseasonal、trend、randなどの要因に分解する。

> decompose(ts1)
$x
Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
1 108.99 107.16 113.86 115.20 121.06 128.49 117.50 128.52 122.87 115.51 92.64 80.95
2 83.89 90.60 91.17 96.13 103.78 106.94 105.00 118.88 117.67 119.39 120.77 127.29
3 131.18 123.23 127.50 128.95 129.39 124.69 123.55 129.25 125.31 135.51 143.64 143.61
4 147.21 162.11 163.15 163.70 172.11 168.90 171.61 182.60 172.71 174.36 181.55 187.01
5 186.73 193.21 197.23 208.96 207.18 190.12 196.36 196.96 196.61 208.01 194.68 190.76
6 194.09 204.65 200.65 212.80 201.87 208.25 192.15 196.65 183.63 185.34 179.81 179.46

$seasonal
Jan Feb Mar Apr May Jun Jul Aug Sep
1 -4.7280278 0.2221389 0.3280556 5.4078056 4.8574722 0.2241389 -1.8386111 5.0778056 -0.6658611
2 -4.7280278 0.2221389 0.3280556 5.4078056 4.8574722 0.2241389 -1.8386111 5.0778056 -0.6658611
3 -4.7280278 0.2221389 0.3280556 5.4078056 4.8574722 0.2241389 -1.8386111 5.0778056 -0.6658611
4 -4.7280278 0.2221389 0.3280556 5.4078056 4.8574722 0.2241389 -1.8386111 5.0778056 -0.6658611
5 -4.7280278 0.2221389 0.3280556 5.4078056 4.8574722 0.2241389 -1.8386111 5.0778056 -0.6658611
6 -4.7280278 0.2221389 0.3280556 5.4078056 4.8574722 0.2241389 -1.8386111 5.0778056 -0.6658611
Oct Nov Dec
1 1.3195556 -4.0671944 -6.1372778
2 1.3195556 -4.0671944 -6.1372778
3 1.3195556 -4.0671944 -6.1372778
4 1.3195556 -4.0671944 -6.1372778
5 1.3195556 -4.0671944 -6.1372778
6 1.3195556 -4.0671944 -6.1372778

$trend
Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
1 NA NA NA NA NA NA 111.6833 109.9475 108.3121 106.5721 105.0575 103.4396
2 102.0208 101.0983 100.4800 100.4250 101.7587 104.8617 108.7629 112.0929 114.9663 117.8475 120.2821 122.0887
3 123.6012 124.8062 125.5567 126.5467 128.1712 129.8042 131.1521 133.4400 136.5454 139.4787 142.7067 146.3287
4 150.1733 154.3987 158.5967 162.1904 165.3888 168.7767 172.2317 175.1742 177.8900 181.1958 184.5429 186.8883
5 188.8038 190.4333 192.0275 194.4254 196.3746 197.0779 197.5408 198.3242 198.9433 199.2458 199.1846 199.7188
6 200.2987 200.1104 199.5567 198.0712 196.5071 195.4167 NA NA NA NA NA NA

$random
Jan Feb Mar Apr May Jun Jul Aug Sep
1 NA NA NA NA NA NA 7.6552778 13.4946944 15.2237778
2 -13.4028056 -10.7204722 -9.6380556 -9.7028056 -2.8362222 1.8541944 -1.9243056 1.7092778 3.3696111
3 12.3067778 -1.7983889 1.6152778 -3.0044722 -3.6387222 -5.3383056 -5.7634722 -9.2678056 -10.5695556
4 1.7646944 7.4891111 4.2252778 -3.8982222 1.8637778 -0.1008056 1.2169444 2.3480278 -4.5141389
5 2.6542778 2.5545278 4.8744444 9.1267778 5.9479444 -7.1820556 0.6577778 -6.4419722 -1.6674722
6 -1.4807222 4.3174444 0.7652778 9.3209444 0.5054444 12.6091944 NA NA NA
Oct Nov Dec
1 7.6183611 -8.3503056 -16.3523056
2 0.2229444 4.5551111 11.3385278
3 -5.2883056 5.0005278 3.4185278
4 -8.1553889 1.0742778 6.2589444
5 7.4446111 -0.4373889 -2.8214722
6 NA NA NA

$figure
[1] -4.7280278 0.2221389 0.3280556 5.4078056 4.8574722 0.2241389 -1.8386111 5.0778056 -0.6658611
[10] 1.3195556 -4.0671944 -6.1372778

$type
[1] "additive"

attr(,"class")
[1] "decomposed.ts"

これがRを使った1つの時系列データの予測方法と言えそうだ。

参考情報として紹介されているURL
http://www.google.com/trends/correlate
http://www.newscientist.com/blogs/onepercent/2011/05/google-correlate-passes-our-we.html
http://www.otexts.org/fpp/6/1
http://www.otexts.org/fpp/7/6

そして以下の書籍がRを使った時系列データの予測方法を勉強するのに良さそうだ。今後入手して、システム開発に活かす予定。

Forecasting:principles and practices


また株価関係のquantmodとquandlパッケージに関しても調査しておきたい。


posted by itot at 01:55| Comment(0) | TrackBack(0) | COURSERA

2015年05月05日

Pan Active Market Databaseの利用3

RubyによるPan Active Market Databaseからの株価データ取得を試みている。

”Rubyではじめるシステムトレード”ではRuby2.0や2.1でもサンプルコードを動かせるということになっているが、WindowsにインストールされているRubyのバージョンは2.2であった。念のために本で使用されているバージョンである1.9.3に合わせてみる。

本をよく読んでみるとPricesクラスのメソッドとして
Read   四本値と出来高を読み出します
Begin   日付位置の最小を取得します
End    日付位置の最大を取得します
IsClosed  指定した日付位置が休場日かどうか調べます
Open  指定した日付位置の始値を取得します
High  指定した日付位置の高値を取得します
Low  指定した日付位置の安値を取得します
Close  指定した日付位置の終値を取得します
Volume  指定した日付位置の出来高を取得します
がある。

irbを起動して日付と株価をPan Active Market Databaseから取得するクラスを作成する。

> require "win32ole"
> calendar = WIN32OLE.new("ActiveMarket.Calendar")
> prices = WIN32OLE.new("ActiveMarket.Prices")

日経平均の証券コード(1001)を用いる。

> prices.Read(1001)
これは"nil"が返ってくるが、続けてBeginとEndメソッドを試す。

> prices.Begin
=> 5632
> prices.End
=> 8191

これが株価を利用できる日付位置だと思われる。試しに、Calendarクラスから日付を調べると期間はほぼ10年になり、最新の日付は2015年の5月1日で、5月1日にPanデータ管理で手動でデータを更新した事実と辻褄があう。

> calendar.Date(5632)
=> 2005-06-20 00:00:00 +0900
> calendar.Date(8191)
=> 2015-05-01 00:00:00 +0900

株価を取得するためにOpenメソッドを使うと、

> prices.Open(5632)
=> 11539.0

と株価が返ってくるようになった!どうやら株価の日付指定で、不正な値を指定していたようだ。一気に株価を取得するためにループを使うと、

> (5632 .. 8191).each {|i| puts prices.Open(i)}

11539.0
11474.0
11487.0
11539.0
11480.0
11445.0
11421.0
11567.0
11573.0
11573.0
11664.0
11645.0
11648.0
11586.0
11563.0
11676.0
11737.0
11705.0
11715.0
11825.0
WIN32OLERuntimeError: (in OLE method `Open': )
OLE error code:C1010018 in ActiveMarket.Prices.1
*****************文字化け?****************************
HRESULT error code:0x80020009
Exception occurred.
from (irb):45:in `method_missing'
from (irb):45:in `block in irb_binding'
from (irb):45:in `each'
from (irb):45
from C:/Ruby193/bin/irb:12:in `< main >'


と良くわからないエラーが出力され、終了する。
とりあえず株価は取得できるようになったが何かおかしい。エラーが出るところは日付位置が5652の場所だ。試しにこの場所だけ以下のように株価取得を試みるも、

> prices.Open(5652)

同じエラーがでる。これは本で説明されているエラーコードC1010010(日付位置としてあり得ない値を引数とした場合)とは異なる。日付位置5632から8191の間で適当に区間を決めてprice.Open(..)を実行してみると、やはり同じエラーが出る日付位置がある。不思議なことに全記事のExcelのサンプルVBAでPan Active Market Databaseから株価を取得すると、日付位置5652でも株価が存在する。しかしExcelのデータを良く見ると、問題が起きる日付位置とその次の日付位置の株価が同じになっている。さらにエラーが出る日付位置を調べていくと、どうも休日に該当するように見える。

そこでメソッドIsClosedを試してみる。

> prices.IsClosed(5652)
=> -1
> prices.IsClosed(5651)
=> 0
となり、おそらくIsClosedメソッドは休日に当たる日は-1を返すのではないだろうか。そうすると上記のエラーが出力される日は休日にあたり、株価がないということでエラーの原因が納得できる。

IsClosedが-1になる日付位置を除去する以下の簡単なスクリプトを書いて実行してみると、一気に株価が取得できた!日付をチェックしてみる必要があるが、とりあえずはこれで良さそう。原因はRubyのバージョンではなかったので、最新版に戻そう。

require "win32ole"
calendar = WIN32OLE.new("ActiveMarket.Calendar")
prices = WIN32OLE.new("ActiveMarket.Prices")

prices.Read(1001)

for i in 5632..8191
if prices.IsClosed(i) == 0 then
puts prices.Open(i)
else
next
end
end


2015年05月04日

Pan Active Market Databaseの利用2

"Rubyではじめるシステムトレード”に習って、システム開発を進めている。Panrolling社の相場アプリケーションの試用版をインストールし、株式データの取得を試みている。

本のようにWindows上でirbからデータベースにアクセスしてみる。

irb.png


日付のデータへは、calendar = WIN32OLE.new("ActiveMarket.Calendar")でcalendarを定義したあと、
calendar.Date(..)、calendar.DatePosition(..)からアクセスできる。しかし株価がなぜか読み出せない。

株価データへは、prices = WIN32OLE.new("ActiveMarket.Prices")でpricesを定義したあと、prices.Read(..)、prices.Open(..)等でアクセスできるはずなのだが、prices.Read(..)でnilが返ってくる。試しに他の証券コードを入れてみても全てnilになってしまう。

Pan Active Market Databaseに関しては以下の書籍にも記述があった。






ExcelVBAのサンプルコードを以下から入手し、Excelでのデータベースへのアクセスを試みる。
http://www.panrolling.com/books/gr/robot.html

irbで試した同じこと(証券コード8604)を、入手したサンプルコード"第2章(Pan Active Database).xls"で試してみる

vba.png


codeを8604に変更し、マクロを実行すると以下のようにExcelシート上に株価が抽出される。

price.png


期間は2006/03/08〜2015/05/01となっている。

サンプルコードを見る限り、Excelで行っていることをRubyでやっているだけのことだと思うのだが、なぜかRubyでPan Active Market Databaseの株価データにアクセス出来ない。

[課題]
  • open_http': 999 Unable to process request at this time -- error 999 (OpenURI::HTTPError)の原因
  • RubyからPan Active Market Database株価データへのアクセス

2015年05月03日

Pan Active Market Databaseの利用

株価のヒストリカルデータの取得方法として、”Rubyではじめるシステムトレード”で紹介されている
Pan Active Market Databaseをテストしてみる。

Panrolling社のサイトによると個人でこのデーターベースは無料で利用できるようだ。
http://www.panrolling.com/pansoft/amarket/
相場アプリケーションの試用版の中に含まれているということなので、最新版Rel. 5.02をダウンロードする。
http://www.panrolling.com/pansoft/download.html
Windows環境でしか使えないのが残念だ。理想的にはLinux環境でアクセスできるといいのだが。まずはどんなものか試してみよう。

ダウンロードしたインストーラーを起動すると、ファイルの解凍が始まる。契約に同意する。

panrolling1.png


試用版なので、登録番号は入力しない。名前は必須。

panrolling7.png


インストール先フォルダはデフォルトで設定。

panrolling3.png


インストール方法もデフォルトの”おまかせ”。

panrolling4.png


このままでインストール。

panrolling6.png


デフォルトの”全銘柄と主市場のみ”を選択。

panrolling2.png


しばらくしてインストールは無事終了!

早速アプリケーションを起動してみる。
panapp.png


Panデータ管理おそらくデーターベースに関連しているものと思われるが、試用版なので機能が制限されるようだ。最新のデータ取り込み?らしき操作を行った所、”利用者を登録されない場合、2015年6月以降この機能を使えません”と表示される。データの更新はできたようだが。
相場アプリケーションというのを購入しないと無期限での最新データ更新機能は使えないのかもしれない。チャートギャラリーのスタンダード版で30000円。今はデーターの質よりもシステムを作成するほうが先なので、今のところは購入を見送ろう。
ただExcelでデータを取り出せるようなので、それらをLinux上のデーターベースに格納できると将来的には良さそう。

COURSERAのクラス進捗 5/3/2015

明日からまたR関係のクラスが始まる。以下のクラスを受講する。1月で6つのクラスを受講するのはかなり厳しいが、連休で時間があるので来週集中的にRをマスターする。

  • R Programming
  • Reproducible Research
  • Statistical Inference
  • Practical Machine Learning
  • Regression Models
  • Developing Data Products


1つ目のクラスは以前に修了しているが、復習のためにもう一度受講。講師のテキストを読んだので、さくさくと進めていくつもり。2−5つ目のクラスはWeek3までやっては落としの繰り返し。特にWeek3で結構な難易度で量のプログラミングの宿題がまとまってでるので、いつも時間がなく提出できずにいる。今度こそ修了させたい。6つ目は新しく受講。Rは非常に有用なツールなので、システムトレードの開発に活用していきたい。

とりあえず"Regression Models"と”Practical Machine Learning"のWeek1のビデオは視聴終了。クラスが始まったら早速QUIZに取り組むつもり。

Machine Learningのクラスで紹介されているのは以下の本。ちょっとこれを短時間で読み切るのはハードルが高そうか。いずれは機械学習もトレードにとりいれていきたいので、ちょっとずつは読んでいくか。



MATLABのクラスのWeek7が待ち遠しい…
posted by itot at 20:47| Comment(0) | TrackBack(0) | COURSERA

Quantitative Trading: How to Build Your Own Algorithmic Trading Business 5/3/2015

"Quantitative Trading: How to Build Your Own Algorithmic Trading Business"を読みながらMATLABでのシステム開発の方向性を検討中。

とにかく何らかの”手法”はインターネットや書籍から見つけることができ、それらを改良してトレードのビジネスを始めることは可能なようだ。自分の状況にあったトレードを行うために、次のようなことを考えてみるとよいそうだ。

How much time do you have for boby-sitting your trading program?
How good a programmer are you?
How much capital do you have?
Is your goal to earn steady monthly income or to strive for a large, long-term capital gain?

そしてさらにトレード手法を絞り込むために、

Does it outperform a benchmark?
Does it have a high enough Sharpe ratio?
Does it have a small enough drawdown and short enough drawdown duration?
Does the backtest suffer from survivorship bias?
Does the strategy lose steam in recent years compared to its earlier years?
Dos the strategy have its own niche that protects it from intense competition from large institutional money managers?

そしてバックテストを始めるわけであるが、ツールとして考えられるのは
  • Excel
  • MATLAB
  • O-Matrix, Octave, Scilab
  • Trade Station

などがある。Tradestationは興味があるが、249900円?!高すぎる…
http://www.tradersshop.com/bin/showprod?c=2011035700009
しかしTradestationは販売が終了しているようだ。マネックス証券がTradestation社を買収したとあるから、マネックス証券に口座を作れば使えるのか?
プロフェッショナル用のツールもいくつか紹介されているが、全部現在のところはリンク切れになっている。以下のリンクのみつながるが、Morningstarのサイトへ行ってしまう。

Logical Information Machines
http://www.lim.com

バックテスト用のヒストリカルデータの入手先としては、以下のようなものが利用できる。

Historical data source

http://Finance.yahoo.com

http://CSIdata.com

http://CRSP.com

http://Oanda.com

http://DTN.com

http://GainCapital.com

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

書籍”Rubyではじめるシステムトレード”のサンプルスクリプトが動くことを目指している。
問題は以下の2つ
  • 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)の原因


シミュレーションの方を動くようにしたいので、2つ目のエラーを調査。理由がよくわからないのでWindows環境でサンプルコードを実行できるようにした。そしてサンプルコードを実行しても同じエラーがでることがわかった。

エラーの該当箇所に引数indexを表示させるようにし

def market(index)
p index
section = @list_loader.market_sections[index]

動作チェックスクリプトを実行してみる。
$ruby ./check/estrangement_entry_check.rb

確かに”nil”が出力される。つまり関数marketへの引数"index"がnilになっているということのようだ。
indexが定義されている箇所をみると、

def initialize(params)
@data_dir = params[:data_dir] || "data"
@stock_list = params[:stock_list] || raise("<96>Á<95>¿<83><8a><83>X<83>g<82>ð<8e>w<92>è<82>μ<82>Ä<82>-<82>¾<8 2>3<82>¢")
@market_section = params[:market_section]
@list_loader = StockListLoader.new("#{@data_dir}/#{@stock_list}")
p @list_loader
end
この段階でindexがnilになっている。code正しく設定されているようなので、問題があるのは@list_loaderあたりのようだ。@list_loaderを出力してみると、以下のようになり"tosho_list.txt"の内容と同じ。

@stock_list=[["1305", "ETF", "10\n"], ["1306", "ETF", "10\n"], ["1308", "ETF", "100\n"], ["1309", "ETF", "1\n"], ["1310", "ETF", "10\n"], ["1311", "ETF", "10\n"], ["1312", "ETF", "1\n"], ["1313", "ETF", "10\n"], ["1314", "ETF", "100\n"], ["1316", "ETF", "10\n"], ["1317", "ETF", "10\n"], ["1318", "ETF", "10\n"], ["1319", "ETF", "1000\n"], ["1320", "ETF", "1\n"], ["1321", "ETF", "1\n"], ["1322", "ETF", "10\n"], ["1323", "ETF", "100\n"], ["1324", "ETF", "100\n"], ["1325", "ETF", "100\n"], ["1326", "ETF", "1\n"], ["1327", "ETF", "1\n"], ["1328", "ETF", "10\n"], ["1329", "ETF", "1\n"], ["1330", "ETF", "10\n"], ["1343", "ETF", "10\n"], ["1344", "ETF", "10\n"], ["1345", "ETF", "100\n"], ["1346", "ETF", "1\n"], ["1347", "ETF", "10\n"], ["1348", "ETF", "10\n"], ["1349", "ETF", "1\n"], ["1356", "ETF", "10\n"], ["1357", "ETF", "1\n"], ["1358", "ETF", "1\n"], ["1360", "ETF", "10\n"], ["1361", "ETF", "1\n"], ["1362", "ETF", "1\n"], ["1363", "ETF", "1\n"], ["1364", "ETF", "1\n"], ["1365", "ETF", "1\n"], ["1366", "ETF", "1\n"], ["1367", "ETF", "1\n"], ["1368", "ETF", "1\n"], ["1369", "ETF", "1\n"], ["1385", "ETF", "1\n"], ["1386", "ETF", "1\n"], ["1387", "ETF", "1\n"], ["1388", "ETF", "1\n"], ["1389", "ETF", "1\n"], ["1390", "ETF", "1\n"], ["1391", "ETF", "1\n"], ["1392", "ETF", "1\n"], ["1393", "ETF", "1\n"], ["1394", "ETF", "1\n"], ["1397", "ETF", "1\n"], ["1398", "ETF", "10\n"], ["1540", "ETF", "1\n"], ["1541", "ETF", "1\n"], ["1542", "ETF", "1\n"], ["1543", "ETF", "1\n"], ["1544", "ETF", "10\n"], ["1545", "ETF", "10\n"], ["1546", "ETF", "1\n"], ["1547", "ETF", "10\n"], ["1548", "ETF", "10\n"], ["1549", "ETF", "10\n"], ["1550", "ETF", "10\n"], ["1551", "ETF", "10\n"], ["1552", "ETF", "1\n"], ["1554", "ETF", "10\n"], ["1555", "ETF", "10\n"], ["1556", "ETF", "10\n"], ["1557", "ETF", "1\n"], ["1559", "ETF", "1\n"], ["1560", "ETF", "1\n"], ["1561", "ETF", "1\n"], ["1562", "ETF", "10\n"], ["1563", "ETF", "1\n"], ["1565", "ETF", "1\n"], ["1566", "ETF", "1\n"], ["1567", "ETF", "10\n"], ["1568", "ETF", "10\n"], ["1569", "ETF", "10\n"], ["1570", "ETF", "1\n"], ["1571", "ETF", "1\n"], ["1572", "ETF", "10\n"], ["1573", "ETF", "10\n"], ["1574", "ETF", "10\n"], ["1575", "ETF", "10\n"], ["1576", "ETF", "10\n"], ["1577", "ETF", "1\n"], ["1578", "ETF", "1\n"], ["1579", "ETF", "10\n"], ["1580", "ETF", "10\n"], ["1581", "ETF", "1\n"], ["1582", "ETF", "1\n"], ["1583", "ETF", "1\n"], ["1584", "ETF", "10\n"], ["1585", "ETF", "10\n"], ["1586", "ETF", "1\n"], ["1587", "ETF", "1\n"], ["1588", "ETF", "1\n"], ["1589", "ETF", "1\n"], ["1590", "ETF", "1\n"], ["1591", "ETF", "1\n"], ["1592", "ETF", "1\n"], ["1593", "ETF", "1\n"], ["1595", "ETF", "10\n"], ["1596", "ETF", "10\n"], ["1597", "ETF", "10\n"], ["1598", "ETF", "1\n"], ["1599", "ETF", "1\n"], ["1610", "ETF", "10\n"], ["1612", "ETF", "100\n"], ["1613", "ETF", "10\n"], ["1615", "ETF", "100\n"], ["1617", "ETF", "1\n"], ["1618", "ETF", "1\n"], ["1619", "ETF", "1\n"], ["1620", "ETF", "1\n"], ["1621", "ETF", "1\n"], ["1622", "ETF", "1\n"], ["1623", "ETF", "1\n"], ["1624", "ETF", "1\n"], ["1625", "ETF", "1\n"], ["1626", "ETF", "1\n"], ["1627", "ETF", "1\n"], ["1628", "ETF", "1\n"], ["1629", "ETF", "1\n"], ["1630", "ETF", "1\n"], ["1631", "ETF", "1\n"], ["1632", "ETF", "1\n"], ["1633", "ETF", "1\n"], ["1634", "ETF", "1\n"], ["1635", "ETF", "1\n"], ["1636", "ETF", "1\n"], ["1637", "ETF", "1\n"], ["1638", "ETF", "1\n"], ["1639", "ETF", "1\n"], ["1640", "ETF", "1\n"], ["1641", "ETF", "1\n"], ["1642", "ETF", "1\n"], ["1643", "ETF", "1\n"], ["1644", "ETF", "1\n"], ["1645", "ETF", "1\n"], ["1646", "ETF", "1\n"], ["1647", "ETF", "1\n"], ["1648", "ETF", "1\n"], ["1649", "ETF", "1\n"], ["1650", "ETF", "1\n"], ["1670", "ETF", "100\n"], ["1671", "ETF", "1\n"], ["1672", "ETF", "1\n"], ["1673", "ETF", "10\n"], ["1674", "ETF", "1\n"], ["1675", "ETF", "1\n"], ["1676", "ETF", "1\n"], ["1677", "ETF", "10\n"], ["1678", "ETF", "100\n"], ["1679", "ETF", "10\n"], ["1680", "ETF", "10\n"], ["1681", "ETF", "10\n"], ["1682", "ETF", "100\n"], ["1683", "ETF", "10\n"], ["1684", "ETF", "10\n"], ["1685", "ETF", "10\n"], ["1686", "ETF", "10\n"], ["1687", "ETF", "10\n"], ["1688", "ETF", "10\n"], ["1689", "ETF", "100\n"], ["1690", "ETF", "10\n"], ["1691", "ETF", "10\n"], ["1692", "ETF", "100\n"], ["1693", "ETF", "10\n"], ["1694", "ETF", "10\n"], ["1695", "ETF", "100\n"], ["1696", "ETF", "100\n"], ["1697", "ETF", "10\n"], ["1698", "ETF", "10\n"], ["1699", "ETF", "10\n"], ["2021", "ETF", "1\n"], ["2022", "ETF", "1\n"], ["2023", "ETF", "1\n"], ["2024", "ETF", "1\n"], ["2025", "ETF", "1\n"], ["2026", "ETF", "1\n"], ["2027", "ETF", "1\n"], ["2028", "ETF", "1\n"], ["2029", "ETF", "1\n"], ["2030", "ETF", "1\n"], ["2031", "ETF", "1\n"], ["2032", "ETF", "1\n"], ["2033", "ETF", "1\n"], ["2034", "ETF", "1\n"], ["2035", "ETF", "1\n"], ["2036", "ETF", "1\n"], ["2037", "ETF", "1\n"], ["2038", "ETF", "1\n"], ["2039", "ETF", "1\n"], ["2040", "ETF", "1\n"], ["2041", "ETF", "1\n"], ["2042", "ETF", "1\n"], ["2043", "ETF", "1\n"], ["2044", "ETF", "1\n"], ["2045", "ETF", "1\n"], ["2046", "ETF", "1\n"], ["2047", "ETF", "1\n"], ["2048", "ETF", "1\n"], ["2049", "ETF", "1\n"], ["3226", "REIT", "1\n"], ["3227", "REIT", "1\n"], ["3229", "REIT", "1\n"], ["3234", "REIT", "1\n"], ["3240", "REIT", "1\n"], ["3249", "REIT", "1\n"], ["3263", "REIT", "1\n"], ["3269", "REIT", "1\n"], ["3278", "REIT", "1\n"], ["3279", "REIT", "1\n"], ["3281", "REIT", "1\n"], ["3282", "REIT", "1\n"], ["3283", "REIT", "1\n"], ["3285", "REIT", "1\n"], ["3287", "REIT", "1\n"], ["3290", "REIT", "1\n"], ["3292", "REIT", "1\n"], ["3295", "REIT", "1\n"], ["3296", "REIT", "1\n"], ["3298", "REIT", "1\n"], ["3308", "REIT", "1\n"], ["3309", "REIT", "1\n"], ["3451", "REIT", "1\n"], ["3453", "REIT", "1\n"], ["3455", "REIT", "1\n"], ["8951", "REIT", "1\n"], ["8952", "REIT", "1\n"], ["8953", "REIT", "1\n"], ["8954", "REIT", "1\n"], ["8955", "REIT", "1\n"], ["8956", "REIT", "1\n"], ["8957", "REIT", "1\n"], ["8958", "REIT", "1\n"], ["8959", "REIT", "1\n"], ["8960", "REIT", "1\n"], ["8961", "REIT", "1\n"], ["8962", "REIT", "1\n"], ["8963", "REIT", "1\n"], ["8964", "REIT", "1\n"], ["8965", "REIT", "1\n"], ["8966", "REIT", "1\n"], ["8967", "REIT", "1\n"], ["8968", "REIT", "1\n"], ["8969", "REIT", "1\n"], ["8970", "REIT", "1\n"], ["8972", "REIT", "1\n"], ["8973", "REIT", "1\n"], ["8974", "REIT", "1\n"], ["8975", "REIT", "1\n"], ["8976", "REIT", "1\n"], ["8977", "REIT", "1\n"], ["8978", "REIT", "1\n"], ["8979", "REIT", "1\n"], ["8980", "REIT", "1\n"], ["8981", "REIT", "1\n"], ["8982", "REIT", "1\n"], ["8983", "REIT", "1\n"], ["8984", "REIT", "1\n"], ["8985", "REIT", "1\n"], ["8986", "REIT", "1\n"], ["8987", "REIT", "1\n"]]

@data_dirを出力すると"data"、@stock_listは"tosho_list.txt"が出力される。@market_sectionが"nil"である。市場を設定していないということか?

書籍の"text_to_stock.rb"の解説を読んでいるが、Rubyの知識がほとんどないので全くわからない。indexは与えられた証券コードが、銘柄リストの何番目にあるのかを示すもののようだ。
試しに、"./lib/stock_list_loader.rb"の関連していると思われる箇所、
def codes
@codes ||= stock_info.map {|info| info[:code]}
p @codes
end
で@codesを出力してみると、
[1305, 1306, 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1316, 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329, 1330, 1343, 1344, 1345, 1346, 1347, 1348, 1349, 1356, 1357, 1358, 1360, 1361, 1362, 1363, 1364, 1365, 1366, 1367, 1368, 1369, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394, 1397, 1398, 1540, 1541, 1542, 1543, 1544, 1545, 1546, 1547, 1548, 1549, 1550, 1551, 1552, 1554, 1555, 1556, 1557, 1559, 1560, 1561, 1562, 1563, 1565, 1566, 1567, 1568, 1569, 1570, 1571, 1572, 1573, 1574, 1575, 1576, 1577, 1578, 1579, 1580, 1581, 1582, 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1590, 1591, 1592, 1593, 1595, 1596, 1597, 1598, 1599, 1610, 1612, 1613, 1615, 1617, 1618, 1619, 1620, 1621, 1622, 1623, 1624, 1625, 1626, 1627, 1628, 1629, 1630, 1631, 1632, 1633, 1634, 1635, 1636, 1637, 1638, 1639, 1640, 1641, 1642, 1643, 1644, 1645, 1646, 1647, 1648, 1649, 1650, 1670, 1671, 1672, 1673, 1674, 1675, 1676, 1677, 1678, 1679, 1680, 1681, 1682, 1683, 1684, 1685, 1686, 1687, 1688, 1689, 1690, 1691, 1692, 1693, 1694, 1695, 1696, 1697, 1698, 1699, 2021, 2022, 2023, 2024, 2025, 2026, 2027, 2028, 2029, 2030, 2031, 2032, 2033, 2034, 2035, 2036, 2037, 2038, 2039, 2040, 2041, 2042, 2043, 2044, 2045, 2046, 2047, 2048, 2049, 3226, 3227, 3229, 3234, 3240, 3249, 3263, 3269, 3278, 3279, 3281, 3282, 3283, 3285, 3287, 3290, 3292, 3295, 3296, 3298, 3308, 3309, 3451, 3453, 3455, 8951, 8952, 8953, 8954, 8955, 8956, 8957, 8958, 8959, 8960, 8961, 8962, 8963, 8964, 8965, 8966, 8967, 8968, 8969, 8970, 8972, 8973, 8974, 8975, 8976, 8977, 8978, 8979, 8980, 8981, 8982, 8983, 8984, 8985, 8986, 8987]
"tosho_list.txt"の証券コード一覧を取得しているようだ。

"estrangement_entry_check.rb"でシミュレーションを銘柄の証券コードがこのリストの中にないことに気づいた…
証券コードを設定するところをこの一覧の中にあるものに変更して(デフォルトの設定値は8604)
stock = tts.generate_stock(1677)
このスクリプトを実行してみると、

$ruby ./check/estrangement_entry_check.rb

nil nil
nil nil
nil nil
nil nil
nil nil
nil nil
nil nil
nil nil
nil nil
nil nil
nil nil
nil nil
nil nil
nil nil
nil nil
nil nil
nil nil
nil nil
nil nil
nil long
fail in data 19
nil nil
nil long
fail in data 21
nil long
fail in data 22
nil long
fail in data 23
nil long
fail in data 24
nil long
fail in data 25
nil long
fail in data 26
nil long
fail in data 27
nil long
fail in data 28
nil long
fail in data 29
nil nil
nil nil
nil nil
nil nil
nil nil
nil nil
nil nil
nil nil
nil nil
nil nil
nil nil
nil nil
nil nil
nil nil
nil nil
nil nil
nil nil
nil nil
nil nil
nil nil
nil nil
nil nil
nil nil
nil nil
nil nil
nil nil
nil nil
nil short
fail in data 57
nil short
fail in data 58
nil nil
nil nil
nil nil
nil nil
nil nil
nil nil
nil nil
nil nil
nil nil
nil nil
nil nil
nil nil
nil nil
nil nil
nil nil
nil nil
nil nil
nil nil
nil nil
nil nil
nil nil
nil nil
nil long
fail in data 81
nil long
fail in data 82
nil long
fail in data 83
nil long
fail in data 84
nil long
fail in data 85
nil long
fail in data 86
nil long
fail in data 87
nil long
fail in data 88
nil long
fail in data 89
nil long
fail in data 90
nil long
fail in data 91
nil long
fail in data 92
nil long
fail in data 93
nil long
fail in data 94
nil long
fail in data 95
nil long
fail in data 96
nil long
fail in data 97
nil nil
nil nil
nil nil
nil nil
nil nil
nil long
fail in data 103
nil long
fail in data 104
nil long
fail in data 105
nil long
fail in data 106
nil nil
nil nil

なんとか動くようになったようだ!

同じようにこれまでエラーで動かなかった動作チェックスクリプトを試してみる。
"trading_system_check.rb"スクリプトで証券コード(デフォルト設定値3101)を一覧リストの中にある値に以下のように変更して実行してみる。
trades = simulate(1677)

$ ruby ./check/trading_system_check.rb

[]


�����v

文字化けをしているが、書籍から出力は”総資産”に該当しおそらくトレードが一度も成立していないということであるが、エラーがでず正常に動いたと思われる。

さらに"recorder_check.rb"でも再度動作チェックを行う。同様に証券コードを以下のように修正して(デフォルト設定値は[4063, 7203, 8604])実行する。

results = [1677, 1678, 1679].map do |code|

$ ruby ./check/recorder_check.rb

�L�^�t�H���_ result/test ���łɑ����܂��B�㏑�����܂����H y/n
y
�㏑�����܂�

文字化けしているがy/nを聞かれたあとにyを入力すると、エラーが出ずに終了する。
result/testフォルダの中にファイルが作られている。
1678.csv _setting.rb _stats.csv _stats_for_each_stock.csv
なぜ1678だけcsvファイルがあるのか分からないが、問題なさそうである。

最後に"simulation_check.rb"の動作チェックを行う。証券コードを以下のように修正して(デフォルト値は8604)実行してみよう。

simulation.simulate_a_stock(1678)

$ ruby ./check/simulation_check.rb

�L�^�t�H���_ result/estrangement/test_simulation ���łɑ����܂��B�㏑�����܂����H y/n
y
�㏑�����܂�

また文字化けしているがy/nを聞かれたあとにyを入力すると、エラーが出ずに終了する。
"/result/estrangement/test_simulation"の中に"1678.csv"が作成されている。中を見ると

<8e>æ<88>ø<8e>í<95>Ê,<93>ü<93>ú<95>t,<93>ü<92>l,<90><94><97>Ê,<8f><89><8a>ú<83>X<83>g<83>b<83>v,<8f>o<93>ú<95>t,<8f>o<92>l,<91>1<89>v(<89>~),R<94>{<90><94>,%<91>1<89>v,<8a>ú<8a>Ô
long,2011/05/09,97,100,94,2011/05/17,94,-300,-1.0,-3.0927835051546393,7

これがどうやらトレードの記録のようだ。とうとうサンプルコードが動くようになった!次はデータの取得。

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


また書籍にあるサンプルコードを編集しなおしている人がいるようで、Gitアカウントを見つけた。
https://github.com/tstomoki/trade_simulator
このあたりも参考にさせてもらおう。

2015年05月02日

COURSERAのクラス進捗 5/2/2015

"Introduction to Programming with MATLAB"のWeek6を早速やってみた。今回の話題はLoopで、配列や行列の要素の操作方法を学ぶ。注意するのはMATLABの便利なプログラミング法(Logical indexing)。非常に簡潔にコードが書けるので覚えておきたい。

解説ビデオ


コードの書き方

Problem
Given a vector, v, of scalars, create a second vector, w, that contains only the non-negative elements of v.

Solution
w = [];
jj = 0;
for ii = l:length(v)
if v(ii) >= 0
jj = jj + 1;
w(jj) = v(ii);
end
end

Logical indexing
w = [];
for ii = l:length(v)
if v(ii) >= 0
w = [w v(ii)];
end
end

Videoを全部視聴して、早速宿題も全部解いた。MATLABの習得は順調。


Homework 6 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. neighbor
2. replace_me
3. halfsum
4. large_elements
5. one_per_n
6. approximate_pi
7. separate_by_two
8. divvy
9. square_wave
10. myprime
11. ALL PROBLEMS (gives score and submission code)

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

Problem 2 (replace_me):
Feedback: Your function performed correctly for argument(s) [1 2 3], 2, 4, 5
Feedback: Your function performed correctly for argument(s) [1 2 3], 4, 5, 6
Feedback: Your function performed correctly for argument(s) [1 2 3 4], 5, 6
Feedback: Your function performed correctly for argument(s) [1 2 3 4 5], 6
Feedback: Your function performed correctly for argument(s) [1 2 3 4 5 6 7 8 9 10], 2, 2
Feedback: Your function performed correctly for argument(s) [-3 -5 -4 -1 -4 -5 -4 -3 -5 -2 -2 -4 -5 -2 -2 -2 -5 -5 -5 -5 -1 -5], -2
Feedback: Your function performed correctly for argument(s) [-1 0 0 -1 0 -1 -1 1 -1 0 0 1 0 1 -1 -1 1 1 1 -1], 0, 8, 8

Your solution is correct.

>> hw6
Homework 6 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. neighbor
2. replace_me
3. halfsum
4. large_elements
5. one_per_n
6. approximate_pi
7. separate_by_two
8. divvy
9. square_wave
10. myprime
11. ALL PROBLEMS (gives score and submission code)

Your selection: 11
Grading all problems ...

Problem 1 (neighbor):
Feedback: Your function performed correctly for argument(s) [1 2 3 4]
Feedback: Your function performed correctly for argument(s) [2 1]
Feedback: Your function performed correctly for argument(s) [1 -2 3]
Feedback: Your function performed correctly for argument(s) [8 -3 3 -5 1 -6 -8 -1 7 -2]
Feedback: Your function performed correctly for argument(s) [0.891424671420177 0.110591460888063 0.387170900099125 0.253843788797242 0.452254471901518 0.166431489478154 0.932147364807933 0.223318325589629 0.0984268686900553 0.353520286969166 0.488631127840917 0.20318518569997 0.989441807798946 0.430401071340604]
Feedback: Your function performed correctly for argument(s) [1 2;3 4]
Feedback: Your function performed correctly for argument(s) 1
Feedback: Your function performed correctly for argument(s) []
Feedback: Your function performed correctly for argument(s) zeros(1,0)

Your solution is correct.

Problem 2 (replace_me):
Feedback: Your function performed correctly for argument(s) [1 2 3], 2, 4, 5
Feedback: Your function performed correctly for argument(s) [1 2 3], 4, 5, 6
Feedback: Your function performed correctly for argument(s) [1 2 3 4], 5, 6
Feedback: Your function performed correctly for argument(s) [1 2 3 4 5], 6
Feedback: Your function performed correctly for argument(s) [1 2 3 4 5 6 7 8 9 10], 2, 2
Feedback: Your function performed correctly for argument(s) [-2 -4 -1 -2 -1 -5 -1 -2 -2 -2 -4 -5 -3 -3 -1], -2
Feedback: Your function performed correctly for argument(s) [1 1 -1 -1 1 -1 1 1 1 0 1 1 1 -1 1 1 -1 0 0 0], 0, 8, 8

Your solution is correct.

Problem 3 (halfsum):
Feedback: Your function performed correctly for argument(s) 1
Feedback: Your function performed correctly for argument(s) [1 2 3 4 5 6 7 8 9 10]
Feedback: Your function performed correctly for argument(s) [1;2;3;4;5;6;7;8]
Feedback: Your function performed correctly for argument(s) [1 2 3;4 5 6;7 8 9]
Feedback: Your function performed correctly for argument(s) [6 10 1 1 7;1 3 4 4 1;1 6 8 6 1;1 9 6 2 1;4 3 2 4 6]
Feedback: Your function performed correctly for argument(s) [0.176096965497883 0.654159505385576 0.43017640385498 0.394581939467124 0.951985782991797 0.129182196885905 0.416640945800178 0.531029604185321 0.568692791329085 0.719048028658963 0.127623416818911 0.835350461328278;0.764538226361978 0.765373227521929 0.675946088557486 0.473769946869344 0.471277977678831 0.12241513792208 0.340915324884967 0.138492200282524 0.671503585989359 0.834264538109086 0.618037016165269 0.978937020991224;0.719112286094527 0.989519534988798 0.473231517307113 0.66583340987608 0.103462412135709 0.291149431051823 0.627061220282097 0.778820321334405 0.736324854337908 0.42120001576177 0.917100855398257 0.0675020536247704;0.202463092764134 0.903198227804808 0.596455588137084 0.649654727218335 0.740401705008778 0.614889352736 0.924307136520583 0.499348158063849 0.696828576371973 0.409953224239685 0.717868103959419 0.593911879975349;0.280384804882256 0.734168850407162 0.960112121913415 0.907969942772756 0.154383789374087 0.853991462172677 0.463382672796254 0.479744457946739 0.766305854715115 0.812556952189781 0.696714024452422 0.294971002467269;0.78938463333615 0.673902594744981 0.144389365459141 0.738145399764985 0.864911783053234 0.37541017527314 0.760646968405647 0.262742554391831 0.394295803589881 0.511605662978628 0.523280478282449 0.405137239554395;0.185039538649014 0.821321258769617 0.444561404330805 0.203559739634278 0.698354322253204 0.414459659338655 0.17227321998115 0.247327658846348 0.428446100031067 0.327818542106276 0.688037997077008 0.513847964677426]

Your solution is correct.

Problem 4 (large_elements):
Feedback: Your function performed correctly for argument(s) 1
Feedback: Your function performed correctly for argument(s) [1 2 3 4 5 6 7 8 9 10]
Feedback: Your function performed correctly for argument(s) [10 9 8 7 6 5 4 3 2 1]
Feedback: Your function performed correctly for argument(s) [1 4;5 2;6 0]
Feedback: Your function performed correctly for argument(s) [6 7 8 3 8;6 5 10 1 5;5 7 4 5 7;6 6 8 4 4;1 1 6 7 1]
Feedback: Your function performed correctly for argument(s) [15.3176592389644 1.61097477738744 9.11868646266657 0.340740945207039 3.18055312838712 6.83909544830505;17.7988025118303 18.1013059008894 19.7084577766845 16.9925854818723 5.20462935030034 12.2786239916774;6.17294740982631 9.32011123623242 15.505619664882 11.0691499865279 13.3999200357944 2.73057982301504]

Your solution is correct.

Problem 5 (one_per_n):
Feedback: Your function performed correctly for argument(s) 1
Feedback: Your function performed correctly for argument(s) 2
Feedback: Your function performed correctly for argument(s) 3
Feedback: Your function performed correctly for argument(s) 4
Feedback: Your function performed correctly for argument(s) 8
Feedback: Your function performed correctly for argument(s) 9
Feedback: Your function performed correctly for argument(s) 9.7875
Feedback: Your function performed correctly for argument(s) 9.7876
Feedback: Your function performed correctly for argument(s) 9.7877
Feedback: Your function performed correctly for argument(s) 9.36347732314096
Feedback: Your function performed correctly for argument(s) 9.37115422278818
Feedback: Your function performed correctly for argument(s) 9.87632869803532
Feedback: Your function performed correctly for argument(s) 9.03924032770895
Feedback: Your function performed correctly for argument(s) 9.30329034534588
Feedback: Your function performed correctly for argument(s) 10

Your solution is correct.

Problem 6 (approximate_pi):
Feedback: Your function performed correctly for argument(s) 0.1
Feedback: Your function performed correctly for argument(s) 0.01
Feedback: Your function performed correctly for argument(s) 0.001
Feedback: Your function performed correctly for argument(s) 1e-05
Feedback: Your function performed correctly for argument(s) 1e-08
Feedback: Your function performed correctly for argument(s) 1e-10
Feedback: Your function performed correctly for argument(s) 1e-14
Feedback: Your function performed correctly for argument(s) 1e-15
Feedback: Your function performed correctly for argument(s) 1e-16
Feedback: Your function performed correctly for argument(s) 1

Your solution is correct.

Problem 7 (separate_by_two):
Feedback: Your function performed correctly for argument(s) 1
Feedback: Your function performed correctly for argument(s) 2
Feedback: Your function performed correctly for argument(s) [1;2]
Feedback: Your function performed correctly for argument(s) [1;2;3;4;5;6;7;8;9;10]
Feedback: Your function performed correctly for argument(s) [1 2 3;4 5 6;7 8 9]
Feedback: Your function performed correctly for argument(s) [6 4 7 4 2;3 1 6 3 10;10 8 3 1 2;8 1 5 9 8;2 1 2 10 1]
Feedback: Your function performed correctly for argument(s) [53 98 43 11 6 38 82 69;99 88 92 1 94 75 10 91;87 4 16 1 84 36 81 97;70 44 21 78 1 65 7 45;63 26 24 76 65 75 88 86;66 20 96 8 75 5 78 69;24 69 56 64 35 33 35 99;73 73 31 61 37 65 36 17;17 14 3 100 2 53 83 59;80 72 8 37 28 16 93 10;23 44 81 40 86 28 71 89]

Your solution is correct.

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

Your solution is correct.

Problem 9 (square_wave):
Feedback: Your function performed correctly for argument(s) 1
Feedback: Your function performed correctly for argument(s) 2
Feedback: Your function performed correctly for argument(s) 10
Feedback: Your function performed correctly for argument(s) 100
Feedback: Your function performed correctly for argument(s) 1000
Feedback: Your function performed correctly for argument(s) 4378

Your solution is correct.

Problem 10 (myprime):
Feedback: Your function performed correctly for argument(s) 2
Feedback: Your function performed correctly for argument(s) 3
Feedback: Your function performed correctly for argument(s) 4
Feedback: Your function performed correctly for argument(s) 5
Feedback: Your function performed correctly for argument(s) 8
Feedback: Your function performed correctly for argument(s) 9
Feedback: Your function performed correctly for argument(s) 10
Feedback: Your function performed correctly for argument(s) 11
Feedback: Your function performed correctly for argument(s) 12
Feedback: Your function performed correctly for argument(s) 313
Feedback: Your function performed correctly for argument(s) 659
Feedback: Your function performed correctly for argument(s) 547
Feedback: Your function performed correctly for argument(s) 577
Feedback: Your function performed correctly for argument(s) 180683
Feedback: Your function performed correctly for argument(s) 242653

Your solution is correct.


Score: 100



しかし相変わらず、問題文がわかりにくい。
例えばこれ。

The function replace_me is defined like this: function w = replace_me(v,a,b,c). The first input argument v is a vector, while a, b, and c are all scalars. The function replaces every element of v that is equal to a with b and c. For example, the command >> x = replace_me([1 2 3],2,4,5); makes x equal to [1 4 5 3]. If c is omitted, it replaces occurrences of a with two copies of b. If b is also omitted, it replaces each a with two zeros.

こういう時はDiscussion Forumsで情報が見つかるからいいが…

また今週から始まったクラス"Computational Neuroscience"のWeek1も終了。これは人工知能というよりは、脳のメカニズムをシミュレーションする方法?を解説していくようだ。MATLABやPythonを使って解析をしていくようなので、これらの学習には使えそう。引き続きがんばって学習していこう。
posted by itot at 21:36| Comment(0) | TrackBack(0) | COURSERA

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

"Quantitative Trading: How to Build Your Own Algorithmic Trading Business"で紹介されている、システムトレードの手法を考えるのに役に立つサイト

Business schools’ finance professors’ web sites
http://www.hbs.edu/research/research.html

Social Science Research Network
http://www.ssrn.com

National Bureau of Economic Research
http://www.nber.org

Business schools’ quantitative finance seminars
http://www.nber.org www.ieor.columbia.edu/seminars/

Mark Hulbert’s column in the New York Times’ Sunday business section
http://www.nytimes.com

Buttonwood column in the Economist magazine’s finance section
http://www.economist.com

Yahoo! Finance
http://finance.yahoo.com

TradingMarkets
http://www.TradingMarkets.com

Seeking Alpha
http://www.SeekingAlpha.com

TheStreet.com
http://www.TheStreet.com

The Kirk Report
http://www.TheKirkReport.com

Alea Blog
http://www.aleablog.com

Abnormal Returns
http://www.AbnormalReturns.com

Brett Steenbarger Trading Psychology
http://www.brettsteenbarger.com

My own!
http://epchan.blogspot.com

Elite Trader Wealth-Lab
http://www.Elitetrader.com

Wealth-Lab
http://www.wealth-lab.com

Stocks, Futures and Options magazine
http://www.sfomag.com
ファン
検索
<< 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日以上新しい記事の更新がないブログに表示されております。