Monday, August 10, 2015

牛市忏悔录:一场本该狂欢的牛市盛宴,为何成了一场屠杀?

这个视频是上周五台风“莲花”逼近东南沿海之际,广东惠来海岸数十万小鱼们争相跳上海滩的场景。这种情景在古代会被视作“天生异象”,并被穿凿附会出很多神棍级的社会预测。但生活在海边的人都知道这种现象并不罕见,常发生于超强台风等极端天气来临之际,也就是俗谓的“风暴来临的时候,鱼也裸泳”。

鱼群并不知道跳上沙滩意味着死亡,他们这么做,只是因为其他鱼也在这么做。

是不是和散户比例超过整个市场参与者96%的中国股市神似?

他们数量巨大,经验缺乏,基本没有独立判断与自控能力,极易盲从和追逐交易,一旦风吹草动或者风暴来临,立刻会导致数千万散户如同海洋风暴中鱼群般惊慌失措,甚至慌不择路跳上海滩。

在经历差不多7年的痛苦等待与煎熬后,中国终于迎来了这轮万众期待的A股牛市。牛市本应该是一个普天同庆的狂欢节,但我们硬生生把它变成了一场需要开动整个国家机器来应对的金融危机,变成了一场投资者极度恐慌和自相踩踏的屠杀,而即使现在惊魂喘定,我们仍不清楚未来等待我们的是什么:没有人知道后面会怎么样!

这很像周星驰《大话西游》中的经典台词:我们猜中了开头,却没有猜中结尾!

市场貌似企稳了,但很多人都已经没有了明天:这包括认赌服输后跳楼的那个长沙股民,也包括一批独自在灯下饮泣的不知名投资者。

劫后余生的我们,该庆幸?还是该后怕?该如同鱼群一样,只有7秒的记忆,遍体鳞伤后立即投入另一次群体疯狂?还是该关起门,认真做一次灵魂的忏悔?

谁的灾难?谁该忏悔?


毫无疑问,这是一场股灾,有些损失我们已经看到并可以衡量,比如20多万亿财富灰飞烟灭,比如一批中产阶级重新沦为贫民。但还有些损失是我们看不到的,而且也无法去量化——它会成为一种无法愈合的疼痛和伤疤,在未来很长、很长时间,持续影响到我们。

政府和监管层之所以也必须检讨和忏悔,是因为他们在这场灾难中远不是那么无辜的。

对配资、两融等杠杆的暧昧、放纵,甚至某种程度上的推波助澜,无疑是这次财富过山车闹剧的核心原因之一。部分股民的贪婪无度纵然应该被指责,但监管层更应该明白自身的低级失误:在一个价值被忽略甚至被鄙视,本质为零和博弈的抢钱市场,在多层次资本市场完善、以及丰富对冲工具设立前,枪支管制与发放的失控,几乎必然导致街头大规模流血事件的发生。

没错,美国是枪支自由国度,但别忘了,美国在枪支发放前的权利约束与其他对冲措施匹配,美国的枪支登记、资格审查等都是全世界最完善和最严苛的(其严格程度甚至超过了移民局的入境检查):这保证了美国境内某些角落也许会发生擦枪走火,但断然不会发生成规模的群体火并灾难。

监管部门需要做的,是务必、务必管好、用好你发放枪支的权利,而不是偷运武器单方面武装战场上的某一方,这样也许短期看不到所谓的“政绩”,但至少能减少自相残杀,能避免发完枪支后,又禁止持枪人开枪的尴尬——这是一种撕毁契约的行为,它危及到的不单是市场,更有市场对公权利的信任。

对普通投资者而言,仅仅单纯的忏悔已经是不够的了,因为很多人已经没有了明天。

前天格隆汇一个在券商工作的朋友给笔者发来一段话:下班后我用针孔打印机打印被平仓的客户名单,一张又一张,一张又一张,打着打着我突然就哭了起来,觉得这不只是一份份平仓名单,更像是一份份阵亡名单。好端端一个个鲜活的中产家庭,从此开始为基本衣食生计而奔波。他们有没有未来不知道,但真的是没有明天了!

有什么是需要你拿你和你家庭的未来去赌的东西?

