散户炒股为啥总是亏钱?【李永乐老师数学解答】


股市又暴跌!为啥散户炒股票总赔钱?看上去输赢的概率各占50%,但主力总能通过一定的策略让你输钱。通过演算,李永乐老师的结论是:1、调整心态,把自己的钱和时间用在更有意义的事情上;2、实在要炒股的,选择基本面良好、有发展前景的股票,不要买题材股。



约翰纳什提出了纳什均衡理论,即在某个情况下,博弈双方都没有改变自己策略的动力,因为单方面改变策略会造成自己利益的减小。有一个经典的例子是这样的:有一个男人在酒吧里喝酒,一位美女走过来,对他说:我们玩个游戏吧。规则如下:每个人手里拿一个硬币,不让对方知道的扣在桌子上。两人同时把手拿开,看硬币的正反面。如果硬币都是正面,那么美女给男人3块钱。如果都是反面,那么美女给男人1块钱。如果硬币是一正一反,男人给美女两块钱。

我们可以分析下男人的收益。

如果只使用概率论,很容易发现这是一个公平的游戏。因为如果两个人都是随机出牌,那么两个都正面的概率为 1/4,两个都反面概率为 1/4,一正一反概率为 1/2,这样男人收益的数学期望就是:

E = 1/4 × 3 + 1/4 × 1 + 1/2 × (-2) = 0

但是,因为在这个游戏中,男人和女人都可以自己调整出正面和反面的频率,于是游戏就从一个概率问题,变成了一个博弈问题。所谓博弈,就是通过计算找到最有利于自己的策略。显然,女人不可能一直出正面或者一直出反面,因为这样会被对手摸出规律。但是女人依然可以在多次游戏中将自己正面的频率设定为某个值附近,从而获得统计意义上的收益。

我们设男人出正面的概率为 x ,则男人出反面的概率为1 - x,设女人出正面的概率为y,则女人出反面的概率为 1 - y ,于是,按照收益表格,男人在一次游戏后的数学期望是:

女人希望男人从统计意义上赔钱,于是就希望E<0,我们可以做一个移项:

(8x - 3) y < 3x - 1

女人希望:无论男人出正面的频率如何,他的收益期望都是负的。也就是说,无论 x 取[0,1]之间的任何值,上述不等式都成立。这样我们只需要求解这个不等式就好了。在分别讨论了 x > 3/8 x < 3/8 两种情况后,我们可以得出下述结论:当 y 取值在 1/3 2/5 之间时,无论男人采取什么策略,他的期望都是负的。

当然,男人可以说我就是为了陪美女玩游戏,所以我认赔,但是我希望赔的少一些。美女如果知道男人是聪明的,就会采用相应的策略进行应对。通过计算,最终两人出正面的频率都会是 3/8 ,而每次男人的数学期望都是 -1/8 ,这就是纳什均衡点。也就是说,从统计意义上讲,男人不可能赚钱,只是赔多赔少的问题而已。

这是不是很像股市?在股市中,庄家可以操纵股价上下翻飞,让你的心痒痒的,就好像美女一般。在庄家拉升股价时,我们做多,就可以盈利。庄家打压股价时,我们做空,也可以盈利。但是如果庄家做多我们做空,或者相反,就会亏损。在这样的规则下,每个人都觉得自己可能是个幸运儿,可以通过自己的运气或者策略获得正的收益。但是事实上,庄家有比散户更强的控盘能力和模型计算能力,他们会采用一种更好的策略,使得散户无论采取什么方式炒股,统计意义上都会赔钱。当然不排除有些散户的运气特别好,在一段时间内大赚了一笔。但即便如此,我们依然要说,在这样的规则下,长期炒股的散户,赚钱的可能性微乎其微。按照纳什均衡理论,长期炒股的人会发现,自己无论资金量大小,最终赔钱的比例大家都差不太多。

根据视频中得出的结论,可以用小段代码认证下结论是否正确。

大概就是,两人抛硬币对赌,规则如下:1)A=正面 B=正面 :A赢3;2)A=反面 B=反面 :A赢1;3)其他情况:B赢2;一个看似公平的游戏,但是如果A将出A面的几率控制在 1/3 ~ 2/5 的时候,B赢钱的几率会接近于0。

package main

import (
    "fmt"
    "math/rand"
    "time"
)

var min, max float64

func RandomInt(max int) int {
    rand.Seed(time.Now().UnixNano())
    return rand.Intn(max) + 1
}

func manT() int {
    return RandomInt(2)
}

// 1:正面 2:反面
func womanT() int {
    //先获取一个概率,概率在 1/3 ~ 2/5 之间
    var p float64
    for p < min || p > max {
        p = float64(RandomInt(100)) / 100.0
    }
    //fmt.Printf("Probability: %.2f\n", p)

    //将概率*100,得到一个分水岭数字,比如35
    var P int = int(100 * p)

    //然后随机获取一个数字
    //如果大于P(比如:35),那么抛出反面(2);反之抛出正面(1)
    v := RandomInt(100)
    if v > P {
        return 2
    }
    return 1

}

func main() {
    min, max = 1.0/3.0, 2.0/5.0
    fmt.Println(min, max)
    wm := make(map[int]int)

    var man_money int = 0
    var woman_money int = 0
    for i := 0; i < 100; i++ {
        n1 := womanT()
        n2 := manT()
        wm[n1]++ //记录美女所抛硬币

        switch {
        case n1 == 1 && n2 == 1:
            man_money += 3
            woman_money -= 3
        case n1 == 2 && n2 == 2:
            man_money += 1
            woman_money -= 1
        default:
            man_money -= 2
            woman_money += 2
        }
    }

    fmt.Println("玩了100次,美女抛出 '正面' 和 '反面' 的次数和概率如下:")
    fmt.Printf("正面 次数:%d 概率: %.2f\n", wm[1], float64(wm[1])/100.0)
    fmt.Printf("反面 次数:%d 概率: %.2f\n", wm[2], float64(wm[2])/100.0)

    fmt.Println("男子和美女所得金额如下:")
    fmt.Println("Man: ", man_money)
    fmt.Println("Woman: ", woman_money)
}
                

玩了100次,美女抛出 '正面' 和 '反面' 的次数和概率如下:

正面 次数:35 概率:0.35
反面 次数:56 概率:0.65
美女赚得37元。

股市又暴跌!为啥散户炒股票总赔钱?看上去输赢的概率各占50%,但主力总能通过一定的策略让你输钱。通过演算,李永乐老师的结论是:1、调整心态,把自己的钱和时间用在更有意义的事情上;2、实在要炒股的,选择基本面良好、有发展前景的股票,不要买题材股。