2009年3月31日火曜日

Excelのオプションシート

OpenOfficeで使えるようにはしたいかも
http://www.optiontradingtips.com/options101/index.html

2009年3月30日月曜日

日経平均(998407)

微妙に転換点に見えるけど、どうなんだろー

jiji

Rubyで自動売買のシステムを構築してしまったすごいお方が
http://unageanu.sakura.ne.jp/jiji/

勉強させて頂きます。(__

9427

6665

5423

3436

2121

やっちまった。。。

下のチャート、全部だめじゃん。
安値ベースで作られていることになってる。

スクレイピングのスクリプトのデータ並びが、
始値、終値、安値、高値になってるのを見落とした。o..............rz

5銘柄分のチャートを全部削除。
ついでに、rubyとRのスクリプトも修正して、コマンド2発でチャート作成まで完了。

2009年3月29日日曜日

Rでの手順 v2

結構めんどいなぁ。
スクリプト書かないと。

data <- read.csv("9427.csv")
data <- ts(data$close, start=c(2007,4), frequency=248)
jpeg("~/9427.jpg",width=1200,height=800)
GMMA(data, 200)
dev.off()

(株)SUMCO(3436)のGMMA


データ期間:2007/4/1 -> 2009/3/29

Mixi(2121)のGMMA


データの期間:2007/4/1 -> 2009/3/29

jpeg()関数

Rのplot()で出力したのをjpegにして貼付けているんだけど、
macbookでの見た目と同じにするようにしてみた。

単純に、jpeg("~/2121.jpg",height=800, width=1200)とかするだけだった。
凄く良く出来ているなぁ、使いこなしたいけど、いつの日かー

rubyでスクレイピング

ここの記事のスクリプトが動かないなーと思ってたら、
単に文字コードの違いだった。 orz.

http://d.hatena.ne.jp/unageanu/20071102

英辞郎の変換スクリプトも文字コードぽいし、
相性悪いというかちゃんと勉強をしていないというか。。。(--;

引数を受け取る様にして、今日の日付まで取得出来る様にして、
get2.rbでヘッダ付けまでをまとめ。

Rのほうは、処理ミスはしていないと思うけど、最後のデータだけを表示できるようにしてみよう。

usdjpy


ついでに、ドル/円も。
この流れを見る限り、
鰯がいったん流れに負けてるなー
鯨は円安に向けて動き出したようにみえるけどなー

今のままだと、縦横の比率が一緒になるんで、
plot()関数のパラメータを少しいじらないと紛らわしいかもしれん。

2009年3月28日土曜日

GTD + freemind

プロジェクト管理にGTDを生かせないかなーとソフトウェアを漁ってたけど、
どれもピンとくるものはなくー
#個人利用だといいのが多いのですがね。

freemindと組み合わせて使っている人が居ないかと思ったら、
いるもんだ。

なんだけど、テンプレートのリンク先が亡くなってやんの

日経

GMMAで日経平均も出してみたけど、エルピーダと変わらん。
エルピーダって、225銘柄だったっけか

GMMAのコード

Rでの適当コード。
ベタ書きの手抜きし過ぎー

# GUPPY MULTIPLE MOVING AVERAGES
#
# These are two groups of exponential moving averages.
# The short term group is a 3, 5, 8, 10, 12 and 15 day moving averages.
# This is a proxy for the behaviour of short term traders and speculators in the market.
#
# The long term group is made up of 30, 35, 40, 45, 50 and 60 day moving averages.
# This is a proxy for the long term investors in the market.
#
# The relationship within each of these groups tells us when there is agreement on value - when they are
# close together - and when there is disagreement on value - when they are well spaced apart.
#
# The relationship between the two groups tells the trader about the strength of the market action.
# A change in price direction that is well supported by both short and long term investors
# signals a strong trading opportunity. The crossover of the two groups of moving averages is not as
# important as the relationship between them.
# When both groups compress at the same time it alerts the trader to increased price volatility
# and the potential for good trading opportunities.

GMMA <- function(xxx) {
nn <- length(xxx)
attributes(xxx)$tsp <- c(1, nn, 1)

# short
yt03 <- yt05 <- yt08 <- yt10 <- yt12 <- yt15 <- c()
yt30 <- yt35 <- yt40 <- yt45 <- yt50 <- yt60 <- c()

yt03_2 <- yt05_2 <- yt08_2 <- yt10_2 <- yt12_2 <- yt15_2 <- c()
yt30_2 <- yt35_2 <- yt40_2 <- yt45_2 <- yt50_2 <- yt60_2 <- c()

a03 <- 1 - 2 / (3 + 1)
a05 <- 1 - 2 / (5 + 1)
a08 <- 1 - 2 / (8 + 1)
a10 <- 1 - 2 / (10 + 1)
a12 <- 1 - 2 / (12 + 1)
a15 <- 1 - 2 / (15 + 1)

a30 <- 1 - 2 / (30 + 1)
a35 <- 1 - 2 / (35 + 1)
a40 <- 1 - 2 / (40 + 1)
a45 <- 1 - 2 / (45 + 1)
a50 <- 1 - 2 / (50 + 1)
a60 <- 1 - 2 / (60 + 1)

for (ii in 1:nn) {
yt03[ii] <- xxx[ii] * a03^(nn - ii)
yt05[ii] <- xxx[ii] * a05^(nn - ii)
yt08[ii] <- xxx[ii] * a08^(nn - ii)
yt10[ii] <- xxx[ii] * a10^(nn - ii)
yt12[ii] <- xxx[ii] * a12^(nn - ii)
yt15[ii] <- xxx[ii] * a15^(nn - ii)

yt30[ii] <- xxx[ii] * a30^(nn - ii)
yt35[ii] <- xxx[ii] * a35^(nn - ii)
yt40[ii] <- xxx[ii] * a40^(nn - ii)
yt45[ii] <- xxx[ii] * a45^(nn - ii)
yt50[ii] <- xxx[ii] * a50^(nn - ii)
yt60[ii] <- xxx[ii] * a60^(nn - ii)
}

# short group, 3, 5, 8, 10, 12, 15
# long group, 30, 35, 40, 45, 50, 60
for (ii in 1:nn) {
yt03_2[ii] <- (1 - a03) * (sum(yt03[seq(1,ii)]) / a03^(nn - ii))
yt05_2[ii] <- (1 - a05) * (sum(yt05[seq(1,ii)]) / a05^(nn - ii))
yt08_2[ii] <- (1 - a08) * (sum(yt08[seq(1,ii)]) / a08^(nn - ii))
yt10_2[ii] <- (1 - a10) * (sum(yt10[seq(1,ii)]) / a10^(nn - ii))
yt12_2[ii] <- (1 - a12) * (sum(yt12[seq(1,ii)]) / a12^(nn - ii))
yt15_2[ii] <- (1 - a15) * (sum(yt15[seq(1,ii)]) / a15^(nn - ii))

yt30_2[ii] <- (1 - a30) * (sum(yt30[seq(1,ii)]) / a30^(nn - ii))
yt35_2[ii] <- (1 - a35) * (sum(yt35[seq(1,ii)]) / a35^(nn - ii))
yt40_2[ii] <- (1 - a40) * (sum(yt40[seq(1,ii)]) / a40^(nn - ii))
yt45_2[ii] <- (1 - a45) * (sum(yt45[seq(1,ii)]) / a45^(nn - ii))
yt50_2[ii] <- (1 - a50) * (sum(yt50[seq(1,ii)]) / a50^(nn - ii))
yt60_2[ii] <- (1 - a60) * (sum(yt60[seq(1,ii)]) / a60^(nn - ii))
}

M1 <- max(xxx)
M2 <- min(xxx)

# origianl
plot(xxx, xlim = c(1, nn), ylim = c(M2, M1))

# red dasshed
par(new=T, col=2)
plot(ts(yt03_2), xlim = c(1, nn), ylim = c(M2, M1), ylab = "")
par(new=T, col=2)
plot(ts(yt05_2), xlim = c(1, nn), ylim = c(M2, M1), ylab = "")
par(new=T, col=2)
plot(ts(yt08_2), xlim = c(1, nn), ylim = c(M2, M1), ylab = "")
par(new=T, col=2)
plot(ts(yt10_2), xlim = c(1, nn), ylim = c(M2, M1), ylab = "")
par(new=T, col=2)
plot(ts(yt12_2), xlim = c(1, nn), ylim = c(M2, M1), ylab = "")
par(new=T, col=2)
plot(ts(yt15_2), xlim = c(1, nn), ylim = c(M2, M1), ylab = "")

# blue dotted
par(new=T, col=4)
plot(ts(yt30_2), xlim = c(1, nn), ylim = c(M2, M1), ylab = "")
par(new=T, col=4)
plot(ts(yt35_2), xlim = c(1, nn), ylim = c(M2, M1), ylab = "")
par(new=T, col=4)
plot(ts(yt40_2), xlim = c(1, nn), ylim = c(M2, M1), ylab = "")
par(new=T, col=4)
plot(ts(yt45_2), xlim = c(1, nn), ylim = c(M2, M1), ylab = "")
par(new=T, col=4)
plot(ts(yt50_2), xlim = c(1, nn), ylim = c(M2, M1), ylab = "")
par(new=T, col=4)
plot(ts(yt60_2), xlim = c(1, nn), ylim = c(M2, M1), ylab = "")

title("GMMA(EMA) - (Short(red), Long(blue))")
}

エルピーダもついでに


下の奴は、スパイダーのゴールドシェアなんで、
ついでにエルピーダメモリもやってみた。

Rでの手順

病み上がりの頭だと忘れそうだから。
こっちは、Rでの手順

> library(tseries)
> source("GMMA.R")
> gold <- read.csv("1326.csv") > gold <- ts(gold$close, start=c(2006, 1), frequency=248)
> jpeg("~/1326.jpg")
> GMMA(gold)
> dev.off()

データのひっくり返し

HDDが飛ぶのが怖いので、書き捨てだけどUPしとこ。

# -*- coding: euc-jp -*-
a = File.readlines("1326.txt")
a.reverse!

a.each do |line|
line.gsub!(/月|年/, "/")
line.gsub!(/日/, "")
line.gsub!(/,/, "")
line.gsub!(/\t/, ",")
end

puts "date,open,high,low,close,volume,fixed"
puts a

GMMAをRで表示してみた



1. 適当に取得したい株価データをYahooから引っこ抜く。
2. データの順番は以下の通り
 データのヘッダ(ex,: date, open, high, low, close, volume, fixed)
3. 取得したままだと新しいのが先に来ているので、ひっくり返す
4. それをRに読み込ませて、インジケータを表示させる

その結果は、こんな感じ

すぐにさぼり気味に

ぼやきでもいいから、1日1投稿とかを目標にしてたけど、
呑みの後とかはやっぱりだるい。

mixiのアカウントはあるけど、あっちは放置だしなぁ。
風邪から復活のとぼけた頭だからしゃーないか。

gem update

RでGMMAを実装してみたけど、意味あんのかなー。このテクニカル。。。
ついでに、rubyをインストールしてたときから放置してあったのをアップデート。

# sudo gem update --system

環境としては、WindowsよりもOSXのほうが使いやすいんだけど、
過去のHDDの救済がめんどいなぁ。

とりあえずは、HDDのケースと、外部モニター用の変換アダプタでも買うか。
Windows7でも出て来ない限り、新しいPCを購入する気力がやっぱりない。



2009年3月22日日曜日

セブンスドラゴン

ここ1週間ほどちまちまとやってた。
なんだ、この終わった後の脱力感は。。。

フィールドでのエンカウント率高すぎ
パターン化するんで、戦闘のマクロが欲しくなった。
後半だるくなると、そのままお休みーってのも何度か。

世界樹のフィールド版って思ったけど、ちといまいちすぎ。

2009年3月20日金曜日

hudsonのプラグイン削除

hudsonの管理画面でいったんインストールしたのを削除したけど、
プロジェクトで有効になっている場合、起動時の読み込みで例外が出るみたい。

jobs/xxx/config.xmlに、削除対象のプラグインの記述を削除してあげれば、
起動時の例外はなくなるみたい。

組み込み系の世界と、java系の世界は同じソフトウェアでも全然違うなぁ。
マンネリ気味だったけど、おもろいかも。

2009年3月17日火曜日

hudson + firefox

gihyo.jpの記事を読んで、組み込み開発でもCIツールの導入もやってみたんだけど、
・makefileをantに切り替えた方がいいのだけど、時間が取れない。
・Firefoxでブラウズしていると、キャッシュが悪さしているのか更新されない(設定も)
・makeの小さい対象をhudsonでばらまけないかとか。

面白いのは確かなんだけど、慣れるまでは本筋じゃないところでひっかかりそう。
あ、mantisとの連携もあったけど、鯖が1.03なので....orz
SOAPインターフェイス自体がないっぽいんだよなぁ

2009年3月15日日曜日

eijiro4をOSX

http://nox-insomniae.ddo.jp/insomnia/2009/01/eijiro-emacs.html
UNIXでの環境は上のリンク先のでOK.
# 情報を提供して下さっている事に多謝

ここから、辞書.appへの変換をやってみよう。

(exit) 2

namespaceがuserで読み込まれるので、ちと注意

(exit)

.clojurercから、起動時に読み込みをしてくれるぽい。
なので、通常ではCtrl+Dで終了するのを(exit)で終わる様にしてみた。

(defn exit
"Returns to the OS by forcibly exiting the platform"
([& code] (. System exit (or code 0))))

clojure-1

http://ociweb.com/jnb/jnbMar2009.html

最近、上のページを元にclojureの勉強をしている。
理由としては、株関係のシステムをRubyで作った時に、
結構環境に対して不満が出てたから。
・並列処理が弱い
・グラフの生成がめんどい
・統計関係の処理を自分で実装しないといけない

Javaのライブラリも呼び出せるし、オブジェクト指向じゃないので、
期待している事ができるんではないかと。

asdf-11

日頃の個人めも代わりに登録してみた。
自分のもあるけど、管理が結構おざなりになるので。