技術メモ

役に立てる技術的な何か、時々自分用の覚書。幅広く色々なことに興味があります。

仮想通貨を担保に法定通貨をローンするサービス【BlockFi】

BlockFiという会社のサービス blockfi.com 仮想通貨を担保にすることで信用リスクを抑え比較的低金利で法定通貨を借りることができる。 クレジット情報を詳細に聞かれることはないので審査も早い(どれくらい審査があるかはわからない) イーサリアムのよう…

ブラックショールズモデルでグラフを描く

以前書いたブラックショールズモデルの関数を使って、権利行使までの時間と行使価格を動かしてグラフを描いてみようと思う。 swdrsker.hatenablog.com 権利行使までの時間が長くなるほど緩やかな曲線になるのを見たい。 import numpy as np from scipy impor…

jupyterでtornadoがないと言われた時のメモ

新しいパッケージをインストールした後、いつものように jupyter lab とjupyterを立ち上げようとしたところ $ jupyter lab Traceback (most recent call last): File "c:\tools\anaconda3\lib\runpy.py", line 193, in _run_module_as_main "__main__", mod_…

3次スプライン補間を実装する

3次スプライン補間 補間とは? 補間とは、点群に対してその点群を通る連続な関数を当てはめること。 もっとも単純なものは線形補間で、いわゆる折れ線グラフのようなもの。 特に3次スプライン補間とは点群間を3次多項式で表し2階微分まで連続にするような補…

ヨーロピアンオプションの価格計算(ブラックショールズモデル)

ブラックショールズモデルを使ってヨーロピアンオプションを計算するpythonコード ブラックショールズモデル ※無配当の商品を前提としている:スポット価格 :行使価格 :ボラティリティ :満期までの期間 :金利 としてコールオプション価格: プットオプシ…

【java】ある文字列がEnumメンバのString属性に含まれるかどうかを調べる