想过日出而作,日落而息的田园生活吗?他们知道股票吗?他们的幸福比你少,还是多?或者,你可以换个思路,通过你在股市的疯狂赌博,你真的赚到了李嘉诚那么多钱(当然,根本没这个可能性),你会觉得你就拥有了你想要的幸福?——笔者要确定地告诉你的是,李嘉诚的烦恼远远远远多过你:他86岁了,为了商业帝国的运转,还得每周上6天班,每天工作16个小时。而且,他永远没有你那份想走就走川藏线的洒脱和自由。

如果说认赌服输的人多少还算“盗亦有道”,他们的忏悔多少是会被佛祖接受和原谅的话,另一批所谓“投资者”——实际的赌徒——真的属于不值得同情和原谅的。

这波杠杆牛市,制造了一大批股神,虽然他们消失的速度比产生的速度还快。牛市的自然力量以及牛熊短期迅速转换的闹剧,如图一面魔镜,照出了诸多人性的弱点与不堪:

  • 在5000点时和创业板120倍PE的时候,他们自诩股神狂买股票,并嘲笑那些提示风险的人只会越来越聪明,而自己会越来越有钱!

  • 在3500点的时候破口大骂,骂政府、骂证监会、骂肖钢,骂所有和他们的投资其实没有毛线关系的任何人,唯独对自己无比宽容。

  • 当政府救市成功,他们又立即开始对政府歌功颂德,并不忘第一时间重新加上被吓得丢弃了的杠杆——这像极了那些几进宫的惯犯,出了监狱,去的第一个地方不是家,而是过去团伙作案一直聚集的窝点。

英文中有句谚语:Everything happens for areason(万事皆有因)。这个表达具有典型的英国人的文绉绉,中国人的表达其实简单直白得多:no zuo no die。没有人在5100点拿枪顶着你去放杠杆买股票。驱使着你疯狂的,是你自己内心的贪欲。

最关键的是,这批人的杠杆绑架了整个市场,并让那些诚实价值投资者,那些根本不知股票和杠杆为何物的人(国家投的每一分救市钱都有他们的份)无端来为你的愚蠢和贪婪买单。

面对上周四、周五市场反弹后场外配资的迅速死灰复燃以及笔者的疑惑,一个朋友如此解答:有些人是救不了的,也无药可救。赌徒的麻将只会越打越大。赌徒赌输了绝不会安心离场的,更多的是砸锅卖铁回来继续翻本。这种人,是不能被教育的,只能被消灭。

天作孽,犹可恕。自作孽,不可活。这次股灾,前国家总理朱镕基的那句话最为经典:“中国股民的风险意识还不如解放前。”信哉斯言。

如果藏区没有秃鹫,如果索罗斯被警告


这次救市,争议最大的,是对做空的限制、禁止,乃至司法入刑。

在任何市场,做空只是与做多相对峙的一种市场盈利手段,天经地义,无可自责。价格低于价值,做多。价格高于价值,做空。这其中无涉任何道德因素或者正义、恶意的分野。如果说把一个只值10元,股价却涨到了20元的股票放空赶回10元是恶意,那把一个只值20元,却被干到300元的做多行为(这种案例在创业板比比皆是),丝毫也未见得高尚。

没有做空的制约,市场必定陷入泡沫产生并膨胀——崩溃——泡沫再产生再膨胀——再崩溃的恶性循环。而且,做空不是包赚不赔的无风险旅行,它与做多一样是一种高风险行为,盲目的做空一样是自寻死路。

这次监管层通过用限制做空、甚至用公安等国家机器追究恶意做空者的做法,无疑在救市中起到了至关重要的作。乱世用重典,要救市就必须成功,这个无可非议,但未来采用类似措施必须慎之又慎——这种某种程度上牺牲契约规则的方法无疑是采用了核爆的激烈方式:敌人或许是被消灭了,但核污染或许会在很长、很长时间影响,甚至惩罚我们自己。

核爆后的污染,你看不见,摸不着,但,它存在于空气中,水源中,土壤中,接触你的皮肤,侵入你的呼吸道,悄无声息,日积月累侵蚀你肌体的抵抗力——而我们救市的本意原本是希望市场健康茁壮地成长

