韭菜不够了,镰刀就割上镰刀了!

韭菜不够了,镰刀就割上镰刀了!

黑吃黑,狗咬狗!

杀猪盘被杀猪盘反杀,这2天,金融圈的惊天丑闻又被爆出来了。

金融圈私募大佬叶飞在微博上发文称,中源家居市值管理找的盘方赖账不付尾款。

叶飞去联系公募基金和券商资管过来接盘,还说约定好了锁仓,要拉升股价30%,但结果不仅没锁仓,还不断出货。

最后没有尾款,下家找他要几百万,两头夹击把叶飞给逼疯了。

说好了一起忽悠接盘侠,没成想自己成了接盘侠。
于是鱼死网破。
 

而且从目前资料来看,叶飞已经不是第一次做这种中间人了,当然市值管理对金融圈业内人士而言,也不算什么秘密。

所谓市值管理,其实就是操控股价,简单点就是说某些上市公司为了某种目的(方便公司融资或者股权质押又或者方便高位这些董监高高位套现)花钱请一些公募、私募基金之类的机构,让股价维持在一个市值水平,甚至偶尔还要制造一些利好消息,配合杀杀散户。

然而,干这种事真有那么容易吗?

答案是肯定非常容易,只要你不怕被抓坐牢,其实并不困难,无非就是多准备一些资金,多找几个账户的事。

 

一直以来,韭菜都在推测庄家操纵市场,却苦于没有证据,这次由于内部内讧,爆出黑幕背后的一些实锤。
这让普通股民很震惊:
1、没想到庄家操纵股价如此肆无忌惮;
2、没想到牵涉到如此之多的上下游产业链;
3、没想到浓眉大眼的券商资管公募基金可能是卧底,目前媒体涉及到的,就有申万、民生等机构以往的员工。
这事影响太坏了,让领导脸上很不好看。
这次叶飞算是被彻底逼疯了,还号称要在40天内曝光18家市值管理的上市公司。
既然有人召唤神龙,神龙就来了。

今天证监会依法对相关账户涉嫌操纵中源家居等股票行为立案调查。

证监会表示坚决贯彻落实“零容忍”工作方针,依法从严从快从重打击包括恶性操纵市场、内幕交易等在内的各类重大违法行为,持续净化市场生态。
 
将根据交易所核查情况,将对相关账户涉嫌操纵利通电子、中源家居等股票价格立案调查。
  
昨天叶飞举报的是中源,现在查的是,操纵中源的账户,那么谁在买中源呢?
 
是叶飞找的下家呀。
 
也就是说,背后的金主不仅损失了钱,下面还要被调查,这是不是杀敌800,自伤3000?
 
叶飞自己也说了,如果中源家居方面继续不作为,他将向证监会实名举报,即便自己也可能面临牢狱之灾:
 

“和坐牢相比,你愿意被欺骗吗?如果坐牢,我也认!以后不许任何一家上市公司骗我……”

不过我觉得叶飞可以放心,以后不会有上市公司敢麻烦他了。
金主账户被查,掮客有没有责任?
 
相反,中源反而能摘的干干净净,只要他们证明,自己没去找叶飞即可。
 
有人愿意买,我特么卖股票难道犯法不成?
这事真特么太有意思了。
韭菜不够了,镰刀就割上镰刀了!
古代也确实有过这样的先例,曾经有人为了跟仇人同归于尽,主动自首说自己谋反,而同谋是谁谁谁。自己固然要死,但仇人也绝对好不了。
 
一般来说,以往的粪坑博弈会经常出现在底层社会,那因为环境逼仄资源短缺。可现在,高大上的私募和上市公司们,也开始粪坑博弈了。
有人还在问,为毛会这样啊?
 
其实无需问啊,
 
韭菜不够了,镰刀就割上镰刀了!
 
 

参考资料:

凤羽财经:这种狗咬狗,我们股民很欢迎

南方找北:一个干翻整个A股

 

转自:https://mp.weixin.qq.com/s/u2TQRFvxxeBsao0e42Oo_w

一条微博引发的中小票屠杀

作者 | 陈肖

数据支持 | 勾股大数据(www.gogudata.com)

一条微博引发的中小票屠杀

对于今天的冰火两重天的行情走势,叶飞绝对起到了推波助澜的重要贡献。
 
毫无意外,叶飞于近期在微博上陆续曝光的十多只股票在今天莆一开盘就以集体暴跌吸引全市场的关注。

1

一己之力搅翻资本江湖
今早,“叶飞概念股”带崩小盘股,昊志机电低开近19%,中源家居低开8%,东方时尚、今创集团、法兰泰克、利通电子等跌停,此外,ST板块伤亡惨重,10余只股票跌超10%,板块内近200只个股下跌。
一条微博引发的中小票屠杀

除被爆“坐庄赖账”的中源家居外,被股民称之“叶飞概念股”的上市公司还包括:起步股份、ST众泰、通裕重工、凯盛科技、维诺信、东方时尚、今创集团、昊志机电、华钰矿业、利通电子、隆基机械、法兰泰克等,几乎无一幸免暴跌的局面。 

即使是叶飞爆料与市值管理有关联的申万宏源、民生证券、恒泰证券、天风证券等券商,都同样遭到“错杀”。
然后连带着,大量小市值股几乎崩盘式暴跌,ST板块更是掀起了跌停潮。粗略统计了一下,今天A股有141只跌停,是今年来跌停数最多的一天,其中大部分都是市值在50亿元以下的。
 
一把把20米长的大刀,砍得无数散户浑身难受,在叶飞微博下面嗷嗷叫。
一条微博引发的中小票屠杀
先不说叶飞在此事件的法律责任该如何,从营销效果的角度,他的这波操作堪称营销鬼才——在微博,其粉丝量短短几天暴涨几十万到128万,每一条微博都能带来几百上千留言,成了真正的超级大V。
 
现在,成为大V的叶飞身价已不可同日而语。想要采访他,需要支付顾问费16666元/小时,换算成日收入,约等于“0.2爽”:
一条微博引发的中小票屠杀
不知叶飞现在的心情是不是爽了,反正在其微博下面,除了少部分点赞其“大义灭黑”行为的,绝大部分是来自散户的各种问候。
一条微博引发的中小票屠杀
确实,他以一己之力,对今天的A股小市值股造成的冲击,不亚于一次“加息”带来的利空冲击。
 
不过这利空仅局限在小票股。
 
与ST板块跌停潮截然相反的,是今日“茅系”股票集体翻红大涨,不少行业龙头暴涨拉动整个A股报复性反弹,创业板都又涨了2.6%。
 
冰火两重天之下,买了“叶飞概念股”的股民心情更糟糕了。
 

2

市场成熟化下的畸形产物
叶飞事件很可能会成为中国证券史上被记入史册的重大一笔,如果他说揭露的数十家公司包括各大机构的内幕是真的,那么,其影响力相比之前徐翔案对市场的冲击力将有过之而不及。它是A股有史以来第一次最大化地从内部掀开机构联合操控股价的资本黑幕。
 
