週単位、月単位で勝つための1日当たりのトレード数

週単位、月単位で勝つ(例えば週単位、月単位で損益がプラスとなる確率が80%以上)には勝率どのくらいのトレードを1日に何回行えばよいかということを考えてみる。ここでは単純化して1トレード当たりの利益/損失は常に一定で「1.0」と見なしてプログラムを組んでいる。

損益プラス確率で勝ちと見なす閾値を80%、1トレード当たりの勝率を55%とした場合を例とする。

○以下のコマンドをSpyderの「IPython console」にコピー&ペーストして「Enter」キーを2回押す。

threshold = 0.8
wp = 0.55

def func(n, r):
    if n == 0 or r == 0:
        return 1
    else:
        return func(n, r - 1) * (n - r + 1) / r

prob = 0.0
n_trade = -1
while (prob < threshold):
    n_trade = n_trade + 2 # 必ず奇数にする
    prob = 0.0
    for i in range(int((n_trade + 1) / 2), n_trade + 1):
        r = i
        temp = func(n_trade, r) * wp**r * (1 - wp)**(n_trade - r)
        prob = prob + temp
print("週単位で勝つための1日当たりのトレード数 = ", n_trade / 5.0)
print("月単位で勝つための1日当たりのトレード数 = ", n_trade / 20.0)

出力

週単位で勝つための1日当たりのトレード数 =  14.2
月単位で勝つための1日当たりのトレード数 =  3.55
(2017/01/05更新)