刚到香港时,笔者曾对市场上的那些做空者深恶痛绝。现在我发自内心认可并欢迎他们。他们看似不受欢迎的行为最大程度保证了我们这个市场的清洁。如同藏区天葬中那些吞噬尸肉的秃鹫,看似外表丑陋,但在藏区人看来,它们是人死后灵魂升入天堂的唯一通道。如果没有它们,藏区的雪山草地是否依然会显得那么圣洁无暇?

伦敦之所以是长盛不衰的全球金融中心,是因为1992年它没有向做空英镑狂赚20亿美金,并导致英镑几乎崩溃的索罗斯做任何讨伐行为——哪怕是口头警告。

这个同样适用于中国市场——靠公安部与手铐是无法建设一个国际金融中心的。

危机过去了吗?灾难会重来吗?


危机过去了没有,天才知道。

但我们不可能装作什么也没有发生过。

对有些人,灾难可能永远也不会再来了:这种被打痛的教训会从此深入他的骨髓,并在他未来的投资生涯中保驾护航。

但如果你只是象本文开始的那些鱼群,记忆力只有7秒,那灾难随时会重新回来,随时!

事实上,很多人的记忆力并不比跳上沙滩的鱼群好多少,至少,对于配资的记忆力只有半天。在上末市场触底后,融资、场外配资迅速死灰复燃,在前几天暴跌中每天下降一千多个亿的融资额,在周四几乎没有下降,而到了周五上交所的融资则开始不降反增。(见下表)


这两天朋友圈广为流传的一条信息是:“有做配资生意的朋友刚才说,今天重新来找他融资放杠杆杀入市场的客户几乎打爆他的电话,而且不少是之前强平出局的客户,说现在有机会翻本当然要杀回来……只能感叹赌性深重之人,果然无药可救。”

如果你不能克制你的贪婪,危机永远会与你如影随形。

如果你还不知道笔者在说什么,可以看看下面这段视频:

Kendo UI vs UI for ASP.NET MVC

I’m a Mac. And I’m a PC – Remember 2006 and the brilliant ‘Get a Mac‘ ad campaign? With John Hodgman as the bumbling PC and Justin Long as the hip Mac, the odd couple entertained us thoroughly with their mannerisms and one-liners.
Fast forward to 2015 and another similar debate is raging among web developers. You are almost expected to be in one of two camps – the Enterprise developer or the Hipster developer. The enterprise developer knows the complexities of enterprise web applications, loves managed code and server-side business logic. The hipster developer loves JavaScript, swears to build most functionality client-side and can code entire applications in a simple text editor.
However, most of us don’t belong entirely to either of these camps. Instead, we have understanding of the nuances around enterprise web applications, but also acknowledge the ubiquity of JavaScript. We’re just want to pick the right tools for the job. In this article, we talk about treading the fine line between going all-out client-side using Kendo UI while keeping your server-side sanity as an ASP.NET web developer. I believe that there is a middle ground that allows you to stay within your comfort zone while still building cutting-edge web applications. Let’s dig in!

A Tale of Two Products

The combination of two different Telerik products helps level the playing field for all types of web developers: Kendo UI and UI for ASP.NET MVC. Whether you are an enterprise ASP.NET developer, a JavaScript champion or someone in between, these web development tools are flexible and can adapt to your needs.
Kendo UI is a modern all-inclusive HTML5/JS framework – it’s fast, light and complete, with 70+ jQuery-based UI widgets in one toolset. Kendo UI sports integration with AngularJS and BootStrap, as well as, support for mobile-specific controls and offline data solutions. It also includes built-in framework support for the MVVM pattern and a versatile dataSource to power your applications. Kendo UI may be the only JavaScript framework that you need to add to your web project. Much of Kendo UI is open-sourced as Kendo UI Core and completely free, but it also caters to enterprise scenarios via Kendo UI Professional. Learn what’s new in Kendo UI by signing up for the upcoming release webinar.
KendoRelease_888x120
But perhaps writing straight up JavaScript is just not your thing or you have no reason to give up on the managed code comforts on the server-side – may be you already have much business logic written in C#. What you are looking for are client-side UI widgets rendered through your ASP.NET MVC framework, which is great for web development just the way it is. You want to continue writing .NET code, while not having to build your own UI widgets client-side. We hear you!
The Telerik UI for ASP.NET MVC UI suite is squarely meant for ASP.NET MVC developers like you – allowing you to leverage all the Kendo UI client-side widgets through easy MVC wrappers. You get clean HTML5 rendering from your MVC markup and can be assured that your users get a seamless user experience across any browser or device. It includes more than 70 ASP.NET MVC components powered by Kendo UI, including enterprise-ready UI controls. UI for ASP.NET MVC is not just MVC wrappers for Kendo UI though – it also includes framework pieces and Visual Studio goodies for the .NET developer. Using Kendo UI widgets via UI for ASP.NET MVC suite gives you the client-side UI functionality while having all the server-side comforts.

