2018美股2018投资者说所有视频经常用到的工具类网站有哪些?

张明:警惕美股在2018年显著下跌|美股|投资|股票_新浪财经_新浪网
张明:警惕美股在2018年显著下跌
  文/新浪财经意见领袖(微信公众号kopleader)专栏作家 张明
  2018年美国股市走势具有很强的不确定性。盛极必衰,这是规律使然。投资者应该警惕美国股市在2018年显著下跌的风险。
张明:警惕美股在2018显著下跌
  2018年年初,美国股市开局火爆。道琼斯工业平均指数、标准普尔500指数与纳斯达克综合指数分别突破了25000点、2700点与7000点,均创下历史新高。上述三大指数在2017年分别上涨了25%、19%与28%。而在过去九年时间内,上述三大指数分别上涨了195%、209%与356%。此外,英国、日本、中国香港以及其他一些新兴市场的股市表现均非常亮眼。
  造就2017年美国股市牛市的主要因素大致有:
  第一,美国经济持续复苏,导致美国企业利润显著改善,这是美国股市表现火爆的微观基础。从失业率的走势来看,本轮美国经济复苏已经持续了99个月,是二战之后美国经济复苏最长的一个时期。经济复苏导致美国企业(尤其是上市公司)利润显著改善,进而推动了股市指数走高。相关证据是,尽管2017年标普500指数上升了19%,但标普500的市盈率却仅仅从23.76上升至25.57。
  第二,尽管美联储在2017年加息三次,但美国国内流动性依然充裕,全球市场流动性更是处于非常宽松的状态,这是美国股市表现火爆的流动性基础。美联储加息仅仅导致短期政策性利率上升了75个基点,而作为长期利率标杆的10年期美国国债收益率在2017年却不升反降。从全球来看,欧洲央行、日本央行等其他发达国家央行仍在扩表。流动性的充裕是美国股市与美国债市在2017年双双表现火爆的直接原因。
  第三,特朗普政府上台以来一直强调的大规模减税计划,进一步提振了市场关于美国上市公司盈利前景的预期,这是美国股市表现火爆的预期基础。尽管历经波折,但特朗普政府终于在2017年年底促使国会通过了减税方案。企业所得税税率的显著下调自然会提振市场对于上市公司税后利润增长的信心。
  第四,投资者的风险情绪高涨,追逐风险资产的积极性很高,这是美国股市表现火爆的投资者情绪基础。例如,衡量美国股市波动性的VIX指数,在过去10年内的平均值为20,在2017年的平均值却显著下降为11,而在2018年年初更是跌至10以下。这一状况在历史上是非常少见的。
  展望2018年的美国股市,尽管股市上升的动能可能仍将持续,但笔者认为,2018年美国股市出现整体20%左右下调的可能性是存在的。做出这一判断的主要理由包括:
  首先,当前美国股市的真实市盈率已经不低。例如,经过周期性调整的Shiller市盈率(利用过去10年经过通胀调整的盈利水平进行计算)在2018年年初已经达到33.38,这已经是仅次于2001年互联网泡沫破裂前的最高水平,已经超过1929年股市泡沫破灭前的水平。
  其次,由于本轮美国经济复苏持续的时间已经很长,目前美国经济可能已经处于本轮复苏的中晚期,这就意味着,未来美国经济增速进一步上升的概率不高,这可能会影响未来美国企业利润增速的进一步增长。事实上,考虑到迄今为止的美国经济复苏主要是由居民消费推动的,而居民消费增长与股市上升的财富效应密不可分。因此,一旦股市显著下跌,受到负向财富效应的驱动,美国经济增速可能出现显著下滑。
  再次,由于当前美国经济增速已经持续超过其潜在增速,正向产出缺口可能推动通胀率显著上升,而一旦核心通胀率显著上升,美联储就可能加快紧缩货币政策的节奏,与此同时,10年期国债收益率也可能出现显著反弹。流动性的收紧与融资成本上升可能会加剧美国股市的调整。
  最后,受各种不确定性因素影响,投资者情绪在2018年可能出现某种程度的反转,风险偏好可能显著下降。在2018年,从国际因素来看,朝核、中东等地区的地缘政治冲突可能加剧,中美之间的贸易摩擦也可能加剧;从国内因素来看,特朗普政府的执政前景与政策路径依然充满不确定性。一旦这些风险事件爆发,都可能对投资者情绪产生负面影响。
  综上所述,2018年美国股市走势具有很强的不确定性。盛极必衰,这是规律使然。投资者应该警惕美国股市在2018年显著下跌的风险。
  (本文作者介绍:平安证券首席经济学家,中国社科院世界经济与政治研究所研究员。)
责任编辑:贾韵航 SF174
  欢迎关注官方微信“意见领袖”,阅读更多精彩文章。点击微信界面右上角的+号,选择“添加朋友”,输入意见领袖的微信号“kopleader”即可,也可以扫描下方二维码添加关注。意见领袖将为您提供财经专业领域的专业分析。
