今回はLotを固定させた方が良い理由について解説させて頂きます。偶然起こったトレード結果に対してLot数を変化させる事の無意味さを検証してみたいと思います。まず今回の記事ではは以下の2点について検証してみたいと思います。
-
Lot変化① = トレード結果が負けだった場合、次トレードはLotを2倍にする。
-
Lot変化② = トレード結果が勝ちだった場合、次トレードはLotを2倍にする。
今回はLotを固定させた方が良い理由について解説させて頂きます。偶然起こったトレード結果に対してLot数を変化させる事の無意味さを検証してみたいと思います。まず今回の記事ではは以下の2点について検証してみたいと思います。
リスクリワードレシオ(以下、レシオ)とは 平均利益 ÷ 平均損失 で求められる数字です。例えば平均利益100pipsで平均損失100pipsのシステムであればレシオは1.0となります。
同様に平均利益200pipsで平均損失100pipsのシステムであればレシオは2.0となります。つまりレシオの数値が大きいと損小利大のシステム(手法)であり、レシオの数値が小さいと損大利小のシステム(手法)であるといえます。
±0に必要な勝率は以下の計算式で求めることが出来ます:
±0に必要な勝率 = 1 ÷ (1 + レシオ)
例えば、レシオが0.5の場合:
±0に必要な勝率 = 1 ÷ (1 + 0.5) ≒ 67%
以下に±0に必要な勝率の一覧を示します:
リスクリワードレシオ | ±0に必要な勝率 |
---|---|
2.0 | 33% |
1.0 | 50% |
0.5 | 67% |
±0に必要なレシオは以下の計算式で求めることができます:
±0に必要なレシオ = (1 – 勝率) ÷ 勝率
例えば、勝率が60%の場合:
±0に必要なレシオ = (1 – 60%) ÷ 60% ≒ 0.7
以下に±0に必要なレシオの一覧を示します:
勝率 | ±0に必要なリスクリワードレシオ |
---|---|
30% | 2.3 |
40% | 1.5 |
50% | 1.0 |
60% | 0.7 |
70% | 0.4 |
システムの優位性あるいは、手法の優位性を検証する際にレシオと勝率のどちらを軸にするべきかという問題が発生します。
私は勝率を軸にして確認した方が良いと思います。理由は以下の2つです:
1つ目の理由は、勝率は取引回数が増えれば増えるほど収束していきますので基準にしやすいという点です。大ざっぱに確認する場合でも取引回数が1000回程度あれば勝率はあらかた収束したと想定する事ができます。
2つ目の理由は、相場のボラティリティーは日々変化している為、一律に損切りを100pips、利確を100pipsと固定しても結局は±0の理論確率を超えることはできないと思うからです。相場のボラティリティーに合わせて損切りや利確の値幅を変化させる必要があります。
以上の2点の理由から私は勝率を軸にして±0に必要となるレシオを確認した方が良いと判断しています。
レシオと勝率どちらを軸にするにしても、利益を出すには『レシオに対する±0に必要な勝率』あるいは『勝率に対する±0に必要なレシオ』を超えなければいけません。
ランダムトレードでは期待値はスプレッド分のマイナスに収束しますので、利益を出すにはランダムトレードでは出来ない何かをする必要があります。それは待つ事です。
結局のところ、この2つが利益を出す為の全てです。統計的優位性があるかどうかはシステムあるいは手法を検証する際、取引回数が1000回以上あり勝率に対する±0に必要なレシオを超えていれば優位性があると判断する事が出来るでしょう。
EA名 | 取引回数 | 勝率 | レシオ | ±0レシオ | 差異 |
---|---|---|---|---|---|
リバ取り君 | 1432回 | 67% | 0.7 | 0.5 | +0.2 (133%) |
伸ばす君 | 2556回 | 28% | 3.2 | 2.6 | +0.7 (125%) |
※Lot0.1で2005.2.1~2015.2.1をバックテストした結果
リバ取り君の勝率67%で±0に必要なレシオは0.5です。バックテストの結果0.7という数値を出していますので、エントリーとクローズポイントに優位性があると判断できます。
同様に伸ばす君の勝率28%で±0に必要なレシオは2.6です。バックテストの結果3.2という数値を出していますのでこちらも優位性があると判断できます。
期待値0円のゲームを1000人で実施し、勝った人(0円以上)のみ次のゲームに参加します。このゲームを4回繰り返し、運がいい人の期待値分布がどのようになるのかを確認します。
ルール概要:勝率50%、PF1(SL=100pips、TP=100pips)、Lot=15万通貨、スプレッド:0
ゲーム名 | 参加条件 |
---|---|
テスト1 | 1000人でゲームスタート |
テスト2 | テスト1で0円以上の利益を出した人のみ参加 |
テスト3 | テスト2で0円以上の利益を出した人のみ参加 |
テスト4 | テスト3で0円以上の利益を出した人のみ参加 |
テスト5 | テスト4で0円以上の利益を出した人のみ参加 |
テスト1の期待値分布は以下の通りです。試行回数10回を1000人が実施した際の1人当たりの期待値分布です。
条件:勝率50%、PF1(SL=100pips、TP=100pips)、Lot=15万通貨、スプレッド:0
Lot=15万通貨(固定)、期待値max=+15万、期待値min=-15万、期待値平均=-960円
テスト1で運が良かった人(624人)のみを集めて再度ゲームを行った結果の期待値分布です。
条件:勝率50%、PF1(SL=100pips、TP=100pips)、Lot=15万通貨、スプレッド:0
Lot=15万通貨(固定)、期待値max=+15万、期待値min=-15万、期待値平均=-1797円
テスト2で運が良かった人(396人)のみを集めて再度ゲームを行った結果の期待値分布です。
条件:勝率50%、PF1(SL=100pips、TP=100pips)、Lot=15万通貨、スプレッド:0
Lot=15万通貨(固定)、期待値max=+12万、期待値min=-12万、期待値平均=-606円
テスト1からテスト5まで、運が良かった人だけを集めてゲームを続けた結果、期待値分布に変化は見られませんでした。運の要素からは逃れることができないという事実が確認できました。
今回の検証で以下のことが分かりました:
「人事を尽くして天命を待つ」という言葉が示すように、運という要素が人間にコントロールできないからこそ、投資は難しくもあり、また面白いのです。
相場の世界では、多くの専門用語が飛び交っていますが、その中には学んでも実践的な意味を持たないものもあります。例えば、ボリバン、MACD、RSIなどです。しかし、数少ない信じるに足る用語として「分散」と「ヘッジ」が挙げられます。
分散とはリスク分散を指します。リスク分散効果は、相関のないシステムを組み合わせてポートフォリオを構築することで得られる「フリーランチ」のようなものです。同じリスク額でも、リターンが異なるウェイト(組み込み比率)が存在することがこの理論を裏付けています。
例えば、複数の業者で取引を分散させることで、約定能力やスプレッドの違いから生じるリスクを軽減することが可能です。
ヘッジとは、価格変動リスクを抑えるための手法を指します。例えば、FX取引における両建てがこれに該当します。同じタイミングで同じ枚数を両建てすれば、価格変動リスクはゼロになりますが、期待値はスプレッド分だけマイナスとなります。
金融機関のプロトレーダーであれば、リスクヘッジをせずにポジションを持つことは通常あり得ません。市場は概ね効率的であり、将来の価格変動を正確に予測することは不可能だからです。
ポートフォリオを組む際、本来は相関係数を使った詳細な分析が求められますが、これは手間がかかります。そのため、より簡単な方法として「システムの勝率」と「取引回数」に着目する方法があります。
取引回数が多くなればなるほど、システム本来の勝率に収束していきます。この特性を利用することで、異なるロジックを持つシステムを大まかに判断することが可能です。例えば、取引回数が1000回以上あり、勝率に大きな差がある場合、それぞれのシステムは異なるロジックに基づいていると推測できます。
分散とヘッジは、相場の世界で信頼できる数少ない用語です。これらを活用することで、リスクを軽減し、より安定した取引を目指すことが可能となります。特に、リスクを分散させることで、複数のシステムや業者を活用する意義が強調されます。
分散することには意義があります。複数の要素を組み合わせてリスクを軽減し、より効果的なトレードを目指しましょう。
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カードの情報 |
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 |
最近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
・基本情報
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つになるかと思います。
まず1つ目のパチンコに関わり合いたくないという方は、勝ちようがありません。先述しましたが、学者の先生や高学歴の秀才に多くみられる傾向にあります。これはもうしょうがないです。確かにパチンコなどと言う低俗なものに関わり合いたくない気持ちもよく分かりますので。
続いて2番目の確率の事を理解していないに当てはまる方は、確率の事を理解すれば勝てる様になる可能性があります。あくまで可能性ですけど。
そして一番多いのが3番目の確率の事を理解しているけれども実行できていない方です。ここに当てはまる方がパチンコで勝てない人の大多数を占めています。
よくあるのがボーダーを知っているのに勝てないという方です。これはパチンコの事を分かったつもりになっているだけで、パチンコというゲームの本質を理解していない事の現れです。
ちなみにパチプロでボーダーがいくらか重要視している人はまずいません。ボーダーなど知っているのは当たり前だし、それだけで食えるような甘い世界では無いからこそ、その他の部分で色々な技術介入をしているわけです。
1000円当たり22回回った!これは期待値プラスの台だ!と喜んで打ってる人はパチンコというゲームの本質を理解している気になっているだけのにわかです。いわゆる初心者ってやつです。そしてその初心者が大半をしめているのがパチンコというマネーゲームの世界です。
パチンコというマネーゲームはパチンコ屋の経費(電気代や人件費等)を引くと完全にマイナスサムゲームの世界です。一般的にパチンコの還元率は85%と言われています。
つまりパチンコというマネーゲームに参加した人全員から集めたお金の85%をプレイヤーで奪い合うマネーゲームであるという事をまず理解する必要があります。
という事でパチンコで実際食えるほど稼いでる人というのは優良店当たり数人程度でしょう。その数人がパチンコというマネーゲームでの数少ない本物の勝者という事になります。
パチンコで勝つのに難しい数式を覚える必要はありません。確率の収束と大数の法則だけ理解していれば十分です。
下記が当選確率1/100(理論値)のパチンコ台の当選確率と回転数の関係を表したものになります。
パチンコはマイナスサムゲームであり、還元率は約85%とされています。
パチプロが勝つには、期待値を積み上げる戦略が必要です。
回転数4000回を超えたあたりから理論確率(1/100)付近に収束している事が分かります。ちなみに、パチプロが一日ぶん回して2000回転程度ですので、4000回転は2日間フル稼働したものだと思って頂けたら宜しいかと思います。
つまり、1日フル稼働しただけでは理論確率に収束しきれないという事が分かります。ましてや会社帰りに数時間稼働しただけでは理論確率に収束するのはいつになるのやらという事が分かります。
理論確率より多く当たれば、運が良いといいますし、少なければ運が悪いといいます。確率が収束していない段階(回転数が少ない段階)の当選確率というのは運が支配している事も理解頂けるかと思います。
では実際パチンコでどうやって勝つの?
回転数を増やせば増やすほど理論確率(今回の場合1/100)に近づくという事は、どうすれば利益を出す事が出来るか考えてみて下さい。
ヒントはシステムトレードにおけるPF(プロフィットファクター)です。PFとは総利益÷総損失で表される数字です。
例えば勝率50%のシステムが利益を出すには、総損失が100万円とすると、それを超える総利益(100万円超え)を出す必要があります。つまり勝率50%の場合リスクリワードが1を超えないと利益が出ないという事です。
パチンコも一緒です。今回の場合最終的に1/100の確率に収束するという事は、100回転させるのに使った金額(総損失)より、当選した時にもらえる金額(総利益)の方が多ければ期待値はプラスであり、回せば回すほど期待値が積み上げられていきます。
とどのつまりパチンコで勝つというのはそういう事なのです。
あとはそれを実行できるか?
パチンコでは期待値を積み重ねていっても運の要素(偶然)によって実収支がマイナスになる事はよくあります。具体的には期待値100万稼いだけど実収支は50万しかなかったという事は多々あります。
さらに短いスパンの場合、例えば一日単位で見てみてみますと、期待値+3万出したけど実収支は-7万だったという事も多々あります。
この期待値と実収支の乖離は完全に運(偶然)です。むろんプラス側に行く時もあります。この様に偶然というのは避けることの出来ない普遍的な事だという事を理解する必要があります。
偶然のブレ(主に下振れ収支)が起こったとしても心を乱すことなく、ただ淡々と期待値を追いかけることが出来る人がパチプロという数%しかいないパチンコ界におけるマネーゲームの勝者なのです。
今年は期待値まで100万足りてないっ!って笑って話せるような人が確率の事を本当に理解し、実際行動に移すことが出来ている本物のパチプロと呼ばれる方々です。
当選確率と回転数の関係
パチンコで勝つには、期待値を理解し、実行することが求められます。以下のポイントを考慮しましょう:
期待値を積み重ねても、短期的な実収支はブレる可能性があります。これを理解し、冷静に行動できる人が本物のパチプロです。
パチンコで勝つには確率を理解し、期待値を積み上げることが重要です。短期的な運に左右される場面があっても、確率の本質に基づき行動することで、勝利を収めることが可能です。