以前股民们对徐翔案的反应是——下一个徐翔在哪里?
 
现在股民们对叶飞事件的最大反应是——50亿以下的小票从此再也不碰!
 
同时,此事件也正是解开了市场上无数人一直百思不得其解的谜团:
 
a,为什么总会有很多大小公募基金经常出现迷之操作——去配置“谁都知道是垃圾股”的普通行业小市值股,有的股票甚至是夕阳行业的亏损股;
b,为什么很多韭菜股民被机构牵着鼻子走,抄了作业却老避免不了亏钱;
c,为什么机构喜欢疯狂追涨打板小票妖股并且总是大概率能功成身退…
 
现在看来,很多不符合常理逻辑的现象,都有了个大概的答案:背后有庞大的、联系紧密的、超出人们想象的操控股价产业链。它如同一张又密又牢的渔网,把不知所以的散户韭菜们变成任之猎食的沙丁鱼。
 
股票投资作为当前实现个人财富增长最具想象力的合法途径之一,99%的全球顶级富豪之所以能在很短时间拥有世人无法企及的庞大财富,都是因其股票资产价格的急剧膨胀。国内的几家各大平台巨头都是在近短短几年内变成市值数千上万亿的超级巨无霸,其背后的实控人动辄数千亿的惊人财富羡煞无数股民。
 
但股票市场也天然具备信息不对称、交易对象不平等、监管判定难度大等特点,导致操盘方的可操作空间极大,最终诞生出叶飞事件这种看似突兀惊人,实际见怪不怪的金融大瓜。
 
可以说,炒股天然对人性有着难以遏制的原始冲动,对于股民来说是一条充满陷阱危机的路途;但在操盘方看来则是充满诱惑与法律风险的选择之路。
 
在A股短短的30年历史中,从来不乏因此迷失其中的各种“大佬”:叶荣添、赵笑云、阮杰、汪建中以及此前叱咤资本市场的徐翔总舵主等等。他们从风光无限到最终如流星坠地般锒铛入狱,逃不出天网恢恢的法律制裁。
 
叶飞极其所涉及的各利益方,迎接他们的很有可能是同样的下场。
 
如果还有需要反思的,那就是我们现在真的需要好好想想,当下A股生态,到底是一个怎样的“对立统一矛盾体”。
 
叶飞事件目前的所曝光涉及的所有个股,基本上都是有几个特点:小市值、行业普通、业务赛道一般、业绩亏损,股票少人关注。
 
所有这些特征,都验证了一个事实,A股现在实际在加速港美股化,或者又叫走向成熟化。这种变化最大的特点,就是股票市值的二八分化甚至一九分化:
 
越是业务模式有前景,业绩有保障的企业越能获得资金的青睐,享受越来越高的估值溢价;而越是夕阳行业产业,或者业务模式没有吸引力的企业只能逐渐沦为无人问津的淘汰对象。最终,在赚钱效应下,马太效应不断加强,即使有业绩支撑的小公司都难逃被抛弃的结局。
 
其实,对于很多小企业来说,他们也是挺无奈的。能在A股上市非常不容易,谁不希望自己的公司市值能成为万人瞩目的超级巨头?但总有大多数是在经济历史发展过程中成为被淘汰的夕阳产业对象。
 
万象更新,新陈代谢是发展规律,此前改革开放带来的中国经济最高速发展红利期将尽,而新科技及新商业模式的出现,虽然衍生了很多新业态,但也冲击淘汰了更多传统的业态。供给侧改革、行业内卷,企业竞争加剧,都说明了传统企业在面对的无奈现实。
 
这也是为什么此事件被曝光个股,都是那些普通行业看不到希望的企业。
 
并不是谁都能适应时代潮流迭代生存下来,但谁又愿意看到自己变成被淘汰的一方呢?
 
所以,一方面是看不到希望的未来,一方面是轻而易举获利巨大的“市值管理”,这是很考验人性的。
 
但,这绝不是这些企业要以“市值管理”为民搞非法操控股价的理由。任何时候,游戏规则只有遵守,不应该违犯,否则必然是对其他入场者不公平,必然也是要遭严惩。
 
其实每个行业都有其不为人知的黑色产业链,包括之前轰动全国的“深房理事件”、“郑爽逃税事件”等。这些现象之所以野火烧不尽春风吹又生,根本原因殊途同归:监管在明对方在暗、信息不对称、可操控的空间大,以及令人难以抗拒的巨大利润。
 
这是一场永远不会停止的“规则与犯规”的对抗游戏。

3

珍惜生命,远离小票!
 
我们不得而知,这些所涉及的以及其他更多没有被曝光的企业方,他们做“市值管理”的出发点到底只是为了做大市值方便企业融资发展,还是破罐破摔把上市公司当做捞钱套现的工具,但人性自觉判断,后者必然更多。
 
在中国的A股历史上,曾有过七次重启IPO的经历,大多数都是市场环境很惨淡的背景下被迫暂停的。导致A股市场长期以来对上市企业严进宽出,市场对“炒壳”成为追捧大趋势。
 
在最近一次的暂停期间(2012年11月16日~2014年1月17日),A股的壳价格甚至被炒上至20亿元以上,后来很多妖股诞生也是源于此。
 
但随着A股的IPO重启,注册制推行、创业板、科创板等推陈出新,A股股票池是在不断变大。也就是说供给股民选择的机会大大增多。
 
IPO重启至今,A股累计新发行了1900只个股,增加了近8成的数量。虽然退市股还不到百家,但股民的选择多了,“壳公司”已经再无多少价值。
一条微博引发的中小票屠杀
一个很明确的数据,截止今天,A股共有4302只股票,但市值低于50亿的股票已经超过了2000只,占比高达46%;市值低于20亿的也有1千多,占比高达四分之一!
一条微博引发的中小票屠杀
在过去的一年,A股所有股票市值增长中,那些成长性更高,业绩预期更强的头部公司市值增长最明显,“茅指数”、“核心资产”C位出圈,成为资金追逐的焦点。相反,跌幅最惨的正是一众再几无人问津的小票股。
 
我们所有听到的“全日零成交”、“几十万撬动几十亿”、“面值退市”等在A股历史上未曾出现过的新名词,全部都来自这些大量的小票股。
 
除了个别妖股像“叶飞”这样的机构坐庄异常爆炒成妖引发一时关注除外。
 
无论散户们接不接受,现在去炒小市值股都是一个命中率非常低的高难度操作。
 
所以,珍惜你的资产,如同珍惜你的生命,远离小票吧!
 
虽然这样做肯定会错过很多有可能成长为超级大白马的标的,但肯定也会因此避开更多让你后悔一生的各种意外大坑。
 

4

结语
 
 
在投资上,在能力边界范围内做投资的这一条基本准则,已经老生常谈了。
 
