Hatena::ブログ(Diary)

My Life as a Mock Quant このページをアンテナに追加 RSSフィード Twitter

2018-08-11

DataExplorer packageでデータを大雑把に把握する

| 17:58 | DataExplorer packageでデータを大雑把に把握するを含むブックマーク

「データを大雑把にとらえるために何も考えずにこれに突っ込む」みたいな感じで使えてよい。

あと、BLOG移転したい。

(パッケージは別途インストール済として)たった↓だけのコードで

library("DataExplorer")
create_report(iris)

こういう結果がでる。

report.html - Google ドライブ


楽じゃない?

詳しくはVignettesを見てもらいたい。

Introduction to DataExplorer

Enjoy!

2018-07-01

あれば環境変数からとる、なければGlobal環境からとる

| 18:57 | あれば環境変数からとる、なければGlobal環境からとるを含むブックマーク

掲題の件がやりたいので、こんな関数をかいた。

get_from_env_or_global_env <- function(x){
  if(Sys.getenv(x) != ""){
    Sys.getenv(x)
  } else if(exists(x)){
    eval(parse(text = x), envir=.GlobalEnv)
  }
}
#環境変数からとる
> get_from_env_or_global_env("OS")
[1] "Windows_NT"
#Global環境からとる
> a <- 111
> get_from_env_or_global_env("a")
[1] 111

この手のUtilityをPackageにまとめたい気もする。

2018-06-26

bitFlyer LightningのAPI経由でRからBitcoinを買う

| 22:26 | bitFlyer LightningのAPI経由でRからBitcoinを買うを含むブックマーク

すっかり放置していた

bitFlyer LightningのAPIをRから使う - My Life as a Mock Quant

の続き。

POST系のメソッドをやろうとして昔失敗して放置していたのだが、なんか今日やったらうまくいった。

こんなんでRからBitcoin指値で発注できます(そして2018年6月16日22時現在の相場だと約定します)。

BITFLYER_KEY <- "<your key>"
BITFLYER_SECRET <- "<your secret>"
BITFLYER_URL <- "https://api.bitflyer.jp"
path <- "/v1/me/sendchildorder"
timestamp <- as.numeric(Sys.time())
body <- '{
  "product_code": "BTC_JPY",
  "child_order_type": "LIMIT",
  "side": "BUY",
  "price": 699000,
  "size": 0.001,
  "minute_to_expire": 10000,
  "time_in_force": "GTC"
}'
sign <- digest::hmac(paste0(timestamp, "POST", path, body), key=BITFLYER_SECRET, algo="sha256", serialize=FALSE)
header <- httr::add_headers(
  `ACCESS-KEY`=BITFLYER_KEY,
  `ACCESS-TIMESTAMP`=timestamp,
  `ACCESS-SIGN`=sign,
  `Content-Type`="application/json"
)
httr::content(httr::POST(paste0(BITFLYER_URL, path), body=body, header))

ワンライナー(1行)でYAMLを捌いてpretty print

| 20:08 | ワンライナー(1行)でYAMLを捌いてpretty printを含むブックマーク

こんなん

python -c 'import yaml,sys;print(yaml.dump(yaml.load(sys.stdin)))' < hoge.yml

2018-06-17

Batch処理用のCodeの書き方

| 21:34 | Batch処理用のCodeの書き方を含むブックマーク

適当な.jlファイル(hoge.jl)に対して

cd("path-to-source-code")
push!(LOAD_PATH, pwd())
workspace()

... great code...

と三行程度のおまじないを書いたうえで、

julia> include("path-to-souce-code/hoge.jl")

するのが楽そうか。

workspace()はなんかモジュールの被りをよし何やってくれる関数だったはず。

2018-04-23

N個の独立な一様乱数(-1, 1)の和の標準偏差は1/3√N

| 20:37 | N個の独立な一様乱数(-1, 1)の和の標準偏差は1/3√Nを含むブックマーク

手計算で確認&ボケ防止にRでチェック。

f:id:teramonagi:20180423203650p:image

sizes <- 2**(1:15)
y <- numeric(length(sizes))
for(i in seq_along(sizes)){
  x <- numeric(10**3)
  for(j in seq_len(10**3)){
    x[j] <- sum(runif(sizes[i], min=-1, max=1))
  }
  y[i] <- sd(x)
}
plot(sizes, y)
lines(sizes, sqrt(1/3*sizes))