-
Lot変化③:負ける度に次トレードのLotを初期Lot分増やす
-
Lot変化④:勝つ度に次トレードのLotを初期Lot分増やす
Lotは固定した方が良い理由
今回はLotを固定させた方が良い理由について解説させて頂きます。偶然起こったトレード結果に対してLot数を変化させる事の無意味さを検証してみたいと思います。まず今回の記事ではは以下の2点について検証してみたいと思います。
-
Lot変化① = トレード結果が負けだった場合、次トレードはLotを2倍にする。
-
Lot変化② = トレード結果が勝ちだった場合、次トレードはLotを2倍にする。
Lot固定(勝率50%、PF(プロフィットファクター)1のシステム)の期待値分布
Lot固定(15万通貨)の期待値分布 ※勝率50%、PF(プロフィットファクター)1、スプレッド0
Lot変化①の場合の期待値分布(負けたら次ロットは2倍)
Lot変化②の場合の期待値分布(勝ったら次ロットは2倍)
Lot固定とLot変化①・②の比較
まとめ
勝率とレシオの関係(±0に必要な勝率とレシオ)
1. リスクリワードレシオの基本
リスクリワードレシオ(以下、レシオ)とは 平均利益 ÷ 平均損失 で求められる数字です。例えば平均利益100pipsで平均損失100pipsのシステムであればレシオは1.0となります。
同様に平均利益200pipsで平均損失100pipsのシステムであればレシオは2.0となります。つまりレシオの数値が大きいと損小利大のシステム(手法)であり、レシオの数値が小さいと損大利小のシステム(手法)であるといえます。
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% |
3. ±0に必要なレシオを求める
±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 |
4. レシオと勝率のどちらを軸にするべきか
システムの優位性あるいは、手法の優位性を検証する際にレシオと勝率のどちらを軸にするべきかという問題が発生します。
私は勝率を軸にして確認した方が良いと思います。理由は以下の2つです:
- 勝率は取引回数が増えれば収束するから
- 相場のボラティリティーは日々変化しているから
1つ目の理由は、勝率は取引回数が増えれば増えるほど収束していきますので基準にしやすいという点です。大ざっぱに確認する場合でも取引回数が1000回程度あれば勝率はあらかた収束したと想定する事ができます。
2つ目の理由は、相場のボラティリティーは日々変化している為、一律に損切りを100pips、利確を100pipsと固定しても結局は±0の理論確率を超えることはできないと思うからです。相場のボラティリティーに合わせて損切りや利確の値幅を変化させる必要があります。
以上の2点の理由から私は勝率を軸にして±0に必要となるレシオを確認した方が良いと判断しています。
5. まとめ
レシオと勝率どちらを軸にするにしても、利益を出すには『レシオに対する±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円ゲームの期待値分布検証
1. ゲームのルール
期待値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円以上の利益を出した人のみ参加 |
2. テスト1の期待値分布
テスト1の期待値分布は以下の通りです。試行回数10回を1000人が実施した際の1人当たりの期待値分布です。
条件:勝率50%、PF1(SL=100pips、TP=100pips)、Lot=15万通貨、スプレッド:0
Lot=15万通貨(固定)、期待値max=+15万、期待値min=-15万、期待値平均=-960円
3. テスト2の期待値分布
テスト1で運が良かった人(624人)のみを集めて再度ゲームを行った結果の期待値分布です。
条件:勝率50%、PF1(SL=100pips、TP=100pips)、Lot=15万通貨、スプレッド:0
Lot=15万通貨(固定)、期待値max=+15万、期待値min=-15万、期待値平均=-1797円
4. テスト3の期待値分布
テスト2で運が良かった人(396人)のみを集めて再度ゲームを行った結果の期待値分布です。
条件:勝率50%、PF1(SL=100pips、TP=100pips)、Lot=15万通貨、スプレッド:0
Lot=15万通貨(固定)、期待値max=+12万、期待値min=-12万、期待値平均=-606円
5. テスト1~5の期待値分布比較
テスト1からテスト5まで、運が良かった人だけを集めてゲームを続けた結果、期待値分布に変化は見られませんでした。運の要素からは逃れることができないという事実が確認できました。
6. まとめ
今回の検証で以下のことが分かりました:
- 過去運が良かったからといって将来も運が良いとは限らない。
- 運は人間にコントロールできない。
「人事を尽くして天命を待つ」という言葉が示すように、運という要素が人間にコントロールできないからこそ、投資は難しくもあり、また面白いのです。
分散とヘッジ
分散とヘッジ: 相場の世界で信じられる数少ない用語
1. 分散とヘッジとは
相場の世界では、多くの専門用語が飛び交っていますが、その中には学んでも実践的な意味を持たないものもあります。例えば、ボリバン、MACD、RSIなどです。しかし、数少ない信じるに足る用語として「分散」と「ヘッジ」が挙げられます。
2. 分散 (リスク分散)
分散とはリスク分散を指します。リスク分散効果は、相関のないシステムを組み合わせてポートフォリオを構築することで得られる「フリーランチ」のようなものです。同じリスク額でも、リターンが異なるウェイト(組み込み比率)が存在することがこの理論を裏付けています。
例えば、複数の業者で取引を分散させることで、約定能力やスプレッドの違いから生じるリスクを軽減することが可能です。
3. ヘッジ (リスクヘッジ)
ヘッジとは、価格変動リスクを抑えるための手法を指します。例えば、FX取引における両建てがこれに該当します。同じタイミングで同じ枚数を両建てすれば、価格変動リスクはゼロになりますが、期待値はスプレッド分だけマイナスとなります。
金融機関のプロトレーダーであれば、リスクヘッジをせずにポジションを持つことは通常あり得ません。市場は概ね効率的であり、将来の価格変動を正確に予測することは不可能だからです。
4. システム相関の簡易分析
ポートフォリオを組む際、本来は相関係数を使った詳細な分析が求められますが、これは手間がかかります。そのため、より簡単な方法として「システムの勝率」と「取引回数」に着目する方法があります。
取引回数が多くなればなるほど、システム本来の勝率に収束していきます。この特性を利用することで、異なるロジックを持つシステムを大まかに判断することが可能です。例えば、取引回数が1000回以上あり、勝率に大きな差がある場合、それぞれのシステムは異なるロジックに基づいていると推測できます。
5. まとめ
分散とヘッジは、相場の世界で信頼できる数少ない用語です。これらを活用することで、リスクを軽減し、より安定した取引を目指すことが可能となります。特に、リスクを分散させることで、複数のシステムや業者を活用する意義が強調されます。
分散することには意義があります。複数の要素を組み合わせてリスクを軽減し、より効果的なトレードを目指しましょう。
eclipse
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