但直到现在很多人会因为畏惧优质龙头的高估值反而去赌风险更大的小票股,其实从大样本结果看,这种成功率几乎可以忽略不计。
 
所以,还不如去买已经过市场和时间双重考验的行业龙头,或者现在新科技与新商业模式时代下的弄潮儿,再不济,去买个银行保险这样的大蓝筹吃分红都好过去赌那些小票。
 
投资最简单的事情,就是在对的业务赛道上,寻找对的公司,这其实并不难。然后与之一起成长,享受估值长期增长的快感,它不香吗?

 

转自:https://mp.weixin.qq.com/s/VUBsq4HwbvxxFmel0PdbUg


100万封口费?四季酒店的一次摔杯后,18家老板要失眠了

◎作者 | 铁马

◎来源 | 金融八卦女频道(baguanvpindao)已获授权

近日,号称中介费只收几万的叶飞,又爆料说中源家居本来准备掏100万让他闭嘴。

 

可是啊,证监会都说了要一查到底,这场“黑吃黑”的自爆,怎么可能草草收场?

 

这几年以来,摔杯子之后,很容易有人睡不着。

 

这事儿,富力老板张力懂,行为艺术大师李国庆懂,中源家居、维信诺、昊志机电、东方时尚、隆基机械等18家上市公司的老板,现在也应该体验到了。

 

咋回事呢?

 

话说,江湖上有这么一位“大侠”,之前叫嚣着超过徐翔,连续在电视上当评论员,后来当过私募冠军。

 

然后,就也被杀猪盘了,还带着券商一起被杀,成了接盘侠。

 

这就是我们今天的主角——叶飞,一个要成为海贼王,哦不“杀猪王”的男人。

 

100万封口费?四季酒店的一次摔杯后,18家老板要失眠了

金融圈的黑吃黑

 

咱们先复盘一下叶飞爆料的事情经过,假设叶飞在微博的爆料坐实(注意是假设),应该是何种操作过程?

 

100万封口费?四季酒店的一次摔杯后,18家老板要失眠了

 

中源家居的庄家(叶飞晒出身份证的女士,咱就叫她小蒲妹子吧),通过申万宏源某营业部人士刘鹏联系叶飞,邀请叶飞这个中间人,找到公募基金和券商资金,希望有资金能帮忙买股票代持,把仓位锁住,并承诺保底,后续会拉升30%以上。

 

盘方大笔套现,代持方拿走代持费,叶飞、刘鹏等中间商拿中介费。

 

但后来吧,中源家居连续三个跌停,公募、券商资金包括叶飞在内,都发现自己被骗了。

 

实际是中源家居的庄家(盘方)要出货,然后直接出给了公募和券商让其接盘。

 

嗯,这就是传说中的“假代持真出货”。

 

大家都是第一次合作,也都是看在钱的份上,这下券商和公募一毛钱没赚到还倒贴30%。

 

公募和券商就找中间人叶飞是问,让叶飞赔钱。

 

叶飞也发现盘方连后续的保证金和中介费都不付了,就把这事捅出来了,要不然咱们一起鱼死网破嘛,毕竟我身上背的监管函和禁令也不止你这一条。

 

有人说:“诶,我感觉这和荐股群里的杀猪盘挺像。”

 

自信点,咱把“感觉”两个字去掉,朋友们,现在韭菜都不够用了,直接割机构啊!

 

如果“市值管理”坐实,可就是违法行为、操纵股价了,所以上市公司中源家居已经连夜撇清关系,否认三连。

 

韭菜到底谁,也有迹可循。

 

我们来观察一下,叶飞在华夏时报的采访里称,“市值管理”的买入时间是2021年3月31日。

 

当天因为盘中引发跌停,最终公募基金没有买,所以“入局”的是券商资管,买入1500余万元。

 

100万封口费?四季酒店的一次摔杯后,18家老板要失眠了

 

民生证券是新的十大股东之一,买入55万股结合当时中源家居26元左右的股价……虽然上市公司连连否认(主要是不否认也不行啊),但是感觉“锤”越来越多,难不成“冤大头”找到了?

 

于是就有了第二天四季酒店里的摔杯事件。

 

刘鹏对《华夏时报》记者抱怨说,这都怪叶飞:

 

没有控制好情绪,摔了杯子,实在不应该,“应该好好谈”,因为整个链条里又没有书面合同,都是口头协议。

 

100万封口费?四季酒店的一次摔杯后,18家老板要失眠了

▲图片来源:华夏时报

 

100万封口费?四季酒店的一次摔杯后,18家老板要失眠了

叶飞的再一次黑色幽默

 

如果叶飞的爆料坐实,那么几方都不是什么好人,咱先说叶飞“叶老师”吧,他的坑人经过,互联网还是有记忆的。

 

叶飞和徐翔草根出身不一样,他是正统南京大学数字多媒体专业毕业,这在老股民里绝对是专业出身。

 

据说1998年19岁的叶飞带着2万元踏入了中国A股资本市场(一说1994年叶飞入市,但当时叶飞只有15岁,已不可考证)。

 

然后伴随着黄燕铭的“五朵金花“理论赚得人生的第一桶金。

 

之后由于他去做了私募叫做倚天投资,在2015年前后收益确实不错,被评为了“阳光私募基金股票策略组2015年上半年度冠军”。

 

例如他的阳光私募基金倚天雅莉3号仅成立9个月的产品涨幅高达315.73%。

 

100万封口费?四季酒店的一次摔杯后,18家老板要失眠了

▲2015年叶飞的路演宣传图

 

后来倚天雅莉三号更是跑赢了徐翔旗下产品147个百分点,所以“叶老师”开始说自己比徐翔厉害,肯定能超过徐翔,加之叶老师平时聊天的话术还颇有些“大霄之风”,所以叶飞不仅在CCTV里当过股评人,还开始了“传道授业解惑”。

 

同样是2015年,浙江某大学邀请叶飞到EMBA总裁班给大家讲课。

 

钱江晚报的报道是这样的:

 

“叶飞上课内容很简单,除了普通股票知识,就是讲实际操作。

 

EMBA学员的陈先生说,今年(2015年)5月14日、15日两天,叶飞示范了辉煌科技的股票操作,让上课的学员跟着买。

 

开始的时候辉煌科技还是跌的,结果很快被拉到接近涨停。

 

第二天,辉煌科技先跌后涨,等涨几个点的时候他叫大家赶紧卖。

 

5月15日当天,叶飞又操作了先河环保,股价同样很快被拉到涨停板。

 

好家伙,这不就是现在微信群杀猪盘的线下版吗?

 

由于这几次手把手操作的涨停,读EMBA的老板们对叶老师服得五体投地,然后每人交了29.8万元“培训费”,后来根据学员们的统计,共有20多个人上了叶老师的车,总资金量达到2.5亿-3亿元。

 

