まえがき
こんにちは、さつま芋です。
連絡事項ですが、ブックマークのコメントで頂いた質問などにはブログ最下のコメント欄で回答するようにしています。
さて、今回はコイン投げについて考察してみます。
連続
100回のコイン投げをしたとき、連続して裏が何回くらい出ると思いますか?
1000人が100投したシミュレーションの結果によると、少ない人でも3連続、多い人だと16連続でした。
ちなみに連続の平均値は約7回でした。
もし勝率50%のコイン投げトレードであれば、平均的に7連敗し得ることになります。
このことは多くの人にとって想像以上だと思います。
【FX雑談】テクニカル分析に思うこと - さつま芋の勉強日記 (hatenablog.com)
負け越し
勝率50%で7連敗するのも想定し難いことですが、さらなる不運は、連敗して一勝した後にも再び連敗してしまう負け越しです。
このような不運な負け越しについても同様にシミュレーションしてみました。
1000人がコイン投げトレードを100回する中で、最も不運な人は33回も負け越していました。
負け越しの平均値は約11回なので、一取引の許容損失を1%にしても約11%のドローダウンです。
サンプルコード
#乱数生成: 省略可
set.seed(123)#空変数の作成
X <- c()
P <- c()
R <- c()
#試行人数の設定
m <- 1000#試行回数の設定
n <- 100#実行
for(i in 1:m){
t <- sample(c(-1, 1), size=n, replace=TRUE, prob = c(1/2,1/2))
x <- cumsum(t)
p <- cumsum(t > 0) / (1:n)
r <- rle(t<0)
#列結合 ベクトルを横に並べて行列にする
X <- cbind(X, x)
P <- cbind(P, p)
R <- cbind(R, max(r$lengths))
}
summary(X[n,])
#プロット
# グラフを2行1列に並べる
par(mfrow = c(2,1))
matplot(X, type="l", lty=1, xlab="試行回数", ylab="得点", main="コイン投げトレード", col = rainbow(m, alpha = 0.6))
matplot(P, type="l", lty=1, xlab="試行回数", ylab="表が出る確率", main="確率の推移", col = rainbow(m, alpha = 0.6))# 最大ドローダウンの計算
# 最大値を記録するベクトルを作る
max_X <- apply(X, 2, cummax)# 最大値からの下落率を計算する
# drawdown <- (X - max_X) / max_X# 最大ドローダウンを求める
# max_drawdown <- apply(drawdown, 2, min)# 最大ドローダウンを表示する
# print(max_drawdown)
# summary(max_drawdown)# 下落幅を計算する
decline <- X - max_X
# 最大下落幅を求める
max_decline <- apply(decline, 2, min)
# 最大下落幅を集計する
summary(max_decline)
# 連敗数を集計する
summary(R[1,])
【FX雑談】必要勝率 - さつま芋の勉強日記 (hatenablog.com)
【FX雑談】勝率と破産確率 - さつま芋の勉強日記 (hatenablog.com)
あとがき
皮肉を言うと、FXの負けに関する内容は だいたい反省です。
「メンタルが…」とか「待ちきれなくて…」など、直近のトレードを反省するのは殊勝な心掛けだと思いますが、何か物足りません。
ポジションサイズを調整するわけでもなく、入出金して資金量を変えるわけでもなく、ただ精神論に終始する反省で大丈夫なのかなぁと気になります。
FXを学ぶには取引履歴の内省しかないのかもしれません。
【プロ直伝】FXのトレード履歴の残し方・活用法を解説します - YouTube
【脱!負け組】FXのトレード履歴の分析方法、全部見せます!有料級動画です - YouTube
赤点トレード添削!チャンネルPの履歴検証の結果は?! - YouTube
以上、さつま芋でした。