文章关键词:
&&|&&&&|&&
作者简介:
平安证券首席经济学家,中国社科院世界经济与政治研究所研究员。
手机阅读请扫描
微信二维码2018 年哪些股票值得现价买入,持有一年?为什么? - 知乎<strong class="NumberBoard-itemValue" title="1被浏览<strong class="NumberBoard-itemValue" title=",664,004分享邀请回答默默:零售行业研报汇总zhuanlan.zhihu.com——————————————————————————————————————更新证券行业有朋友在评论里问我券商股怎么看,其实我也是很关注这个行业的变化的。由于前一阵子感冒了没更新,现在更新了!就这么看。结论是,对这个行业,比较中性,安全边际足够高,龙头的业绩还可以,但是整个行业面临转型,以后会不会成功呢?以我的水平,看不清。投资是需要看边际变量的,现在还是看不清楚对这个行业利润带来边际变化的变量在哪里。如果非要买,可以配置龙头,可能有业绩和估值的戴维斯双击,但是对整体行业,保持中性。说的不对欢迎指正。——————————————————————————————————————日最新新闻【仔猪价格同比下跌25% 环比微幅上涨】农业部1月16日消息,截止1月10日仔猪价格30.6元/公斤,较前一周微涨0.2%,较去年同期下跌24.8%。 母猪虽少,但是PSY抵消了母猪数量下降,猪仔不值钱了,虽然环比微幅上涨,但是同比跌太多了。饲料价格的上涨也已经近在眼前,我认为猪肉股目前还需要继续等待,刚刚猪肉股大涨~被打脸~——————————————————————————————————————日房地产的内容,没有放在此帖子下面,单独写了一篇,有点长。主要看逻辑吧额外多说一点,所有看空房地产的言论里面,不管他说的如何天花乱坠,M2如何,租售同权如何,只要他没有分析棚改货币化,基本上这篇文章就是废。棚改货币化是现在房地产市场最大的边际变量,对住宅市场影响很大,所有的研究所都没忽视这个问题,如果哪个神棍不提这档子事,基本上属于无脑型。炒股和买房还是不一样的,这篇文章里面我不想预测房价,但是没办法,无法避开,非写不行,房价这事受到政策影响太大,很难说的。只要房价不大跌,对整个房地产行业的盈利影响不大的。如果说错了还请各位见谅。——————————————————————————————————————日(新更:我希望在这个点位,这个位置上,保持理智,钱是赚不完的,目前看上证很危险。既然这个问题是2018年全年的的看法,没必要在乎半个月一个月的得失,仅仅是上证,个人对目前的点位和走势保持谨慎,原因就是资金面持续紧张,监管进一步趋严,尤其是对信托和资管。我不想对别人造成困扰,但是我仅仅对这几天的走势保持谨慎。最新的新闻:【多家信托公司暂停“3:2:10”股票配资、单票配资】近日多家信托公司收紧股票配资业务,包括暂停新增有中间级的配资业务、暂停新增单票配资业务。具体来说,所谓“有中间级的配资业务”,就是在结构化证券投资信托产品中设置劣后级、中间级、优先级,其中最具代表性的是“3:1:8”、“3:2:10”两种模式。所谓的单票配资业务,就是一只结构化信托产品只持有一只股票。业内人士指出,上述举措实质上是下调了目前股票信托的配资杠杆比例。知情人士指出,一些信托公司近期收紧股票配资业务,一个重要原因就是信托业“严监管”。)——————————————————————————————————————?忘了具体时间了, 第一更时间太早。大半夜的不想更新了,但是看到各种打广告的,各种港股美股的。我还是更新一下吧当然我会贴很多的论据先来点宏观。国家经济层面上,2018年经济不可能大起大落,这也是政府一直避免出现的事情。但是,不可否认的是国家的经济结构在好转,主要是去产能,已经将大量落后产能通过供给侧改革和环保退出市场。僵尸企业的股权处理也在稳步进行,金融资源的优化也在继续。对标日本经济平稳,但是ROE能保持高位。什么意思呢?就是说,经济增速平稳,但是企业的净资产回报率还是可以的。看看图2中国的情况。中国的供给侧改革就是通过拉高大宗商品的价格将企业上下游的利润重新分配。中国最主要的问题是上游国企占比太重,占用大量金融资源,产出效率低下,而且,你还不敢让他们垮掉,如果垮掉了可能拖累银行,引起地区性行业性的金融危机。中国企业的杠杆率高可不是我说的,可是有数据支持的。全球第一啊!既然这么危险,怎么做呢?参考过去的做法呗。从居民负债和政府负债端看,居民和政府都可以承受继续加杠杆的。政府端的杠杆也是可以继续加的,我就不贴图了反正政府融资的手段有的是,而且,发的国债也没打算还,越借越多呗。居民端怎么加杠杆?企业赚了钱改善了财务状况2元钱,要是这些钱都放到银行还了负债,那么货币乘数岂不是受到了影响?钱和信用少太多不是好事!那么好了,就让企业还了吧,然后再想办法把1块钱转嫁到居民头上,怎么转嫁?最好的办法是消费和房地产啊!其实聪明人读到这应该大概就明白了。再来点行情回顾2017年最大的特点是结构性行情,不懂的就不解释了,还是自己研究下吧。而且在整个市场货币紧缩的情况下,最大的边际变量是港股通!!!港股通的持续买入的股票,尤其是深港通开通之后买入的股票,今年大概率都翻了一倍。而且存量资金博弈的氛围下,市场风偏会明显的下降,最后的结果就是大量无业绩概念中小创被抛弃。机构资金抱团取暖白马蓝筹。白马蓝筹业绩也不错,赚到了PE和EPS的钱,戴维斯双击。其次,2017年大量新股上市,这个就不用解释了,壳资源的溢价没了,壳资源不值钱了。中小创的二级市场溢价也没了,本质上白马蓝筹这种超级龙头成为了稀缺资源,涨涨涨。这就是2017那么2018年呢?首先看看,资金面改善了么?暂时看并没有。别的什么农发行,国开行的债券就不贴了。监管政策放松了吗?也没有。看看这些政策,是不是越来越紧了?新股停发了吗?好像少点了,但是并没有停发港股通禁止了吗?也没有!所以,大结论就是
看看看看看业绩!!!那么谁的业绩好呢,周期股的业绩非常好,不明白的,再重新翻一下上面的文字,自己体会。其实还可以继续写好多的,太晚了不想写了。再说一点吧,就是通胀的预期给业绩的影响。首先吧,国内的供给侧改革和国外经济复苏一起推动了大宗商品的涨价。这是波罗的海指数。自从2016年2月份以来一直在上升,基本上说明了全球经济还是可以的。至于其他的数据,可以自己找。其次,原油价格对通胀有很大的影响,那么,原油价格大家也看到了,不用我说了吧突破60美元了。而且,随着美国加息,原油最大的竞争对手——页岩油遭遇了滑铁卢,因为吧,页岩油企业普遍比较小,最主要的融资手段是发放垃圾债券融资,现在美联储加息了,融资成本高了,搞不下去了。原来的时候,美国页岩油的成本大概不到50-60美元,还在不断降低,因此,每当原油价格涨到这个价格区间时候,页岩油厂商敞开了生产,在期货市场卖空,爽歪歪啊。页岩油相对于石油而言不需要封井,怎么说呢,随用随产吧,这就是为什么石油价格迟迟无法突破的原因。如果原油价格涨价了,相信我,输入型通胀很快的。只要涨价,则需求弹性比较差的行业企业,可以通过提价改善财务状况。最后,说一下机构持仓吧。历史上每一次机构抱团取暖,最后都是散户接盘的。每一次抱团取暖都给估值优势搞没了。推荐一本书《投资者的未来》。什么叫买到好股票?不是买到成长性好的股票,不是买到大爆发股,而是要买到便宜的!注意是便宜的!!!随着估值的提高,白马股已经不便宜了,价值洼地只有大银行股(这里面有中国特殊性,以后再说)。那么,什么便宜呢?中小创吗,肯定不是,白马也不便宜了。就买点弹性大的呗,只有周期啊!白马股2018年只能赚到业绩增长的钱,赚不到估值提升的钱了,不便宜了都!那么行情会怎么样呢?我赞同海通的观点。配置强周期股+白马股。长江和申万今天也提出了这种观点,来的有点晚吧。自己看里面预期差最大的,自己看那几个行业最近的涨幅。房地产这个强周期股吧,看龙头,不要看整体,具体的以后再讲讲房地产。文献参考:海通证券、新时代证券、老蛮评说微博。二次更新————————————————————————————以上均为卖方观点。现在更新一下买方的观点,并对这个问题下的不良回答予以驳斥。卖方是天然的看多派,而买方才是真正的实力人物,买方的核心竞争力就是选股票和选卖方。买方的东西比较少, 我就先贴一个重阳的吧。(如果有侵权,请告知)重阳认为,现在要从价值回归到价值发现。换句话说,就是原来是好公司的估值太低,现在好公司的估值都不便宜了,目前的重点是挖掘好公司。也是先从宏观开始结论是,经济不必悲观,企业的盈利还是改善的。从第二个宏观角度看,通胀会抬头。食品价格上涨带动CPI提升,其次油价带来的输入型通胀。还有其他的原因。从资金面看。原因是全球加息趋势中,中国不可能独善其身,不会跌太多。另外,金融监管带来的利率上升不可持续。第三点是从投资者角度机构投资者比例不断上升,沪港通深港通股市IPO供需失衡散户投资损失惨重但是公募机构赚钱在强监管背景下公募基金会增加。在十九大经济和实体向好的背景下, 风险偏好会增强,而现在的风险偏好降低比较明显,因此未来的风险偏好是会提升的,我的理解是,风险偏好提升,大家不必抱团取暖确定性的白马和蓝筹,而会发生分散。综上吧,宏观经济不差,资金面略紧,风险偏好会提升股票会二次分化。还是得依托业绩。这个问题下很多直接吹票又是分析师的,请拿出你们的从业编号,请亮出你们的公司。还有那些打广告的,基本上都是废,这种骗子见多了。有很多人直接贴F10的财务数据,是不是很low啊,你只看单个公司而不看行业这不是给自己找麻烦么。看的还是F10的财务数据,这是很假的,很容易被忽悠,要直接去巨潮资讯网看财务报表好不好。而且如果是周期股的话,看财务基本就把自己看坑里去了。第三更————————为什么现在还不是买猪周期的时候,为什么水泥股现在贵了……因为我看到有人在推,反正目前看逻辑不对,时间点也不对,有空再来更新。先谈水泥股吧,水泥股是明显的强周期,前几天刚说贵了,这货今天就大幅度往下砸。那么以水泥为例,周期股应该怎么跟踪呢?以水泥为例1.水泥这个行业有明显的地域分别。怎么理解呢? 华东的水泥卖不到东北去,西北的水泥卖不到中南去,除非地区之间存在明显的,非常明显的价格差。而现在水泥的使用大家肯定都知道,看看城市里的水泥滚筒罐车,基本上不用指望跑太远,那些运水泥的大罐车运输起来也是比较费劲的,就是运所谓的熟料,运费估计也不便宜。对此不明白的,可以参考邱国鹭《投资中简单的事》2.水泥最主要的监测指标是 库容比和价格。库容比,简单的理解就是
现有储量/最大储量,简单点应该就是这个意思,数据的话,肯定是越低越好,越低说明库存越少。价格当然是越高越好。3.周期股盈利,根据高频数据是可以跟踪的。换句话说,基金公司,公募私募都包括,有的是研究员天天跟着高频数据算公司的盈利,所以不同于白马股和普通的中小创,周期股的年报行业和季报行情是不存在的,因为基本不存在预期差(都被这些研究员算明白了)。好了,基于以上三点来数据吧,数据是海通公布的,最新截止到日,如果涉及到侵权,请海通私信告知,必删!数据么,自己通过一些软件可以找到。价格库容比看懂了吗?全国的价格是不是已经很牛逼了,全国库容比是不是已经很低了?但是哪些地区的数据在最近一段时间最优秀呢,中南地区和华东地区。为什么?因为东北华北和西北早就停工了!太冷了,但是南方很多地区好歹还是0度以上吧。对应的股票就是万年青,中南地区,海螺水泥,华东地区。其他地方的水泥股,就是跟着这俩拉一波,数据上其实乏善可陈,前期炒作已经比较多了,再炒一波好像不现实。所有不以基本面为参考的周期投资都是自杀。之前的更新中就提到了,水泥股已经贵了。贵在两方面:1.中南和华东地区的水泥情况已经好到不能再好了,已经不能再好了,难道要水泥涨到1000?库容比降到0?不现实吧,而且天气渐渐变冷,开工率肯定也要降下来么。数据好到一定的时候,就该逆转了,今天水泥价格下跌比较惨,看新闻说跌了170,我觉得不意外,物极必反。2.东北华北和西北水泥股的炒作,纯粹游资行为,必然会遭到游资无情的抛弃,所以,你去追就是去站岗的!第二个例子:猪肉周期……太累了,还得加班,改天再说吧。更新,因为这块对我来说也略微复杂一丢丢,我直接就边贴,边写好了。望见谅。猪周期之前,先要明白几个概念:1.买股票赚钱赚得是EPS的钱、PE(PB)的钱和预期差的钱,股价=EPS*PE,不懂请百度。巴菲特说的看企业财务,买上好企业伴随 企业成长,其实就是赚EPS的钱。PE就是估值,为什么说2017年赚到了戴维斯双击(EPS和PE都赚到),因为白马蓝筹的业绩改善,而且估值非常低,和国外比起来, 比如招商银行2016年的估值只有6,而美国富国银行是15,这就是估值洼地,而估值是会回归正常的,起码很多机构这样认为。这一点应该放在帖子的最顶上。2. 猪周期,说白了就是蛛网模型,怎么讲呢。T时刻的商品价格是由T时刻商品的供需决定的,但是T时刻的供给量却是由于T-1时刻决定了,因此存在时间差。这是经济学入门知识,不懂得可以百度。3.猪周期最重要的指标有3个,第一是猪粮比,第二是母猪存栏量,第三是MSY指的是每年没头母猪的育成肥猪头数,即每年每头母猪能生多少可以顺利养活的大肥猪,PSY是指每头母猪养多少个崽,MYS=PSY*成活率,如果不爆发疫情,两者之间的关系还是比较稳定的。开始首先分析猪周期行业的逻辑,即看看机构是怎么想的,买方卖方是怎么分析的。长江证券、安信证券和东证期货。先说下结论吧,这仨机构的结论说的不一样,但是就我看的报告而言,我更倾向于东证期货的结论,即供给持续增加,猪价难改跌势。长江和安信,说实话,做的比较粗糙。三者都提到了CRn即行业集中度,行业集中度的增加会明显提高龙头企业的盈利,即增加EPS。看一下猪周期企业盈利的逻辑第一条,行业集中度角度:即CRn三家研究机构都认为现在的行情下,养殖户是持续退出的,明显的看到规模化养殖明显的占比在增加,小规模减少。原因总结为环保政策的问题和成本问题。环保主要是因为养猪场污染还是比较厉害的,很多和居民区混杂,现在不允许了。成本问题,是因为散户的养殖成本明显增加了,PSY不如规模化养殖厂,而且随着人均收入的提高,如果夫妻共同养殖,按照每头猪盈利200元计算,每年必须养殖480头猪才能抵消外出打工收入(自繁自养),不经济。第二条,成本成本主要是来源于饲料,饲料主要的构成是玉米和豆粕,所以猪粮比就是猪肉价格/玉米价格。猪粮比=6的时候就是盈利平衡点(忘了在哪里看到的了)。可以看到的是,现在猪肉并不高的前提下行业盈利尚可的原因是,饲料超级便宜。上图看懂了吗?意思就是,猪粮比和养殖利润存在明显的相关性。下图是饲料成本。前几年玉米跌成屎,想必大家都懂。那么未来玉米价格豆粕价格还能如此低廉吗?自己看看玉米期货价格就懂了,结论就是,很难再维持低价,国家在玉米领域的去产能工作今年估计能见成效。如果玉米价格的上行快,猪肉价格上行慢的话是会削减企业利润的。第三条,供求关系母猪存栏量,如果看现在有多少肥猪,就看看十个月之前的母猪存栏量。下图可以看出,母猪存栏量一直在下跌。10月前的母猪存栏其实已经很低了,低于国家的警戒线标准4800万头。但是东证认为,农业部的样本观测数据存疑。并且随着MSY指数的上涨,能够对冲一部分存栏母猪数量的下降。根据东证的测算,虽然母猪减少,但是!猪仔出栏量是上涨的。安信和长江的测算没有这种计算,个人认为欠妥,不完整。东证的那副图,极端重要!请看懂!安信的母猪存栏量此图极端重要!东证提示,行业内认为农业部数据存疑母猪淘汰量还可以作为检测行业看法的指标,如果母猪淘汰量增加,说明大家对未来是不看好的(母猪年龄越大,产仔质量差、数量少),上图。另一方面在母猪的PSY一定的条件下, 出栏时候每头猪越重则猪肉供给越多。如果行情不好的话,猪粮比不高,养殖企业会选择把猪养的瘦一些赶紧卖掉,如果猪粮比比较合适,则会选择把猪养肥。什么意思呢?猪这东西得天天吃饭的,如果养着都不赚钱,还不如早早杀掉,要不越养越亏!养鸡业也是这个道理,2017年鸡蛋价格跌破3块钱,养殖户是亏钱的,如果养鸡卖鸡蛋还亏钱,还不如早早杀掉,要不养的鸡天天吃饲料,更亏!见下图东证的分析如果说,猪粮比不能达到一个合理的区间,长期看供给会受到影响(每头猪贡献的猪肉少了)。猪肉需求量,存在短期季节性波动之外,以年为单位看,猪肉消费量是下降的!我猜,可能因为生活水平的提高吧。看到这里,是不是基本看懂了?母猪存栏量下降,但是,但是MSY上涨,带来的是猪仔供应的增加!!但,消费是下降的!另一方面,如果玉米价格上涨,带来猪粮比的下降, 则会导致企业的盈利下降即EPS下降,进一步的股价下跌。虽然长期看这会推高猪肉成本,让猪变瘦,进而减少猪肉供应,从而引起肉价上涨,然而这种周期需要持续6个月以上(猪仔到成猪要6个月,不管如何得先养大了再说吧,瘦点就瘦点)。那这6个月中间呢?再考虑到现在国际原油价格的上涨,粮食成本是增加的,如果不懂这点可以百度,化肥、农药、水利和农业机械都离不开汽油柴油,这种成本的上涨可能会立即影响到粮食价格,从而减少企业的盈利。第四条,看猪肉周期性波动。上两幅图说明一个问题,现在的猪肉价格还处于下降通道。时间上也略微差点事。我认为:1.猪肉价格可能短期内很难上涨,因为之前的猪仔在增加,之前增加的猪仔还会逐步推向市场,而前阶段粮食价格还并未快速下降,则猪还是挺肥的,进一步导致供应增加,宏观上看消费总体在减少,猪肉价格会进一步下行。什么时候猪肉价格起来呢?需要时间,看看蛛网模型的思想。2.粮食价格的上涨可能近在眼前(原油和供给侧改革),猪粮比可能会下降比较快,企业盈利下降。行业内也不看好行业未来,导致不断淘汰母猪应该可以佐证这一点。综上所有我认为1.未来半年内猪肉价格排除季节性和节日因素的影响,猪肉价格的上涨可能难以对冲成本上涨带来的影响,进而导致猪粮比下降,企业盈利下降,因此我并不认为现在这一阶段是买入猪肉股的时机。猪肉周期股这段时间的上涨是因为通胀预期的影响,从企业盈利角度而言(仅仅从EPS的角度不考虑PE和预期差)我对未来一段时间的盈利保持谨慎。2.如果考虑到行业集中度的影响,我认为这点对龙头企业是极为有利的,因为所有的龙头股都在上涨,猪肉股龙头涨幅也很明显(涨幅过大就不具备估值优势了,PE),再基于上面的考虑,我认为现在不是时候,还需要观察企业盈利状况,不建议散户随便抄底,因为可能不具备这个水平。补充,有朋友提问怀疑进口猪肉导致猪肉价格不高,这个问题考虑过,因为影响太小,压根没提。现贴图如下,进口猪占比4%多点,地区性猪肉问题可能需要考虑,全国范围内不必考虑。评论区有的朋友问我其他的行业和股票,不是我不回复,很多东西我也不懂。见谅研报从哪里下呢?直接用电脑下载“慧博智能策略终端”如果是土豪,建议直接买万德。近期虽然个人认为大盘很危险,但是房地产涨幅较好,有空更新其中的逻辑吧。我自己写个文章吧,继续在这下面写显得太乱。声明一下哈,我只是看研报和数据,希望大家都能多积累一些知识,不要盲目相信你所看到的你所听到的所谓荐股,骗子太多————————————————————————那些看了觉得好的,能不能点个赞, 我看着这个回答下面的那些无脑结论、无数据结论、无任何投资价值的荐股都得到了大量的赞,扯淡,活该有的人做韭菜,太容易被忽悠了……790171 条评论分享收藏感谢收起增城朱村39亿出让两宗商住地 要求自持50% 打造科技小镇gz.leju.com内容是对参与竞拍土地企业的要求各位如果在房地产公司工作的话可以对比下自己公司能不能符合以上条件提这则新闻是想说小地产公司连在一线城市拿地的资格都没有大鱼可以吃小鱼小鱼只能吃三线的虾米房地产世界最终还是大鱼的说完了以上再看当下的房地产公司一线的只有万科、金地、保利几家香港市场的融创中国和恒大地产是新进入一线地产商的公司相对估值更低增速更高作为投资标的性价比更高欢迎关注本人微博和公众号都叫:沪深大爆炸附上公众号二维码 (二维码自动识别)14446 条评论分享收藏感谢收起博客分类:
package com.
import java.io.IOE
import java.io.UnsupportedEncodingE
import java.math.BigD
import java.text.DateF
import java.text.DecimalF
import java.text.ParseE
import java.text.SimpleDateF
import java.util.A
import java.util.C
import java.util.D
import java.util.M
import java.util.R
import javax.servlet.http.HttpServletR
import com.opensymphony.xwork2.inject.ContainerBuilder.C
public class BaseUtil {
public static final String PROJECT_DEFAULT_ENCODING = "UTF-8";
* 判断字符串是否为空
public static boolean isEmpty(Object arg) {
if (StringSafe(arg).equals("")) {
* 转换null字符串为""
public static String StringSafe(Object strParam) {
String value = "";
if (strParam == null) {
value = "";
value = String.valueOf(strParam);
} catch (Exception e) {
value = "";
if (value.equals("null") || value.equals("[]")) {
value = "";
return value.trim();
* 将ISO流内容转换为项目默认编码格式内容
public static String ISO2DefaultCode(String arg) {
String strWrk = "";
arg = StringSafe(arg);
strWrk = new String(arg.getBytes("ISO-8859-1"), "UTF-8");
} catch (Exception e) {
strWrk = "*** ERROR convStr()";
return strW
* 将字符串内容转换为项目UTF-8编码格式内容
public static String ISO2UTF_8Code(String arg) {
String utf8 = new String(t.getBytes( "UTF-8"));&
System.out.println(utf8);&
String unicode = new String(utf8.getBytes(),"UTF-8");&
System.out.println(unicode);&
String gbk = new String(unicode.getBytes("GBK"));&&&
System.out.println(gbk);&
String strWrk = "";
arg = StringSafe(arg);
strWrk = new String(arg.getBytes("UTF-8"), "UTF-8");
} catch (Exception e) {
strWrk = "*** ERROR convStr()";
return strW
* 将GBK编码格式转换为UTF-8
public static String getUTF8StringFromGBKString(String gbkStr){&&
&& try {&&
&&&&&& return new String(getUTF8BytesFromGBKString(gbkStr), "UTF-8");&&
&&&&&& } catch (UnsupportedEncodingException e) {&&
&&&&&&& throw new InternalError();&&
* @param gbkStr
* @description 将UTF-8编码格式转换成GBK格式
* @version 1.0
* @author liutao
* @update Apr 15, :05 AM
public static byte[] getUTF8BytesFromGBKString(String gbkStr) {&&
&& int n = gbkStr.length();&&
&& byte[] utfBytes = new byte[3 * n];&&
&&& int k = 0;&&
&&& for (int i = 0; i & i++) {&&
&&&&&&& int m = gbkStr.charAt(i);&&
&&&&&&& if (m & 128 && m &= 0) {&&
&&&&&&&&&&& utfBytes[k++] = (byte)&&
&&&&&&&&&&&&&
&&&&&&& }&&
&&&&&&& utfBytes[k++] = (byte) (0xe0 | (m && 12));&&
&&&&&&& utfBytes[k++] = (byte) (0x80 | ((m && 6) & 0x3f));&&
&&&&&&& utfBytes[k++] = (byte) (0x80 | (m & 0x3f));&&
&&& if (k & utfBytes.length) {&&
&&&&&&& byte[] tmp = new byte[k];&&
&&&&&&& System.arraycopy(utfBytes, 0, tmp, 0, k);&&
&&& return utfB&&
* 将项目默认编码格式内容转换为ISO流内容
*/
// public static String DefaultCode2ISO(String arg) {
//
String strWrk = "";
//
arg = StringSafe(arg);
//
strWrk = new String(arg.getBytes(Command.ENCODING), "ISO-8859-1");
//
} catch (Exception e) {
//
strWrk = "*** ERROR convStr()";
//
return strW
// }
/***************************************************************************
* 字符串左补位&br&
* orginString 需要补位的字符串&br&
* addStr 需要填补的内容 len 需要填补的长度
public static String padLeft(String orginString, String addStr, int len) {
StringBuffer strBuffer = new StringBuffer("");
if (orginString == null) {
orginString = "";
if (orginString.length() &= len) {
return orginS
if (addStr != null) {
//System.out.println(strBuffer.length()+"*");
while (strBuffer.length() + orginString.length() & len) {
System.out.println(strBuffer.length()+orginString.length());
strBuffer.append(addStr);
strBuffer.append(orginString);
return strBuffer.toString();
/***************************************************************************
* 字符串右补位&br&
* orginString 需要补位的字符串&br&
* addStr 需要填补的内容 len 需要填补的长度
public static String padRight(String orginString, String addStr, int len) {
StringBuffer strBuffer = new StringBuffer("");
if (orginString == null) {
orginString = "";
if (orginString.length() &= len) {
return orginS
if (addStr != null) {
strBuffer.append(orginString);
while (strBuffer.length() & len) {
strBuffer.append(addStr);
return strBuffer.toString();
/***************************************************************************
* 将null字符串转换为0
public static String NumSafe(Object strParam) {
String value = "0";
if (strParam == null) {
value = "0";
value = String.valueOf(strParam);
} catch (Exception e) {
value = "0";
if (value == "null" || value.length() == 0) {
value = "0";
return value.trim();
/***************************************************************************
* 将字符串转换为Int
public static int String2Int(Object argValue) {
if (isEmpty(argValue)) {
return Integer.parseInt(String.valueOf(argValue));
/***************************************************************************
* 将字符串转换为Long
public static long String2Long(Object argValue) {
if (isEmpty(argValue)) {
return Long.parseLong(String.valueOf(argValue));
/***************************************************************************
* 格式化SQL语句
public static String FormatSQLStr(String argValue) {
String returnValue = StringSafe(argValue);
if (returnValue.length() == 0) {
return "";
returnValue = returnValue.replaceAll("\"\"", "\"\"\"\"")
.replaceAll("'", "''");
return returnV
// public static void main(String[] args) {
//
String sql="select * from sec where name='dsdf' +'and name=sfsd' ";
System.out.println(FormatSQLStr(sql));
//
/***************************************************************************
* 格式化钱四舍五入小数点后两位
public static String fmtMoney(Object strParam) {
String value = "0";
if (strParam == null) {
value = "0";
Double dblValue = Double.valueOf(strParam.toString());
if (dblValue.doubleValue() == 0) {
value = "0.00";
DecimalFormat df1 = new DecimalFormat("######.00");
value = df1.format(dblValue.doubleValue());
if (Double.parseDouble(value) & 1 && Double.parseDouble(value) & 0) {
value = "0" +
} catch (Exception e) {
value = "0";
if (value == "null" || value.length() == 0) {
value = "0";
return value.trim();
/***************************************************************************
* 将超出长度的字符串转换为...
public static String trancate(String input, int len) {
StringBuffer sb = new StringBuffer(len);
int count = 0;
for (int i = 0; i & input.length(); i++) {
char c = input.charAt(i);
if (c &= '\u00ff') {
count += 2;
if (count & len) {
return sb.append(
" &font color='blue'&&strong&...&strong/&&/font&")
.toString().trim();
sb.append(c);
if (count &= len) {
return sb.append(
" &font color='blue'&&strong&...&strong/&&/font&")
.toString().trim();
* 将一字符串数组以某特定的字符串作为分隔来变成字符串
* @since 1.0
* @param strs
*&&&&&&&&&&& 字符串数组
* @param token
*&&&&&&&&&&& 分隔字符串
* @return 以token为分隔的字符串
public static String join(String[] strs, String token) {
if (strs == null) {
StringBuffer sb = new StringBuffer();
for (int i = 0; i & strs. i++) {
if (i != 0) {
sb.append(token);
sb.append(strs[i]);
return sb.toString();
* 验证字符串合法性
* @since 1.0
* @param str
*&&&&&&&&&&& 需要验证的字符串
* @param test
*&&&&&&&&&&& 非法字符串(如:"~!#$%^&*()',;:?")
* @return true:非法;false:合法
public static boolean StringCheck(String str, String test) {
if (str == null || str.equals("")) {
boolean flag =
for (int i = 0; i & test.length(); i++) {
if (str.indexOf(test.charAt(i)) != -1) {
* 替换字符串
* @since 1.1
* @param strSc
*&&&&&&&&&&& 需要进行替换的字符串
* @param oldStr
*&&&&&&&&&&& 源字符串
* @param newStr
*&&&&&&&&&&& 替换后的字符串
* @return 替换后对应的字符串
public static String replace(String strSc, String oldStr, String newStr) {
String ret = strSc;
if (ret != null && oldStr != null && newStr != null) {
ret = strSc.replaceAll(oldStr, newStr);
* 替换字符串,修复java.lang.String类的replaceAll方法时第一参数是字符串常量正则时(如:"address".
* replaceAll("dd","$");)的抛出异常:java.lang.StringIndexOutOfBoundsException:
* String index out of range: 1的问题。
* @param strSc
*&&&&&&&&&&& 需要进行替换的字符串
* @param oldStr
*&&&&&&&&&&& 源字符串
* @param newStr
*&&&&&&&&&&& 替换后的字符串
* @return 替换后对应的字符串
public static String replaceAll(String strSc, String oldStr, String newStr) {
int i = -1;
while ((i = strSc.indexOf(oldStr)) != -1) {
strSc = new StringBuffer(strSc.substring(0, i)).append(newStr)
.append(strSc.substring(i + oldStr.length())).toString();
return strSc;
* 将字符串转换成HTML格式的字符串
* @since 1.1
* @param str
*&&&&&&&&&&& 需要进行转换的字符串
* @return 转换后的字符串
public static String toHtml(String str) {
String html = StringSafe(str);
if (str == null || str.length() == 0) {
return "";
html = replace(html, "&", "&");
html = replace(html, "&", "&");
html = replace(html, "&", "&");
html = replace(html, "\"", "&");
html = replace(html, " ", "&nbsp");
html = replace(html, "\r\n", "&br&");
* 将HTML格式的字符串转换成常规显示的字符串
* @since 1.1
* @param str
*&&&&&&&&&&& 需要进行转换的字符串
* @return 转换后的字符串
public static String toText(String str) {
String text = StringSafe(str);
if (str == null || str.length() == 0) {
return "";
text = replace(text, "&", "&");
text = replace(text, "&", "&");
text = replace(text, "&", "&");
text = replace(text, "&br&\n", "\n");
text = replace(text, "&br&", "\n");
text = replace(text, "&", "\"");
text = replace(text, "&", " ");
public static int alphabet2No(String str) {
String[] alphabet = { "A", "B", "C", "D", "E", "F", "G", "H", "I", "J",
"K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V",
"W", "X", "Y", "Z" };
int no = 0;
for (int i = 0; i & alphabet. i++) {
if (str.toUpperCase().equals(alphabet[i])) {
public static String No2alphabet(int no) {
String[] alphabet = { "A", "B", "C", "D", "E", "F", "G", "H", "I", "J",
"K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V",
"W", "X", "Y", "Z" };
for (int i = 0; i & alphabet. i++) {
if (no == i + 1) {
return alphabet[i];
return "";
/** 获取客户端IP */
public static String getIpAddr(HttpServletRequest request) {
String ip = request.getHeader(" x-forwarded-for ");
if (ip == null || ip.length() == 0 || " unknown ".equalsIgnoreCase(ip)) {
ip = request.getHeader(" Proxy-Client-IP ");
if (ip == null || ip.length() == 0 || " unknown ".equalsIgnoreCase(ip)) {
ip = request.getHeader(" WL-Proxy-Client-IP ");
if (ip == null || ip.length() == 0 || " unknown ".equalsIgnoreCase(ip)) {
ip = request.getRemoteAddr();
/** 字符串转换 */
public static String convStr(String arg, boolean flg) {
String strWrk = "";
if (arg == null) {
if (flg) {
strWrk = new String(arg.getBytes("ISO-8859-1"),
PROJECT_DEFAULT_ENCODING);
} catch (IOException e) {
strWrk = "*** ERROR convStr()";
return strW
* 产生一定长度的随机数
public static final String randomString(int length) {
Random randGen =
char[] numbersAndLetters =
Object initLock = new Object();
if (randGen == null) {
synchronized (initLock) {
if (randGen == null) {
randGen = new Random();
numbersAndLetters = ("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ")
.toCharArray();
char[] randBuffer = new char[length];
for (int i = 0; i & randBuffer. i++) {
randBuffer[i] = numbersAndLetters[randGen.nextInt(71)];
return new String(randBuffer);
public static double add(double d1, double d2) { // 进行加法计算
BigDecimal b1 = new BigDecimal(d1);
BigDecimal b2 = new BigDecimal(d2);
return b1.add(b2).doubleValue();
public static double sub(double d1, double d2) { // 进行减法计算
BigDecimal b1 = new BigDecimal(d1);
BigDecimal b2 = new BigDecimal(d2);
return b1.subtract(b2).doubleValue();
public static double mul(double d1, double d2) { // 进行乘法计算
BigDecimal b1 = new BigDecimal(d1);
BigDecimal b2 = new BigDecimal(d2);
return b1.multiply(b2).doubleValue();
public static double div(double d1, double d2, int len) { // 进行除法计算
BigDecimal b1 = new BigDecimal(d1);
BigDecimal b2 = new BigDecimal(d2);
return b1.divide(b2, len, BigDecimal.ROUND_HALF_UP).doubleValue();
public static double round(double d, int len) { // 进行四舍五入
BigDecimal b1 = new BigDecimal(d);
BigDecimal b2 = new BigDecimal(1);
return b1.divide(b2, len, BigDecimal.ROUND_HALF_UP).doubleValue();
& * 根据输入的日期字符串 和 提前天数 ,
& * 获得 指定日期提前几天的日期对象
& * @param dateString 日期对象 ,格式如 1-31-1900
& * @param lazyDays 倒推的天数
& * @return 指定日期倒推指定天数后的日期对象
& * @throws ParseException
public static Date getDate(String dateString , int beforeDays) throws ParseException{
& DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
& Date inputDate = dateFormat.parse(dateString);
& Calendar cal = Calendar.getInstance();
& cal.setTime(inputDate);
& int inputDayOfYear = cal.get(Calendar.DAY_OF_YEAR);
& cal.set(Calendar.DAY_OF_YEAR , inputDayOfYear-beforeDays );
& return cal.getTime();
* 换算两个数的百分数
public& static String getPercentCount(int num,int allCount) {
String result="";
if(allCount==0){
return "0"+"%";
double a= (double)
double b= (double)allC
double c = divide(a, b, 2);
result =& String.valueOf(c)+"%";
public static double divide(double v1, double v2, int scale) {
& double c = divPercent(v1, v2, scale + 2);
& // System.out.println(c+"%");
& return div(c * 100.0, 1, scale);
public static double divPercent(double v1, double v2, int scale) {
& if (scale & 0) {
&& throw new IllegalArgumentException(
&&&& "The scale must be a positive integer or zero");
& BigDecimal b1 = new BigDecimal(Double.toString(v1));
& BigDecimal b2 = new BigDecimal(Double.toString(v2));
& return b1.divide(b2, scale, BigDecimal.ROUND_HALF_UP).doubleValue();
* map 按照key 值排序输出其Value值
public static String sortMapKeyValue(Map&String,String& map){
if (map==null) {
return "";
String str="";
Object[] key =& map.keySet().toArray();&&&
Arrays.sort(key);&&&
for(int i = 0; i&key. i++){&&&
&&& System.out.println(map.get(key[i]));&&&
&&& str+= BaseUtil.StringSafe(map.get(key[i]));
myCsdn_taoge
浏览: 15141 次
来自: 沈阳
sys(33*32*31*30*29*28/6/5/4/3/2 ...
(window.slotbydup=window.slotbydup || []).push({
id: '4773203',
container: s,
size: '200,200',
display: 'inlay-fix'}

我要回帖

更多关于 投资者说视频2018全集 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信