然后我们再回过头看看,这段时间是什么时候?2015年5-6月,结果很明显了,叶老师的老板学员们全部被割了韭菜……

 

100万封口费?四季酒店的一次摔杯后,18家老板要失眠了

 

当然了,叶飞自己也不能逃过执法的眼睛,由于他在2015年5月13日至6月30日,集中资金优势在尾盘阶段连续买入信威集团、晋西车轴、江淮汽车、奥特迅和中青宝等5只股票操控股价被证监会罚没违法所得。

 

之后,叶飞又在2016年因为旗下的私募过于夸大其词被约谈,后来由于市场下跌,叶飞的私募绝大多数产品开始清盘,仅剩的两支“倚天雅莉3号”、“倚天雅莉4号”也过上了跌妈不认的日子。

 

2016年至2017年,倚天投资两次出现在证监会通报的被采取行政监管措施的机构和个人名单之列;

 

2018年,倚天投资因不能持续符合私募基金管理人登记要求,被证监会注销私募基金管理人资格。

 

100万封口费?四季酒店的一次摔杯后,18家老板要失眠了

 

目前,倚天投资的执行案件共有9起,立案时间跨度2017年-2021年,未履行金额近3000万,叶飞本人也有9起案件被限制高消费。

 

所以在此次爆料之前,叶飞也销声匿迹了很久,他为什么悄悄做市值管理的逻辑也就顺了,因为自己的私募太坑人已经被罚的赚不到钱了,甚至开始搞直播,求打赏…

 

100万封口费?四季酒店的一次摔杯后,18家老板要失眠了

 

但是正所谓天道好轮回,苍天饶过谁啊,这次“叶老师”也不行了。

 

有资深投资者表示:

 

“叶飞爆料中源家居不就是因为他是中间人、还担保了,结果股价没有按要求市值管理上涨、还下跌了,这下自己也被上市公司割了韭菜,他当年搞那群老板的时候咋没想过这个后果呢?

 

另外,所谓市值管理这个行业多半是灰色地带,上市公司割机构、机构割上市公司,大家互相割,反正谁也不敢把这事儿捅出来,就算报警了也拿不到赔偿,因为本身就不合法,法律不予以支持拿到赔偿。

 

100万封口费?四季酒店的一次摔杯后,18家老板要失眠了

远离庄股,远离杀猪盘

 

为什么说这件事如果坐实,几方都不是什么好人呢?股吧有投资者表示,中源家居的“杀猪盘”已经不是头一次了。

 

100万封口费?四季酒店的一次摔杯后,18家老板要失眠了

 

据投资者反映,中源家居的杀猪盘,去年4月份和8月份各发生过一次,2019年也“杀过一次猪”,加上今年3月份这次。

 

不得不让人感叹:“公司才上市三年,来回割了4茬韭菜!”

 

100万封口费?四季酒店的一次摔杯后,18家老板要失眠了

 

今年3月31日,中源家居股价直线跳水,当日大跌8.82%,4月1日直接跌停。

 

本周五,5月14日中源家居最新收盘价18.5元,3月31日以来累计下跌逾336%。

 

有投资者认为,中源家居公司总资产10个亿、净资产6亿、流通市值只有十几亿,每年也不亏损,有个几千万的净利润,典型的“鸡肋股”,差又不至于退市,好又达不到价值投资,所以完全是给杀猪盘营造机会嘛。

 

从技术手段来说,在中源家居“坐庄”确实容易,先花一个月时间买5000万,再用1000万对倒,做一个杀猪盘让庄家出货确实不难。

 

另外,干脆想拼个鱼死网破的叶飞还点名了昊志机电、维信诺、隆基机械、东方时尚等上市公司,并说自己计划爆料18家上市公司,一周一家,全是猛料。

 

100万封口费?四季酒店的一次摔杯后,18家老板要失眠了

100万封口费?四季酒店的一次摔杯后,18家老板要失眠了

100万封口费?四季酒店的一次摔杯后,18家老板要失眠了

 

有人说,叶飞这次就是个污点证人,现在他都“落魄”到了做控盘赚钱,还身背着限高压力,所以只有通过公开举报曝光,叶飞才能向他的下家证明他不是信口开河,他没有私吞保证金和尾款。

 

毕竟亏个几百万也不是小事儿,公开曝光做个“污点证人”,把事情闹大是自保的最好办法。

 

100万封口费?四季酒店的一次摔杯后,18家老板要失眠了

尾声

 

本周五,证监会正式就“媒体报道某微博大V爆料事件”答记者问,称将一查到底:

 

100万封口费?四季酒店的一次摔杯后,18家老板要失眠了

 

以“市值管理”行“割韭菜”之实的勾当,并不是个新鲜事,基本上隔一段时间就能被证监会查出来一次。

 

有些公司做的那叫“市值管理”吗?基本都是“韭菜管理”。

 

例如,当公司大股东想减持套现时,公司没啥利好消息,基本面也过于难看,股价不涨怎么办呢?

 

上市公司方会找到出资方(盘方)进行拉升,然后盘方再找一些机构(公募基金,私募基金等)来参与,拉抬股价。

 

大股东遂减持套现,减持完成之后,盘方和机构开始砸盘出货,最后大股东、盘方、机构一起分享利润,股民被套在最高点。

 

如果中间每个人都守口如瓶的话,一次完美的杀猪盘就这样神不知鬼不觉地走完了。

 

有些更“高明”的管理的手段还会“内外兼修,虚实结合”,粉饰报表、板块、公司前景,推升股价。

 

不过证监会对于从重从快从严打击资本市场欺诈、造假等违法活动,很有决心,去年共办理案件740起,其中新启动调查353件(含立案调查282件),办理重大案件84件,同比增长34%;2020年向公安机关移送及通报案件线索116件,同比增长一倍,打击力度持续强化。

 

所以,奉劝各位“市值管理”的操盘侠一句老话:要想人不知,除非己莫为啊。

 

END

 

转自:https://mp.weixin.qq.com/s/lpEc4Czd5-A-HeOzWNPLJw

“冠军”基金经理叶飞出大瓜:说好一起割韭菜,自己反被割

◎智友学院(ID:zhiyoucf88) 

◎作者 | 老肥、牛叫兽

 

这周末,证券市场出了一个大瓜:某私募冠军叶飞在微博上爆出行业黑料,指出多家上市公司和机构合谋操控股价。

 

被曝光的多家公司今天都被摁在跌停板上摩擦,顺便把小市值股票和ST股给带崩了。

 

“冠军”基金经理叶飞出大瓜:说好一起割韭菜,自己反被割
 