Show me some Code

Let’s take a look at some code to render a simple Kendo UI AutoComplete widget. We’ll start with the front-end code first:


<html>
<head>
    <title></title>
    <link rel="stylesheet" href="styles/kendo.common.min.css" />
    <link rel="stylesheet" href="styles/kendo.default.min.css" />

    <script src="js/jquery.min.js"></script>
    <script src="js/kendo.all.min.js"></script>
</head>
<body>
<label for="countries" class="info">Choose your country:</label>
<input id="countries" />
<script>
                $(document).ready(function () {
                    var data = [
                            "United Kingdom",
                            "France",
                            "Germany",
                            "Italy",
                            "Portugal",
                            "Spain",
                            "Sweden",
                            "Switzerland"
                        ];

                    // Create AutoComplete UI widget
                    $("#countries").kendoAutoComplete({
                        dataSource: data,
                        filter: "startswith",
                        placeholder: "Select country...",
                        separator: ", "
                    });
                });
            </script>
</body>
</html>
Notice how in the code above, we declare a JavaScript variable to hold the list of country names and then use a Kendo UI DataSource to bind the list to our AutoComplete UI widget, rendered through a jQuery-like markup. We also utilize some other properties on the Kendo AutoComplete widget like FilterPlaceholder and Separator. You can play with the code above and see impact on the rendered Kendo UI control through thislive coding dojo.
Now, let’s take a look at the same Kendo UI AutoComplete widget, this time rendered using the UI for ASP.NET MVC wrappers. This is the kind of code you write in your MVC Views, granted you have the requisite Telerik UI for ASP.NET MVC DLL server-side in your project:

<div id="shipping">    
<label for="countries" class="info">Choose your country:</label>
    
    @(Html.Kendo().AutoComplete()
          .Name("countries")
          .Filter("startswith")
          .Placeholder("Select country...")
          .BindTo(new string[] {
                "United Kingdom",
                "France",
                "Germany",
                "Italy",
                "Portugal",
                "Spain",
                "Sweden",
                "Switzerland"
          })
          .Separator(", ")
    )
You get the exact same result. Notice how, instead of using JavaScript, we’re writing code in our MVC View directly and using the Kendo UI HTML Helpers. These helpers look identical to the other regular HTML helpers, and that is by design. The rendered AutoComplete widget is using the Kendo UI DataSource behind the scenes, except you don’t need to code for it separately as in the JavaScript. With the MVC wrappers, you have the option to declare things like DataSource content inline with the control – this leads to much more readable code. Setting properties like Filter,Placeholder and Separator on the Kendo UI widget is just as easy – simple (.) delimiters should make any .NET developer comfortable.
Want to render a Kendo UI Grid bound to remote data over Ajax and support full CRUD operations? Here’s the simple code through ASP.NET MVC wrappers:

@(Html.Kendo().Grid()
    .Name("grid")
    .ToolBar(toolbar => toolbar.Create())
    .Editable(editable => editable.Mode(GridEditMode.PopUp))
    .Pageable()
    .Sortable()
    .Scrollable()
    .DataSource(dataSource => dataSource
        .Ajax()
        .PageSize(20)
        .Model(model => model.Id(p => p.ProductID))
        .Create(update => update.Action("Product_Create", "Grid"))
        .Read(read => read.Action("Product_Read", "Grid"))
        .Update(update => update.Action("Product_Update", "Grid"))
        .Destroy(update => update.Action("Product_Destroy", "Grid"))
    )
)
As you’ll notice in the code, we render the Kendo UI Grid through the MVC wrapper and it is strongly typed to a ViewModel. The DataSourceproperty points to the data model and has 4 setters corresponding to CRUD operations on the data, each being an MVC method on the server side that deals with JSon data from the grid – that simple. It is just as easy to configure the other properties of the grid, like sorting, paging and edit modes. The Kendo UI Grid rendered through the MVC wrappers is here to solve your toughest enterprise data display needs with ease.

