投稿者: mikazuki
evernote
bashデバック
参照:http://shellscript.sunone.me/debug.html
JSP*タグリファレンス
http://tag.main.jp/index.html
システムモニタリングコマンド一覧
-
sar 一定間隔でCPU、コンテキストスイッチ、割り込み、ページング、デバイス、メモリ、スワップ、ネットワークなどあらゆる情報を表示 vmstat 一定間隔でプロセス、メモリ、スワップ、ディスクI/O、システム(割り込み、コンテキストスイッチ)、CPUの情報を表示 mpstat 一定間隔でCPUの詳細情報を表示 iostat 一定間隔で各種デバイス・ディスクの詳細なI/Oを表示 uptime 稼働時間、ユーザ数、ロードアベレージの表示 free メモリの使用状況表示 procinfo メモリ、CPU時間、ページ、スワップ、ディスク、割りこみ数などの統計を表示 /proc/* 任意のタイミングや間隔で任意の情報を取得したい場合は、無理にコマンドを組み合わせるより直接/proc以下の情報を取得するスクリプトを書く方が楽。 /proc/stat CPU時間の合計値など /proc/loadavg ロードアベレージ /proc/meminfo メモリの状態 /proc/diskstats ディスクI/Oの合計値 /proc/net/dev ネットワーク送受信の合計値 top 稼働時間、ユーザ数、ロードアベレージ、CPU、メモリの情報とプロセス毎の情報を継続的に表示 iotop システム全体のディスクI/Oとプロセス毎の詳細なディスクI/Oを継続的に表示 nethogs プロセス毎のネットワークI/Oの統計を継続的に表示 lsof 個々のプロセスが掴んでいるファイル・デバイス・ポートを表示 pmap プロセスが掴んでいるファイルとその詳細なメモリマップを表示 fuser ファイルやポート、ファイルシステムを利用しているプロセスやユーザの表示 ps aux プロセスを一覧表示 pstree プロセスをツリー表示 ディスク/ファイル
-
df 各ファイルシステムの容量やiノードの使用状況を表示 du ファイル・ディレクトリの使用状況を表示 stat ファイルの各種情報を任意のフォーマットで表示
ネットワーク
-
netstat ネットワークコネクションの情報を表示 nmap 開いているポートの調査 ifstat 一定間隔でデバイス毎のネットワークI/Oを表示 iftop 接続先毎のネットワークI/Oを継続的に表示
アプリケーション依存
-
smbstatus Sambaの利用状況表示 showmount NFSのマウント状況の表示 ftpwho FTPにアクセスしているユーザの表示 ftpcount FTPにアクセスしているユーザ数の表示 hostname カーネルの情報 uname -a カーネルの情報 lsmod ロードされているモジュールの情報 ifconfig 各ネットワークインターフェースのIPアドレス・MACアドレス・MTU等の表示 who 接続しているユーザの表示 id ユーザのUID,GID,グループなどの表示 ac ユーザの接続時間を表示する ネットワーク設定(vi /etc/sysconfig/network-scripts/ifcfg-eth0)
ハードウェア
-
lspci PCIデバイスの一覧を表示 lsusb USBデバイスの一覧を表示 lsscsi SCSIデバイスの一覧を表示 lshw 全ハードウェアの一覧を表示 ethtool ネットワークインターフェースのデバイス情報を表示 fdisk/sfdisk/cfdisk -l パーティション情報の表示 sensors (lm_sensors) 温度・ファン回転数等 cardctl PCカードの情報
X Window System
-
xev 入力デバイスからの入力情報の表示 xload 簡単なロードアベレージのGUI表示 glxinfo GLX拡張や、OpenGLレンダラの確認 xdpyinfo ディスプレイの情報表示 fc-list 利用可能なフォントの一覧 xfd フォントの確認
$ xfd -fa ‘VL ゴシック’rc-update (Gentoo) ランレベル毎のデーモンの設定・確認 update-rc.d (Debian) ランレベル毎のデーモンの設定・確認 chkconfig (RedHat) ランレベル毎のデーモンの設定・確認 ldd 依存しているライブラリの表示 printenv 環境変数の表示 help シェルの組み込みコマンド
- ブラウザショートカット
全画面表示 | F11 |
ホームページに移動 | Alt+Home |
次のページに移動 | Alt+→ Shift+Backspace |
前のページに移動 | Alt+← Backspace |
右のタブに移動 | Ctrl+Tab Ctrl+PageDown |
左のタブに移動 | Ctrl+Shift+Tab Ctrl+PageUp |
ページの先頭に移動する | Home Ctrl+Home |
ページの末尾に移動する | End Ctrl+End |
Webページの更新 | F5 Ctrl+R |
スーパーリロード | Ctrl+F5 Ctrl+Shift+R Shift+F5 |
ページのダウンロードを中止 | Esc |
プライベート(シークレット)モード | Ctrl+Shift+P Ctrl+Shift+N |
履歴の消去 | Ctrl+Shift+Delete |
アドレスバーの文字列選択 | Alt+D Ctrl+L |
直前に閉じたタブを開く | Ctrl+Shift+T |
現在のタブを閉じる | Ctrl+W Ctrl+F4 |
お気に入りを開く | Ctrl+I Ctrl+Shift+B Alt+C |
お気に入りの整理 | Ctrl+B Ctrl+Shift+O |
履歴を開く | Ctrl+H |
ダウンロード履歴を開く | Ctrl+J |
新規ウィンドウ | Ctrl+N |
新しいタブを開く | Ctrl+T |
特定のタブを開く | Ctrl+数字キー(1~8) |
(アドレスバー選択時)新しいタブでウェブアドレスを開く | Alt+Enter |
タブ複製 | Ctrl+K Alt+D+Enter |
一番右のタブに切り替える | Ctrl+9 |
拡大する | Ctrl+正符号(+)キー |
縮小する | Ctrl+負符号(-)キー |
元の大きさにする | Ctrl+0 |
検索窓にフォーカス | Ctrl+E |
検索後、F3で次へ | Ctrl+K |
お気に入りに追加 | Ctrl+D |
開発者ツールを開く | F12(FireFoxはFirebugを入れてる場合) Ctrl+Shift+I |
ページのコード表示 | Ctrl+U |
カーソルブラウズ | F7 |
新しいウィンドウを開く | Ctrl+n |
新しいウィンドウをシークレットモードで開く | Ctrl+Shift+n |
新しいタブを開いてそのタブに移動する | Ctrl+t |
最後に閉じたタブを開いてそのタブに移動する | Ctrl+Shift+t |
開いている次のタブに移動する | Ctrl+Tab |
開いている前のタブに移動する | Ctrl+Shift+Tab Ctrl+PgUp |
特定のタブに移動する | Ctrl+1~Ctrl+8 |
最後のタブに移動する | Ctrl+9 |
ホームページを現在のタブで開く | Alt+Home |
現在のタブの閲覧履歴の中で前にあるページを開く | Alt+左矢印 |
現在のタブの閲覧履歴の中で次にあるページを開く | Alt+右矢印 |
現在のタブを閉じる | Ctrl+w Ctrl+F4 |
開いているすべてのタブとブラウザを閉じる | Ctrl+Shift+w |
現在のウィンドウを最小化する | Alt+スペース+n |
現在のウィンドウを最大化する | Alt+スペース+x |
GoogleChromeを終了する | Ctrl+Shift+q Alt+F4 |
便利ツール A5:SQL Mk-2の便利なショートカットをまとめてみた – 思考停止するな
最近SQL・データベースを扱うことが多いのですが、その際に手放すことができないレベルの超便利ツールのSQL実行ツールであるA5:SQL Mk-2というのがあります。 そのA5:SQL Mk-2の便利なショートカットをまとめてみました。 Ctrl + q SQL整形 Ctrl + g 条件を指定してテーブルを開く Ctr…
情報源: 便利ツール A5:SQL Mk-2の便利なショートカットをまとめてみた – 思考停止するな
ダミーデータ作成
https://a5m2.mmatsubara.com/help/TableEditor/dummy.html
Apache JMeter
・基本情報
http://www.techscore.com/tech/Java/ApacheJakarta/JMeter/index/
・統計レポートの見方
https://e-algorithm.xyz/jmeter/#jump4
・apache-jmeter-3.3\bin\jmeter-server.bat
に以下の設定を入れる
:port
call jmeter -Dserver_port=%SERVER_PORT% -s -j jmeter-server.log %JMETER_CMD_LINE_ARGS% 【-Dsun.net.inetaddr.ttl=0 -Dsun.net.inetaddr.negative.ttl=0】
詳細は
https://qiita.com/arai-wa/items/492d91d85a7473007e37
・実行bat sample
set time2=%time: =0%
set PREFIX=%date:~-10,4%%date:~-5,2%%date:~-2,2%%time2:~0,2%%time2:~3,2%%time2:~6,2%
cmd /k jmeter.bat -n -t .\FINAL\LJ53.jmx -j .\FINAL\result\%PREFIX%_jmeter.log -l .\FINAL\result\%PREFIX%_result.jtl
詳細は
https://qiita.com/tatesuke/items/827e6190753964e46814
windowsパフォーマンスモニター
http://www.atmarkit.co.jp/ait/articles/0910/30/news114.html
統計的検定の考え方 – 大人になってからの再学習
パチンコの勝ち方(確率的視点)
パチンコは勝てるのか?
パチンコで稼いでる(食っている)人というのは確率の事を理解して勝つべくして勝っています。
まず断っておきたいのですが、投資系の話をする人でパチンコは勝てないなどと言ってる人は論外なのでそういう人の話は聞き流した方が身のためです。
パチンコで勝っている人(パチプロ)は運よく偶然勝っているのではなく、確率と期待値の事を理解し勝つべくして勝っているのです。
不思議な事に、学者の先生や高学歴の秀才達ほどパチンコは勝てないとはなから思い込んでいる方が多い様に思います。
当然、数学者の先生方は数学に関して誰よりも博識であるのは明白なのですが、なぜがパチンコなんて勝てるわけないとおっしゃいます。
私見ですがおそらく、学者の先生や高学歴の秀才達はおそらく人生でパチンコなどという低俗なものと関わることなく人生を歩んでこられたのではないかと思います。
だから確率や数学又は統計の知識に関しては誰よりも博識であるにもかかわらず、パチンコは勝てないとはなから思い込んでいるものと推定されます。
たしかにパチンコは低俗なマネーゲームです。そこは認めましょう。しかしながら、パチンコで勝てないという点に関してはただの思い込みであると反論させて頂きます。
パチンコで勝てない要因3つ
パチンコなどという低俗なものに関わり合いたくない
確率の事を理解していない
確率の事を理解しているけれども実行できていない
パチンコで勝てない要因を大きく分けると上記の3つになるかと思います。
まず1つ目のパチンコに関わり合いたくないという方は、勝ちようがありません。先述しましたが、学者の先生や高学歴の秀才に多くみられる傾向にあります。これはもうしょうがないです。確かにパチンコなどと言う低俗なものに関わり合いたくない気持ちもよく分かりますので。
続いて2番目の確率の事を理解していないに当てはまる方は、確率の事を理解すれば勝てる様になる可能性があります。あくまで可能性ですけど。
そして一番多いのが3番目の確率の事を理解しているけれども実行できていない方です。ここに当てはまる方がパチンコで勝てない人の大多数を占めています。
よくあるのがボーダーを知っているのに勝てないという方です。これはパチンコの事を分かったつもりになっているだけで、パチンコというゲームの本質を理解していない事の現れです。
ちなみにパチプロでボーダーがいくらか重要視している人はまずいません。ボーダーなど知っているのは当たり前だし、それだけで食えるような甘い世界では無いからこそ、その他の部分で色々な技術介入をしているわけです。
1000円当たり22回回った!これは期待値プラスの台だ!と喜んで打ってる人はパチンコというゲームの本質を理解している気になっているだけのにわかです。いわゆる初心者ってやつです。そしてその初心者が大半をしめているのがパチンコというマネーゲームの世界です。
パチンコというマネーゲームはパチンコ屋の経費(電気代や人件費等)を引くと完全にマイナスサムゲームの世界です。一般的にパチンコの還元率は85%と言われています。
つまりパチンコというマネーゲームに参加した人全員から集めたお金の85%をプレイヤーで奪い合うマネーゲームであるという事をまず理解する必要があります。
という事でパチンコで実際食えるほど稼いでる人というのは優良店当たり数人程度でしょう。その数人がパチンコというマネーゲームでの数少ない本物の勝者という事になります。
パチンコで勝つのに難しい数式を覚える必要はありません。確率の収束と大数の法則だけ理解していれば十分です。
下記が当選確率1/100(理論値)のパチンコ台の当選確率と回転数の関係を表したものになります。
回転数4000回を超えたあたりから理論確率(1/100)付近に収束している事が分かります。ちなみに、パチプロが一日ぶん回して2000回転程度ですので、4000回転は2日間フル稼働したものだと思って頂けたら宜しいかと思います。
つまり、1日フル稼働しただけでは理論確率に収束しきれないという事が分かります。ましてや会社帰りに数時間稼働しただけでは理論確率に収束するのはいつになるのやらという事が分かります。
理論確率より多く当たれば、運が良いといいますし、少なければ運が悪いといいます。確率が収束していない段階(回転数が少ない段階)の当選確率というのは運が支配している事も理解頂けるかと思います。
では実際パチンコでどうやって勝つの?
冒頭で申しました通り、現役で稼いでる方の迷惑にならない範囲でお答えさせて頂きます。
回転数を増やせば増やすほど理論確率(今回の場合1/100)に近づくという事は、どうすれば利益を出す事が出来るか考えてみて下さい。
ヒントはシステムトレードにおけるPF(プロフィットファクター)です。PFとは総利益÷総損失で表される数字です。
例えば勝率50%のシステムが利益を出すには、総損失が100万円とすると、それを超える総利益(100万円超え)を出す必要があります。つまり勝率50%の場合リスクリワードが1を超えないと利益が出ないという事です。
パチンコも一緒です。今回の場合最終的に1/100の確率に収束するという事は、100回転させるのに使った金額(総損失)より、当選した時にもらえる金額(総利益)の方が多ければ期待値はプラスであり、回せば回すほど期待値が積み上げられていきます。
これ以上は現役の方の迷惑になる可能性が高いので言えませんが、とどのつまりパチンコで勝つというのはそういう事なのです。
あとはそれを実行できるか?
パチンコでは期待値を積み重ねていっても運の要素(偶然)によって実収支がマイナスになる事はよくあります。具体的には期待値100万稼いだけど実収支は50万しかなかったという事は多々あります。
さらに短いスパンの場合、例えば一日単位で見てみてみますと、期待値+3万出したけど実収支は-7万だったという事も多々あります。
この期待値と実収支の乖離は完全に運(偶然)です。むろんプラス側に行く時もあります。この様に偶然というのは避けることの出来ない普遍的な事だという事を理解する必要があります。
偶然のブレ(主に下振れ収支)が起こったとしても心を乱すことなく、ただ淡々と期待値を追いかけることが出来る人がパチプロという数%しかいないパチンコ界におけるマネーゲームの勝者なのです。
今年は期待値まで100万足りてないっ!って笑って話せるような人が確率の事を本当に理解し、実際行動に移すことが出来ている本物のパチプロと呼ばれる方々です。
最大連敗数を求める方法
今回はシステムの勝率別に起こりうる最大連敗数を求めてみたいと思います。
N回連続して負ける確率
勝率x%のシステムがN回連続して負ける確率は以下の様に求めることが出来ます。
N回連続して負ける確率 = ( 1 – 勝率x )^N回
この式を使って、勝率50%のシステムが5回連続して負ける確率を求めてみますと、
■5連敗する確率 = ( 1 – 50% )^5回 = 3.1% となります。
では10回連続して負ける確率も求めてみますと
■10回連敗する確率 = ( 1 – 50% )^10回 = 0.1% となります。
以上の事から勝率50%のシステムにおいては、5連敗する確率が3.1%で、10連敗する確率が0.1%という事が分かりました。
それでは今度は勝率x%のシステムにおいて、1%の確率で起こりうる連敗数Nを求めてみたいと思います。
起こりうる連敗数N
冒頭の計算式を展開して、N連敗する確率に1%を代入しますと以下の様になります
N連敗する確率 = ( 1 – 勝率x )^N回
連敗数N = LOG₍₁₋ₓ₎1% この式をエクセルのLOG関数を使うと以下の様になります。
※スマホでご覧の方へ⇒LOGの底に(1-x)と記載しております。
連敗数N = LOG( 1% , 1-勝率x )
この式から勝率50%のシステムにおいて1%の確率で起こりうる連敗数Nは、
■連敗数N = LOG ( 1% , 1-50% ) = 6.6回 となります。
以上の事から勝率50%のシステムにおいては最大6.6連敗する可能性が1%あるという事が分かりました。
1%の部分を危険率α(計算を間違える確率)と置き換えますと、最終的に以下の式になります。
連敗数N = LOG( 危険率α , 1-勝率x )
この計算式により、危険率αの場合に勝率x%のシステムで起こりうる連敗数Nを求める事が出来ます。
エクセルのLOG関数について
エクセルのLOG関数は、”=LOG(真数,底)”と入力するとその対数を返します。
対数とは、底を何乗したら真数になるかを表すものです。
ex.1 LOG₂4 = LOG(4,2) = 2 ※2(底)を2乗したら4(真数)になる。
ex.2 LOG₂256 = LOG(256,2) = 8 ※2(底)を8乗したら256(真数)になる。
勝率別に起こりうる最大連敗数一覧
以下の表がシステムの勝率別に起こりうる最大連敗数の一覧になります。
危険率1%と0.0001%の2パターンを求めています。
小数点は四捨五入、α=危険率、0.0001%=1ppm(100万分の1)
システム勝率 | 最大連敗数(α=1%) | 最大連敗数(α=0.0001%) |
---|---|---|
20% | 21 | 62 |
25% | 16 | 48 |
30% | 13 | 39 |
35% | 11 | 32 |
40% | 9 | 27 |
45% | 8 | 23 |
50% | 7 | 20 |
55% | 6 | 17 |
60% | 5 | 15 |
65% | 4 | 13 |
70% | 4 | 11 |
75% | 3 | 10 |
80% | 3 | 9 |
85% | 2 | 7 |
90% | 2 | 6 |
注意点(勝率の収束)
システムの勝率から最大連敗数を予測する上で非常に重要となるのが、そのシステムの勝率が収束しているかどうかです。取引回数が200回に満たない場合の勝率というのはシステム本来の勝率に収束していない可能性が高いので注意が必要です。
詳しくは下記記事の”確率の収束と大数の法則”をご参照下さい。
連敗数を予想してトレードにどう生かすか?
自分の運用しているシステムの勝率を確認して、最大何連敗する可能性があるのか理解する事によって、実際連敗が起こった時にパニックになって稼働を停止してしまわない様に心の準備ができます。
勝率が80%のシステムでも絶望的に運が悪ければ9連敗する事もありえるという事を知識として知っていれば、心を乱すことなくトレードを継続できます。
期待値と確立
今回は確率別の収束速度について解説させて頂きます。
コインゲームの期待値
まずは直感でも分かり易い、コインゲームの期待値を考えてみたいと思います。
★コインゲームのルール
表が出たら200円貰える
裏が出たら100円支払う
このコインゲームの1プレイ当たりの期待値は幾らでしょうか?
答えは、
期待値= ( 1/2 × -100円 + 1/2 × +200 ) × 1回 = +50円 となります。
このコインゲームでは直感的に期待値がプラスだと分かり易いかと思います。
サイコロゲームの期待値
では次に、サイコロゲームの期待値を考えてみたいと思います。
★サイコロゲームのルール(※6面体のサイコロ)
1が出たら800円貰える
1以外が出たら100円支払う
このサイコロゲームの1プレイ当たりの期待値は幾らでしょうか?
答えは、
期待値= ( 5/6 × -100円 + 1/6 × +800 ) × 1回 = +50円 となります。
先ほどのコインゲームと同じ+50円の期待値ですが、コインゲームと比べると直感的には分かりにくかったかと思います。
ゲームに参加するべきか?
では、この期待値が+50円のコインゲーム又はサイコロゲームに参加するべきでしょうか?
答えは、
プレイできる回数による
が正解となります。
両ゲームとも1プレイ当たりの期待値はプラスですが、プレイできる回数が例えば
10回だけと決まっているのであれば参加するべきではありません。
最低200回程度プレイできるのあれば、このゲームには参加するべきでしょう。
なぜなら試行回数(プレイ回数)が少ない内は、運の要素が非常に強く、1プレイ当たりの期待値がプラスのゲームでも偶然運悪く負けてしまう事がありえるからです。
試行回数が多くなれば多くなる程、ゲーム本来の確率(理論値)に収束します。
このことを大数の法則と呼びます。
※冒頭の場合 コインゲームの勝率(理論値)=1/2 サイコロゲームの勝率(理論値)=1/6
確率の収束と大数の法則
それでは実際、どの様に確率が収束していくのかをグラフで見てみましょう。
エクセルで勝率20%・40%・60%のシステムを作成し、各システムの勝率と試行回数の関係をグラフにして表したものがこちらです。(試行回数1,000回を実施)
グラフを見て頂くと、回数が少ない内は偶然の要素(運)によって各システムの理論確率と乖離していますが、試行回数が増えれば増えるほど各システムの理論確率付近に収束している事が確認できます。(大数の法則)
試行回数が100回に満たない場合の勝率というのは全く当てにならない事が良く分かります。
この各システムはエクセルのランダム関数を使って作成していますので、乱数を変えたらどうなるか見てみましょう。
この様に、乱数を何度変えたとしても試行回数が多くなればなる程、各システムの理論確率付近に収束している事がわかります。
コインゲームとサイコロゲームのまとめ
という事で、ゲームに参加するべきかどうかの判断は、まずそのゲームの
1回当たりの期待値がプラス
である事、そしてそのゲームを
最低でも200プレイ
できる事、という2つの条件をクリアした場合のみ参加すれば良いという結論になります。
冒頭のコインゲームとサイコロゲームの期待値は+50円ですので、あとはプレイできる回数次第で参加するかどうかを判断すれば良いわけです。
この様に確率というのは試行回数が少ないうちは
偶然(運)が支配
するものであることをご理解頂けたかと思います。
確率別の収束速度についてはこちらの記事をご参照下さい。
確率別の収束速度
システムトレードにおける試行回数
システムトレードにおける試行回数とは取引回数の事です。つまり、取引回数が多くなればなるほどシステム本来の勝率に収束していくという事になります。
逆にいうと取引回数が200回に満たないシステムのバックテストというのはシステム本来の勝率に収束していない可能性が高いといえます。
つまり実力で利益を出しているシステムなのか、たまたま運よく利益を出しているシステムなのか判断できないという事です。
という事でシステム本来の勝率を判断する上で取引回数が非常に重要になってくる事が分かって頂けたかと思います。