炎炎夏日,我们一起吃个大瓜解解暑。
有部分智友可能还没看这个新闻,我先简单说一下来龙去脉。
按照叶飞的说法,有些小市值公司希望拉升自家的股价,但股东自己不方便出面,毕竟受到监管机构的管控,每次交易都要进行公开披露,这就需要机构帮忙操盘。
如果操盘的机构资金不够,还会找其他资金配合。这时候就需要找叶飞这样的中间人,找到有实力且愿意出资的资金方。资金方每出资1000万,就有65万的报酬,中间人也能拿到5万元。
这事是上不了台面的,所以各方都不会有实际接触,避免留下证据。
按规定,操盘方会先给报酬10%的定金,剩下的钱放在指定的酒店房间。资金方和中间人会在指定的交易日来到指定的房间,资金方在中间人的见证下完成买入,就把房间里的钱直接拿走。
之后,上市公司配合放出利好消息,操盘方也出力一起拉高股价,吸引散户们入场接盘,大家就把手中的筹码慢慢放给散户们,完成收割。
这套操作叶飞已经玩了好多年了,这次在中源家居却栽了跟头,被“黑吃黑”了。
在约定的3月31日当天,民生证券和天风证券两家机构会各买入1500万,但操盘方不按规定办事,在房间里只放了10万,少付了一半的定金。
开盘以后,资金方就发现不对劲,股价全天都在跌停板上挣扎,最后只有民生证券硬着头皮买了1500万,天风证券完全不敢买。
 “冠军”基金经理叶飞出大瓜:说好一起割韭菜,自己反被割
 
到最后,股价拉不起来,操盘方连尾款都没给,叶飞不仅没拿到7.5万,还被资金方追着要尾款。
本来想配合机构做局割散户韭菜,自己喝口汤,结果自己也被机构当韭菜割了,典型的“黑吃黑”。
一怒之下,叶飞选择鱼死网破,在微博曝光了整条产业链,直接点名了一批上市公司,全是100亿以下的公司。
这些公司长期处在股票市场的边缘地带,日常极少有人关注,交易量低,股东想要减持,可能砸出几个跌停板都出不了多少货。想要高位套现,叶飞那套玩法确实很有吸引力。
虽然这些公司都出来澄清了,但它们的股价走势是骗不了人的。之前是碍于没有直接证据,现在叶飞都把刀子给到位了,接下来监管部门肯定会趁热打铁清理一批害群之马。
“冠军”基金经理叶飞出大瓜:说好一起割韭菜,自己反被割
事情曝光之后,我们普通投资者除了看热闹吃瓜之外,还有两个问题最为关心:
第一,冠军基金经理都这么黑,我们买基金到底还能不能信基金经理?
 
第二,这种坑怎么样才能避开?
首先我们认为,头部百亿级的基金经理还是值得信赖的,而且叶飞这个事情之后会加速基金圈的“二八效应”,也就是大公司会越来越强。
光看新闻,你可能对叶飞会有点误解,表面上看可能以为是一位“位高权重”的人,毕竟人家有“冠军”或者“大V”的标签,冠军爆丑闻有点颠覆三观。
但如果你仔细了解过就会发现,这位所谓的冠军大V,管理的私募基金业绩却非常非常非常差,在2015年拿了一波冠军之后,就没有然后了,后面就是暴跌+躺平。
 “冠军”基金经理叶飞出大瓜:说好一起割韭菜,自己反被割
 “冠军”基金经理叶飞出大瓜:说好一起割韭菜,自己反被割
网上还有其他关于这位冠军的黑料,我这里就不再复制粘贴了。
基金经理本身的工作就是靠投资吃饭,如果投资不行,反而要去做内幕交易,去靠打赏爆料赚钱,也就没必要为这种“冠军”大跌眼镜,也不值得。
 “冠军”基金经理叶飞出大瓜:说好一起割韭菜,自己反被割
现在无论是公募还是私募,头部机构的集中度已经越来越高,管理上百亿资金的明星基金经理也越来越多,股票型基金管理费基本都是1.5%,100亿规模每年已经可以赚1.5亿,正儿八经的投资的也不屑于做这种砸招牌的事情。
其次,这种坑怎么避开呢?只要做好一个事情就可以了:跟头部,买大牌。
二八分化,是一个市场逐步变成熟的特征,也就是大机构越来越强,小机构越来越弱,这时候就算是瞎买,你在行业前5前10名的公司里挑基金,也不会差到哪里去,但如果在倒数前5里面挑,就很容易踩雷。
大家不妨结合自己的生活经验回忆一下,你能买到的大公司产品,往往股价也很不错。
例如白酒就是茅台、家电就是美的格力、酱油就是海天、手机就是苹果等等,虽然短期股价会有波动,但拉长时间看都是牛股。
基金和股票也一样,有些头部的基金公司不管是做股票还是做债券都很强。
例如最典型的易方达,除了大家熟悉的张坤和萧楠,其实易方达的债券基金也很强,张清华、胡剑、张雅君、林森在固收业内都是影响力很大的牛人,还有广发、交银等等,无论是做股票还是债券都很强。
股票也是同理。2016年底之后,大股票和小股票就开始分道扬镳,大股票往上越走越远,小股票往下越跳越深,这个背后就是A股越来越机构化、港美股化,以前散户的炒股模式基本就是死路一条。
“冠军”基金经理叶飞出大瓜:说好一起割韭菜,自己反被割
如果不想踩中这种坑,对普通投资者来说,就要尽量往头部机构里面挑,先求不败而后求胜。
不过,投资本质上是认知的变现,要赚别人不知道的钱。
当一个东西已经变成大家都知道的明牌,那要跑赢其他人就比较难,今年春节后的抱团股惨案也就是这个原因,大家都知道茅台是好股票然后疯狂往里面挤,结果最后造成泡沫和踩踏。
想要比别人赚更多,就需要不断学习,做更超前更深入的研究,让认知变成钱。

 

转自:https://mp.weixin.qq.com/s/4dUY_h9eED9f9GgR3jGuhA

Django 3.0+Redis 3.4+Celery 4.4 应用开发(附源码)


作者:大江狗

来源:Python Web与Django开发

大家好,我是猫哥。今天分享一篇文章,作者利用Django 3.0 +Redis 3.4 +Celery 4.4开发了个小应用。应用不复杂,但知识点很多,非常适合新手练手。项目需求如下:

  • 创建两个页面,一个用于创建页面,一个用于动态展示页面详情,并提供静态HMTL文件链接

  • 一个页面创建完成后,使用Celery异步执行生成静态HTML文件的任务

  • 使用redis作为Celery的Broker

  • 使用flower监控Celery异步任务执行情况

Django 3.0+Redis 3.4+Celery 4.4 应用开发(附源码)

项目完成后演示见下面动画。本项目的GitHub源码地址在最后,请耐心阅读。

Django 3.0+Redis 3.4+Celery 4.4 应用开发(附源码)

 

第零步:pip设置国内源

国内用户使用pip安装python包特别慢,这主要是应为国内连接国外网络不稳定。为加速python包的安装,首先将pip安装源设置为国内的镜像,比如阿里云提供的镜像。

linux系统修改 ~/.pip/pip.conf (没有就创建一个), 内容如下:

[global]index-url = https://mirrors.aliyun.com/pypi/simple/