Why UI for ASP.NET MVC

Hopefully you are excited about the prospect of using Kendo UI widgets within the comfort of ASP.NET MVC, but you may also have some lingering questions. I’ll try to address some common ones:
Question: Can I write code to render any Kendo UI widget through MVC wrappers?
Answer: Yes. Every Kendo UI widget can be rendered entirely through server-side markup using UI for ASP.NET MVC wrappers. If you are used to the common MVC HTML Helpers, the syntax for the Kendo UI wrappers will feel almost identical – this is by design so developers do not need to learn anything new. We’re also in tune with what’s next with ASP.NET MVC 6 and will look to leverage new features like TagHelpers where appropriate. Check out all the live demos of MVC wrappers for every Kendo UI widget here.
Question: Does UI for ASP.NET MVC offer any framework features above and beyond the Kendo UI wrappers?
Answer: Absolutely. UI for ASP.NET MVC suite is much more than Kendo UI wrappers – it is squarely meant for MVC developers and keeps you in your comfort zone. You gain the features you expect in standard MVC web development – like data annotations, server-side MVC Model-View bindings, data connectivity/plumbing with minimal code and ViewBag usage.
Question: Can I do everything around the Kendo UI grid from the server side?
Answer: You’ll love the Kendo UI grid – it is enterprise-ready and can handle almost any data display needs, while staying highly performant. Everything that the Kendo UI grid is capable of can be hooked up via MVC server-side wrappers. The Kendo UI grid often utilizes the DataSource under the covers – something you have to hand-code in JavaScript. If you’re using MVC wrappers, much of the plumbing is already taken care of. You also get easy control/configuration over how the Kendo UI grid does paging, sorting, filtering and grouping – whether client-side or server-side. The MVC wrapper for Kendo UI grid allows you to connect to a wide variety of data sources, as well as set up easy CRUD operations.
Question: Can I use Kendo UI and UI for ASP.NET MVC wrappers interchangeably in a project?
Answer: Yes. While you can render any Kendo UI widget through the MVC wrappers, there is also nothing stopping you from using Kendo UI straight up in JavaScript. In addition to the MVC wrapper server-side DLL, just make sure to have the right Kendo UI JS/CSS references in your project and you can jump into any MVC view and write direct Kendo UI code in JavaScript. Compared to WebForms developers, MVC developers are much more used to coding ‘closer to the metal’ and being able to use MVC wrappers or Kendo UI interchangeably gives you the most flexibility.
Question: I stay in Visual Studio all day. What can UI for ASP.NET MVC do for me?
Answer: UI for ASP.NET MVC is meant for Visual Studio MVC web developers and, as such, has many IDE bells and whistles. UI for ASP.NET MVC comes pre-built with several Visual Studio project templates which help you jump-start your development with the product, using pre-built configurations. You get easy responsiveness out of the box for your MVC web application and from several Kendo UI widgets. You get a streamlined wizard-based UI to configure/upgrade your web project to the latest version of UI for ASP.NET MVC. And starting Q1 2015, you gain MVC scaffolding inside Visual Studio to easily bind your data models to typed MVC Views and CRUD operations through bound Controllers.

Conclusion

Choice and flexibility for developers is a nice thing. Consider Kendo UI and UI for ASP.NET MVC to be two sides of the same coin – it caters to either JavaScript or ASP.NET developers, and you can use them interchangeably. The end result is a polished tooling for building modern web/mobile applications that run everywhere.
Want to see what’s next in cutting-edge app development across web/mobile/desktop? Come join us for TelerikNext in Boston. Ed Charbeneau and I will share more love around ASP.NET 5 and all your favorite Telerik UI suites. Please feel free to use promo code BASU for a discount off the standard price. See you in May!