javaで、String型の属性を持ったEnumを扱う際、該当するStringがそこに含まれるかどうかを知りたいことがある。 Enumのクラス内に以下のように文字列を取得する関数を用意しておいてメンバーかどうかを判定する関数isMemberを作る。 public enum Status { QU…

pythonでゴールデンクロスデッドクロスを可視化(2)

前回の続き 前回のものを改良し、 長期移動平均線が上向きで短期移動平均が長期移動平均を下から上へクロスする場合、買い。(ゴールデンクロス) 長期移動平均線が下向きで短期移動平均が長期移動平均を上から下へクロスする場合、売り。(デッドクロス) …

pythonで為替データを取ってきて移動平均、ボリンジャーバンド、ゴールデンクロス、デッドクロスを可視化

pythonで為替データを分析したり可視化してみたいと考えた。 今回は、リアルタイムでドル円相場を取ってきてローソク足をプロットし、その上に移動平均,ボラティリティ,ゴールデンクロス,デッドクロスを可視化してみるというところまでやってみる。 デー…

Pythonでコマンドライン引数を渡す方法3種類

Pythonでコマンドライン引数を渡す方法は知る限り下記の3種類ある。 1. sys.argv 2. argparser 3. docoptこのうち、主に上の2つを紹介する。 sys.argv 最も簡単な方法。 コマンドラインの引数を配列のようにして扱う。 sample import sys print('script na…

ASP, Saas, Paas, Iaas, Daasの具体例を挙げてみる。活用方法など。

クラウドの分類として用いられるSaas…etcなどの分類、言葉だけ聞くとあまりピンとこない。 実例を挙げることでイメージしやすくしてみた。 *1 ASP, Saas ASPはアプリケーションソフトの機能をネットワーク経由で顧客にサービスとして提供することであり、そ…

pythonでコードを書きながら楕円曲線暗号を理解する

仮想通貨についての勉強 楕円曲線暗号とは、ビットコインのデジタル署名で使われてる公開鍵暗号方式。この記事にあるコードを写経しながら勉強する。 自分自身まだ深く理解してないところがあるので解説は別の機会に書くことにしてメモ書き程度にとどめてお…

pythonでコードを書きながらデジタル署名を理解する

仮想通貨の仕組みについての勉強の続き。 仮想通貨にはなくてはならないデジタル署名を実装して勉強した。 デジタル署名自体は目新しいものではなく昔からある技術で、今でもネット決済など広く使われている。 デジタル署名とは ザックリとした説明 デジタル…

pythonでコードを書きながらブロックチェーンを理解する

いまや知らない人はいない仮想通貨、別名暗号通貨(cryptocurrency)。 ドル円とは比べ物にならないほどの殺人的なボラティリティを見せているけれど、しばらくすれば落ち着いてくるんだろうか。 はっきりいって今の相場と税率でレバレッジ15倍とか正気の沙汰…

三角関数の公式を覚えるのに全く苦労しなかった話

三角関数の公式を覚えるのが大変だとよく言われるけれど、高校生の頃は実は全く苦労した記憶がないという話。というのも、単に回転行列を覚えるだけだったからだ。これさえ覚えておけばいい*1 これさえ覚えておけばちょっと計算するだけで加法定理や和積の定…

置換可能素数

以前の「Nが現れる素数」に続いて面白い素数が紹介されていた。*1 このような素数を求めてみた。 ルール <ルール> 素数Pに対して下の条件を満たすn(1,2,...9)が存在する。 1. Pの各桁の中にnを含まない。 2. Pの各桁をnで置換した数も全て素数になる。 (…

GCD, LCM with Python3

自分用のメモ Python3で最小公倍数(GCD)、最大公約数(LCM)を求める from functools import reduce def gcd(*numbers): def gcd(a, b): while b != 0: a, b = b, a % b return a return reduce(gcd, numbers) def lcm(*numbers): def lcm(a, b): return (a * …

nCk (mod m) の求め方 [n,kが凄く大きい場合]

大きいnに対してコンビネーションを求める 凄く大きいnに対してCombinationを求める時、例えばを求めようと思っても愚直に計算するにはプログラムで扱える桁数を超えてしまう。 そこで、mで割った余り(modular) を求めさせることがある。pythonで書いたので…

ffmpegを使って.m3u8(ストリーミング形式ファイル)の動画を.mp4形式で保存する

シェルスクリプトを書いた。 注意 使っていたffmpegのバージョンが少し古かった。最新版ではできない可能性もある。 ffmpeg version 2.8.4 Copyright (c) 2000-2015 the FFmpeg developers built with gcc 5.2.0 (GCC) スクリプト 名前は適当でいいが、例え…

円周率素数 ネイピア数素数

3.14159265 と言われて何を思い浮かべるだろうか。 そう、円周率である。円周率と言えば、3.1415...と続く数なのは小学生でも周知の事実だが、 円周率を頭から数えたとき出てくる素数というのはあまり知られていないかもしれない。まず 3 は素数 31 も素数 3…

Nが現れる素数(N=1,2,3,4)

2が現れる素数という面白い素数が紹介されていた。 2が現れる素数 - INTEGERS昔せっかく高速素数判定器を作ったので、どうせならNが現れる素数を見つけてやろう!と思い立った。 プログラム (※プログラムはpython(2.7.12)で動作します)ルールとしては ①四…

2次元配列の特定の要素からランダムに選択【numpy】

「0~1の値を取る2次元配列があって、0.7以上の要素を持つインデックスの中からランダムにインデックスを取ってくる。」 こんなことをしたい時にnumpyを駆使すれば綺麗に書けたのでメモしておく。 例えばこんな配列(numpyのarray)があったとする import numpy…

slackbotでbotに投げられた画像をダウンロードする

slackbotでシステムを作ろうとした時に、botに投げた画像をいったん保存する方法がわからなかったので、記録しておく。 slackbot自体の始め方 slackbot自体の使い方は他のブログなどで詳しく紹介されているのでそちらを参考にしてほしい。 インストールはこ…

為替の分足CSVデータが無料でダウンロードできるサイト

こちらでダウンロードできるようだ。 2001年1月から最新(おそらく定期的に更新)までのデータを扱える。 1分足より長いスパンにする時は独自で整形しないとしないといけないかもしれない。 関連記事: OANDAのAPIを使ってリアルタイムでデータを取ってくる…

root権限なしでcmakeをインストールする

root権限がない状態でcmakeをインストールする時、ソースからビルドする。 gcc,g++,makeが必要になる。 手順としては以下の通り cmakeのソースをダウンロード,解凍 インストール先のフォルダを作成 ビルド、インストール (状況に応じて)PATHを通す(※PATHの…

倍プッシュの錯覚に騙されてはいけない(マーチンゲール法)

FXの業界には、ギャンブル性の強いバイナリーオプションという取引がある。 バイナリーオプションとは、1分後や10分後の相場について「上がる」か「下がる」かについてのみ予想する取引のことである。 そのバイナリオプションの取引で、必勝法と謳い人々をだ…

為替相場の値動きにウィナー過程を仮定するのはダメかもしれない

為替相場の値動きに本当にウィナー過程を当てはめていいんだろうか。 簡単に調べられそうだったので、ドル円相場で少し調べてみた。 結果から言うと、正規分布っぽくなくねって結論が出てしまった。※ウィナー過程…確率過程においてが平均0分散sの正規分布に…

FXを始めて、金融工学の触りを学んで感じたこと

FXに興味が出てきて、バーチャルトレードで短期投資をしてたんだけど、10万円くらい負けてもうやめてやろうかと思った。 それで、負けん気というか、儲けてる奴は何をしてるんだろうと思って色々調べていると金融工学の分野に辿り着いてしまった。勉強してい…

pythonで正規性の検定【コロモゴロフスミルノフ検定(KS検定)】

確率分布が正規分布に従うか調べたい、 二つの集団が同じ確率分布から得られたものか調べたい、 といった時に使うのが、コロモゴロフスミルノフ検定(Kolmogorov–Smirnov test) コルモゴロフ–スミルノフ検定(コルモゴロフ–スミルノフけんてい、英: Kolmogoro…

二項分布の極限が正規分布になることの証明【正規近似の証明】

二項分布の試行回数を無限大に大きくしていくと正規分布に近づくことが知られている。 しかし、その証明は意外と知られていない。(中心極限定理でも可能ではある)やが出てくるのがどうしても不思議で、自分なりに解こうとしたり調べてみた。 ようやくわか…

直下のファイルを走査し一覧表示する [bash, python]

あるディレクトリの直下のファイルに対して巡回しながら処理したい時 シェルスクリプトとpythonでどうするか。 bash files="./hoge/*" for filepath in $files; do echo $filepath done ./hoge/1.txt ./hoge/2.txt のようにディレクトリごと表示される ファ…