windows系统直接在user目录中创建一个pip目录,如:C:Usersxxpip,新建文件pip.ini,内容如下:

[global]index-url = http://mirrors.aliyun.com/pypi/simple/

第一步:安装Django并创建项目myproject

使用pip命令安装Django.

 pip install django==3.0.4 # 安装Django,所用版本为3.0.4

使用django-admin startproject myproject创立一个名为myproject的项目

 django-admin startproject myproject

整个项目完整目录机构如下所示, 项目名为myproject, staticpage为app名。

Django 3.0+Redis 3.4+Celery 4.4 应用开发(附源码)

第二步:安装redis和项目依赖的第三方包

项目中我们需要使用redis做Celery的中间人(Broker), 所以需要先安装redis数据库。redis网上教程很多,这里就简要带过了。

  • Windows下载地址:https://github.com/MSOpenTech/redis/releases

  • Linux下安装(Ubuntu系统):$ sudo apt-get install redis-server

本项目还需要安装如下依赖包,你可以使用pip命令逐一安装。

 pip install redis==3.4.1
 pip install celery==4.4.2
 pip install eventlet # celery 4.0+版本以后不支持在windows运行,还需额外安装eventlet库

你还可以myproject目录下新建requirements.txt加入所依赖的python包及版本,然后使用pip install -r requirements.txt命令安装所有依赖。本教程所使用的django, redis和celery均为最新版本。

 django==3.0.5
 redis==3.4.1
 celery==4.4.2  
 eventlet # for windows only

第三步:Celery基本配置

  1. 修改settings.py新增celery有关的配置。celery默认也是有自己的配置文件的,名为celeryconfig.py, 但由于管理多个配置文件很麻烦,我们把celery的配置参数也写在django的配置文件里。

 # 配置celery时区,默认时UTC。
 if USE_TZ:
     timezone = TIME_ZONE
 
 # celery配置redis作为broker。redis有16个数据库,编号0~15,这里使用第1个。
 broker_url = 'redis://127.0.0.1:6379/0'
 
 # 设置存储结果的后台
 result_backend = 'redis://127.0.0.1:6379/0'
 
 # 可接受的内容格式
 accept_content = ["json"]
 # 任务序列化数据格式
 task_serializer = "json"
 # 结果序列化数据格式
 result_serializer = "json"
 
 # 可选参数:给某个任务限流
 # task_annotations = {'tasks.my_task': {'rate_limit': '10/s'}}
 
 # 可选参数:给任务设置超时时间。超时立即中止worker
 # task_time_limit = 10 * 60
 
 # 可选参数:给任务设置软超时时间,超时抛出Exception
 # task_soft_time_limit = 10 * 60
 
 # 可选参数:如果使用django_celery_beat进行定时任务
 # beat_scheduler = "django_celery_beat.schedulers:DatabaseScheduler"
 
 # 更多选项见
 # https://docs.celeryproject.org/en/stable/userguide/configuration.html
  1. settings.py同级目录下新建celery.py,添加如下内容:

 # coding:utf-8
 from __future__ import absolute_import, unicode_literals
 import os
 from celery import Celery
 
 # 指定Django默认配置文件模块
 os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'myproject.settings')
 
 # 为我们的项目myproject创建一个Celery实例。这里不指定broker容易出现错误。
 app = Celery('myproject', broker='redis://127.0.0.1:6379/0')
 
 # 这里指定从django的settings.py里读取celery配置
 app.config_from_object('django.conf:settings')
 
 # 自动从所有已注册的django app中加载任务
 app.autodiscover_tasks()
 
 # 用于测试的异步任务
 @app.task(bind=True)
 def debug_task(self):
     print('Request: {0!r}'.format(self.request))
 
 
  1. 打开settings.py同级目录下的__init__.py,添加如下内容, 确保项目启动时即加载Celery实例

 # coding:utf-8
 from __future__ import absolute_import, unicode_literals
 
 # 引入celery实例对象
 from .celery import app as celery_app
 __all__ = ('celery_app',)

网上很多django redis + celery的教程比较老了, 坑很多。比如新版原生的Celery已经支持Django了,不需要再借助什么django-celery和celery-with-redis这种第三方库了, 配置参数名也由大写变成了小写,无需再加CELERY前缀。另外当你通过app = Celery('myproject')创建Celery实例时如果不指定Broker,很容易出现[ERROR/MainProcess] consumer: Cannot connect to amqp://guest:**@127.0.0.1:5672//: [Errno 111] Connection refused这个错误。

第四步:启动redis,测试celery是否配置成功

在Django中编写和执行自己的异步任务前,一定要先测试redis和celery是否安装好并配置成功。

首先你要启动redis服务。windows进入redis所在目录,使用redis-server.exe启动redis。Linux下使用./redis-server redis.conf启动,也可修改redis.conf将daemonize设置为yes, 确保守护进程开启。

启动redis服务后,你要先运行python manage.py runserver命令启动Django服务器(无需创建任何app),然后再打开一个终端terminal窗口输入celery命令,启动worker。

 # Linux下测试
 Celery -A myproject worker -l info
 
 # Windows下测试
 Celery -A myproject worker -l info -P eventlet

如果你能看到[tasks]下所列异步任务清单如debug_task,以及最后一句celery@xxxx ready, 说明你的redis和celery都配置好了,可以开始正式工作了。

 
 -------------- celery@DESKTOP-H3IHAKQ v4.4.2 (cliffs)
 --- ***** -----
 -- ******* ---- Windows-10-10.0.18362-SP0 2020-04-24 22:02:38
 
 - *** --- * ---
 - ** ---------- [config]
 - ** ---------- .> app:         myproject:0x456d1f0
 - ** ---------- .> transport:   redis://127.0.0.1:6379/0
 - ** ---------- .> results:     redis://localhost:6379/0
 - *** --- * --- .> concurrency: 4 (eventlet)
   -- ******* ---- .> task events: OFF (enable -E to monitor tasks in this worker)
   --- ***** -----
    -------------- [queues]
                .> celery           exchange=celery(direct) key=celery
 
 
 [tasks]
  . myproject.celery.debug_task
 
 [2020-04-24 22:02:38,484: INFO/MainProcess] Connected to redis://127.0.0.1:6379/0
 [2020-04-24 22:02:38,500: INFO/MainProcess] mingle: searching for neighbors
 [2020-04-24 22:02:39,544: INFO/MainProcess] mingle: all alone
 [2020-04-24 22:02:39,572: INFO/MainProcess] pidbox: Connected to redis://127.0.0.1:6379/0.
 [2020-04-24 22:02:39,578: WARNING/MainProcess] c:usersmissenkapycharmprojectsdjango-static-html-generatorvenvlibsite-packagesceleryfixupsdjango.py:203: UserWarning: Using sett
 ings.DEBUG leads to a memory
            leak, never use this setting in production environments!
  leak, never use this setting in production environments!''')
 [2020-04-24 22:02:39,579: INFO/MainProcess] celery@DESKTOP-H3IHAKQ ready.

第五步:Django中创建新应用staticpage

cd进入myproject文件夹,使用python manage.py startapp staticpage创建一个名为staticpage的app。我们将创建一个简单的Page模型,并编写两个视图(对应两个URLs),一个用于添加页面,一个用于展示页面详情。staticpage目录下我们将要编辑或创建5个.py文件,分别是models.py, urls.py, views.py, forms.py和tasks.py,其中前4个都是标准的Django项目文件,内容如下所示。最后一个tasks.py用于存放我们自己编写的异步任务,稍后我会详细讲解。

 # staticpage/models.py
 from django.db import models
 import os
 from django.conf import settings
 
 class Page(models.Model):
     title = models.CharField(max_length=100, verbose_name="标题")
     body = models.TextField(verbose_name="正文")
 
     def __int__(self):
         return self.title
 
     # 静态文件URL地址,比如/media/html/page_8.html
     def get_static_page_url(self):
         return os.path.join(settings.MEDIA_URL, 'html', 'page_{}.html'.format(self.id))
 
 # staticpage/urls.py
 from django.urls import path, re_path
 from . import views
 
 
 urlpatterns = [
 
     # Create a page 创建页面
     path('', views.page_create, name='page_create'),
 
     # Page detail 展示页面详情。动态URL地址为/page/8/
     re_path(r'^page/(?P<pk>d+)/

page_create视图函数中你可以看到我们在一个page实例存到数据库后调用了generate_static_page函数在后台完成静态HTML页面的生成。如果我们不使用异步的化,我们要等静态HTML文件完全生成后才能跳转到页面详情页面, 这有可能要等好几秒。generate_static_page就是我们自定义的异步任务,代码如下所示。Celery可以自动发现每个Django app下的异步任务,不用担心。

 # staticpage/tasks.py
 
 import os, time
 from django.template.loader import render_to_string
 from django.conf import settings
 from celery import shared_task
 
 @shared_task
 def generate_static_page(page_id, page_title, page_body):
     # 模拟耗时任务,比如写入文件或发送邮件等操作。
     time.sleep(5)
 
     # 获取传递的参数
     page = {'title': page_title, 'body': page_body}
     context = {'page': page, }
 
     # 渲染模板,生成字符串
     content = render_to_string('staticpage/template.html', context)
 
     # 定义生成静态文件所属目录,位于media文件夹下名为html的子文件夹里。如目录不存在,则创建。
     directory = os.path.join(settings.MEDIA_ROOT, "html")
     if not os.path.exists(directory):
         os.makedirs(directory)
 
     # 拼接目标写入文件地址
     static_html_path = os.path.join(directory, 'page_{}.html'.format(page_id))
 
     # 将渲染过的字符串写入目标文件
     with open(static_html_path, 'w', encoding="utf-8") as f:
             f.write(content)
 

本例中我们生成的静态HTML文件位于media文件夹下的html子文件夹里,这样做有两个好处:

  • 与Django的静态文件存储规范保持一致:用户产生的静态文件都放在media文件下,网站本身所依赖的静态文件都放于static文件夹下。

  • 把所有产生的静态文件放在一个目录里与动态文件相分开,利于后续通过nginx部署。

本项目中还用到了3个模板,分别是base.html, detail.html和template.html。base.html和detail.html是没有任何样式的, 仅用于动态显示内容,template.html是用来生成静态文件的模板,是带样式的,这样你就可以很快区分动态页面和静态页面。由于我们后台生成静态文件至少需要5秒钟,我们在detail.html用了点javascript实现等5秒倒计时完成后显示生成的静态HTML文件地址。

3个模板均位于staticpage/templates/staticpage/文件夹下,代码如下所示:

 # base.html
 <!DOCTYPE html>
 <html lang="en">
 <head>
     <meta charset="UTF-8">
     <title>添加页面</title>
 </head>
 <body>
      <h2>添加页面</h2>
      <form name="myform"  method="POST" action=".">
          {% csrf_token %}
        {{ form.as_p }}
          <button type="submit">Submit</button>
      </form>
 </body>
 </html>
 
 # detail.html
 <!DOCTYPE html>
 <html lang="en">
 <head>
     <meta charset="UTF-8">
     <title>{{ page.title }}</title>
 </head>
 <body>
      <h2>{{ page.title }}</h2>
      <p>{{ page.body }}</p>
 
      <p>倒计时: <span id="Time">5</span></p>
      <p id="static_url" style="display:none;"> <small><a href='{{ page.get_static_page_url }}'>跳转到静态文件</a></small></p>
 
 
 <script>
  //使用匿名函数方法
  function countDown(){
  var time = document.getElementById("Time");
  var p = document.getElementById("static_url");
  //获取到id为time标签中的内容,现进行判断
  if(time.innerHTML == 0){
  //等于0时, 显示静态HTML文件URL
  p.style.display = "block";
  }else{
  time.innerHTML = time.innerHTML-1;
  }
  }
  //1000毫秒调用一次
  window.setInterval("countDown()",1000);
  </script>
 
 </body>
 </html>
 
 # template.html 生成静态文件模板
 {% load static %}
 <html lang="en">
 <head>
 <title>{% block title %}Django文档管理{% endblock %} </title>
 <meta charset="utf-8">
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
 </head>
 
 <body>
 <nav class="navbar navbar-inverse navbar-static-top bs-docs-nav">
 
   <div class="container">
     <div class="navbar-header">
         <button type="button" class="navbar-toggle" >
           <span class="icon-bar"></span>
           <span class="icon-bar"></span>
           <span class="icon-bar"></span>                        
       </button>
         <a class="navbar-brand" href="#"><strong>Django + Celery + Redis异步生成静态文件</strong></a>
      </div>
 
       <div class="collapse navbar-collapse" id="myNavbar">
        <ul class="nav navbar-nav navbar-right">
  {% if request.user.is_authenticated %}
 
           <li class="dropdown">
               <a class="dropdown-toggle btn-green" href="#"><span class="glyphicon glyphicon-user"></span> {{ request.user.username }} <span class="caret"></span></a>
             <ul class="dropdown-menu">
               <li><a  href="#">My Account</a></li>
               <li><a  href="#">Logout</a></li>
             </ul>
           </li>  
          {% else %}  
             <li class="dropdown"><a class="dropdown-toggle btn-green" href="#"><span class="glyphicon glyphicon-user"></span> Sign Up</a></li>
 <li class="dropdown"><a class="dropdown-toggle" href="#" ><span class="glyphicon glyphicon-log-in"></span> Login</a></li>
  {% endif %}
        </ul>
 
     </div>
 
   </div>
 </nav>    
 
  <!-- Page content of course! -->
 <main id="section1" class="container-fluid">
 
 <div class="container">
     <div class="row">
      <div class="col-sm-3 col-hide">
          <ul>
              <li> <a href="{% url 'page_create' %}">添加页面</a> </li>
          </ul>
      </div>
 
      <div class="col-sm-9">
           <h3>{{ page.title }}</h3>
          {{ page.body }}
      </div>
 </div>
 
 </div>
 </main>

 <script src="https://code.jquery.com/jquery-3.3.1.min.js" integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" crossorigin="anonymous"></script>
 <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
 
 </body>
 </html>

第六步:在Django中注册app并添加app的URLConf

 # 修改myproject/settings.py,添加如下内容
 INSTALLED_APPS = [
     'django.contrib.admin',
     'django.contrib.auth',
     'django.contrib.contenttypes',
     'django.contrib.sessions',
     'django.contrib.messages',
     'django.contrib.staticfiles',
     'staticpage',
 ]
 
 # 设置STATIC_URL和STATIC_ROOT
 STATIC_URL = '/static/'
 STATIC_ROOT = os.path.join(BASE_DIR, 'static')
 
 # 设置MEDIA_ROOT和MEDIA_URL
 MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
 MEDIA_URL = '/media/'
 
 # 修改myproject/urls.py,添加如下内容
 from django.contrib import admin
 from django.urls import path, include
 
 from django.conf import settings
 from django.conf.urls.static import static
 
 
 urlpatterns = [
     path('admin/', admin.site.urls),
     path('', include("staticpage.urls")),
 ]
 
 # Django自带服务器默认不支持静态文件,需加入这两行。
 if settings.DEBUG:
     urlpatterns = urlpatterns + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
     urlpatterns = urlpatterns + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

第七步:启动Django服务器和并安装Celery异步任务监控工具

如果一切顺利,连续使用如下命令, 即可启动Django测试服务器。打开http://127.0.0.1:8000/即可看到我们项目开头的动画啦。注意:请确保redis和celery已同时开启。

 python manage.py makemigrations
 python manage.py migrate
 python manage.py runserver

如果你要监控异步任务的运行状态(比如是否成功,是否有返回结果), 还可以安装flower这个Celery监控工具。

 pip install flower

安装好后,你有如下两种方式启动服务器。启动服务器后,打开http://localhost:5555即可查看监控情况。

 # 从terminal终端启动, proj为项目名
 $ flower -A proj --port=5555  
 # 从celery启动
 $ celery flower -A proj --address=127.0.0.1 --port=5555

 

监控异步任务还是很重要的,强烈建议安装flower。比如下图中有些任务就失败了。

Django 3.0+Redis 3.4+Celery 4.4 应用开发(附源码)

源码地址

https://github.com/shiyunbo/django-static-page-generator-celery-redis

Django 3.0+Redis 3.4+Celery 4.4 应用开发(附源码)

送书活动

Django 3.0+Redis 3.4+Celery 4.4 应用开发(附源码)

 

本书共13章,主要内容涵盖Python语法及数据分析方法。章主要介绍数据分析的概念,使读者有一个大致的印象,并简单介绍本书频繁使用的Python的5个第三方库。第2章主要做一些准备工作,手把手带读者搭建Python环境,包括Python 3.7.6的安装和pip的安装。第3章介绍Python编程基础。第4章到第7章介绍使用Python进行简单数据分析的基础库,包括NumPy、Pandas和Matplotlib库,并介绍使用正则表达式处理数据的方法。第8章到3章属于进阶内容,但也是Python数据分析的基础,结合机器学习介绍一些常见的用于数据分析的机器学习算法及常用的数学模型。

赠书规则

赠书本数本次共包邮送书 

参与方式:在Python猫读者群抽奖,仅限群友参与。后台发“交流群”,获取入群方式。
开奖时间:2021年5月20日18:00

 

 

, views.page_detail, name=’page_detail’),
 
    ]
 
 # staticpage/views.py
 from django.shortcuts import render, redirect, get_object_or_404
 from django.urls import reverse
 from .forms import PageForm
 from .models import Page
 from .tasks import generate_static_page
 
 def page_create(request):
     if request.method == ‘POST’:
         form = PageForm(request.POST)
         if form.is_valid():
             page = form.save()
             generate_static_page.delay(page.id, page.title, page.body)
             return redirect(reverse(‘page_detail’, args=[str(page.pk)]))
     else:
         form = PageForm()
 
     return render(request, ‘staticpage/base.html’, {‘form’: form})
 
 
 def page_detail(request, pk):
     page = get_object_or_404(Page, id=pk)
     return render(request, ‘staticpage/detail.html’, {‘page’: page})
 
 # staticpage/forms.py
 from django import forms
 from .models import Page
 
 
 class PageForm(forms.ModelForm):
     class Meta:
         model = Page
         exclude = ()

page_create视图函数中你可以看到我们在一个page实例存到数据库后调用了generate_static_page函数在后台完成静态HTML页面的生成。如果我们不使用异步的化,我们要等静态HTML文件完全生成后才能跳转到页面详情页面, 这有可能要等好几秒。generate_static_page就是我们自定义的异步任务,代码如下所示。Celery可以自动发现每个Django app下的异步任务,不用担心。

 

本例中我们生成的静态HTML文件位于media文件夹下的html子文件夹里,这样做有两个好处:

  • 与Django的静态文件存储规范保持一致:用户产生的静态文件都放在media文件下,网站本身所依赖的静态文件都放于static文件夹下。

  • 把所有产生的静态文件放在一个目录里与动态文件相分开,利于后续通过nginx部署。

本项目中还用到了3个模板,分别是base.html, detail.html和template.html。base.html和detail.html是没有任何样式的, 仅用于动态显示内容,template.html是用来生成静态文件的模板,是带样式的,这样你就可以很快区分动态页面和静态页面。由于我们后台生成静态文件至少需要5秒钟,我们在detail.html用了点javascript实现等5秒倒计时完成后显示生成的静态HTML文件地址。

3个模板均位于staticpage/templates/staticpage/文件夹下,代码如下所示:

 

第六步:在Django中注册app并添加app的URLConf

 

第七步:启动Django服务器和并安装Celery异步任务监控工具

如果一切顺利,连续使用如下命令, 即可启动Django测试服务器。打开http://127.0.0.1:8000/即可看到我们项目开头的动画啦。注意:请确保redis和celery已同时开启。

 

如果你要监控异步任务的运行状态(比如是否成功,是否有返回结果), 还可以安装flower这个Celery监控工具。

 

安装好后,你有如下两种方式启动服务器。启动服务器后,打开http://localhost:5555即可查看监控情况。

 

 

监控异步任务还是很重要的,强烈建议安装flower。比如下图中有些任务就失败了。

Django 3.0+Redis 3.4+Celery 4.4 应用开发(附源码)

源码地址

https://github.com/shiyunbo/django-static-page-generator-celery-redis

转自:https://mp.weixin.qq.com/s/krlB0WdHpW1GSJhl2SinKw