mac版 eclipse 只能run不能debug的解决方案

mac:macOS Sierra 10.12.2
eclipse:Version: Neon.1a Release (4.6.1)

debug时进度一直停在93%,然后超时报错:

1
2
3
4
ERROR: transport error 202: gethostbyname: unknown host
ERROR: JDWP Transport dt_socket failed to initialize, TRANSPORT_INIT(510)
JDWP exit error AGENT_ERROR_TRANSPORT_INIT(197): No transports initialized [debugInit.c:750]
FATAL ERROR in native method: JDWP No transports initialized, jvmtiError=AGENT_ERROR_TRANSPORT_INIT(197)

分析错误提示,是找不到主机host,google一下,在stackoverflow找到了解决方案,在hosts中加入

1
127.0.0.1	localhost

阅读全文 »

制作分布图类似密度图,在python中利用pandas来提取分布数据是比较方便的。主要用到pandas的cut和groupby等函数。

第一步,从数据库中提取数据

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import pandas
from sqlalchemy import create_engine
host_mysql_test = '127.0.0.1'
port_mysql_test = 3306
user_mysql_test = 'admin'
pwd_mysql_test = '1234'
db_name_mysql_test = 'mydb'
engine_hq = create_engine('mysql+mysqldb://%s:%s@%s:%d/%s' % (user_mysql_test,
pwd_mysql_test,
host_mysql_test,
port_mysql_test,
'hq_db'), connect_args={'charset': 'utf8'})

sql = "SELECT * FROM fund_data where quarter>=8 order by yanzhi desc"
df = pd.read_sql(sql, engine)
#将yanzhi数据转换为百分比
df['yanzhi'] = df['yanzhi'].apply(lambda x: x * 100)

第二步,面元划分

阅读全文 »

scrapy爬虫写好后,需要用命令行运行,如果能在网页上操作就比较方便。scrapyd部署就是为了解决这个问题,能够在网页端查看正在执行的任务,也能新建爬虫任务,和终止爬虫任务,功能比较强大。

一、安装

1,安装scrapyd

1
pip install scrapyd

2, 安装 scrapyd-deploy

1
pip install scrapyd-client

windows系统,在c:\python27\Scripts下生成的是scrapyd-deploy,无法直接在命令行里运行scrapd-deploy。
解决办法:
在c:\python27\Scripts下新建一个scrapyd-deploy.bat,文件内容如下:

1
2
@echo off
C:\Python27\python C:\Python27\Scripts\scrapyd-deploy %*

添加环境变量:C:\Python27\Scripts;

阅读全文 »

IOS开发中需要为创建的数据保存到网络后台长久存储,刚开始想到的是直接连接mysql,但要在ios中安装mysql的控件,实在是麻烦。于是定义一个restful接口,通过http请求的方式来上传和获取数据,是一种比较方便的方式。
本文是基于Django框架,实现以下几个功能:

  • Model和ModelForm创建表单
  • POST上传图片

一、建立Model与mysql连接

1,定义model

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# models.py

from django.db import models
from django.utils.timezone import now

# Create your models here.
class CureData(models.Model):
STATUS_SIZES = (
(0, '进行中'),
(1, '已完成'),
)

name = models.CharField('名称', max_length=50)
cureDuration = models.IntegerField('时长')
create_at = models.DateTimeField("日期", default=now())
note = models.CharField('备注', max_length=200, blank=True)
image = models.ImageField('图片', upload_to='photos', blank=True)
operator = models.CharField('操作者', max_length=50, blank=True)
status = models.IntegerField('状态', default=0, choices=STATUS_SIZES) # 0,进行中; 1,已完成

class Meta:
ordering = ['create_at']

def __unicode__(self):
return self.name
阅读全文 »

Scrapy适合做全量爬取,但是,我们不是一次抓取完就完事了。很多情况,我们需要持续的跟进抓取的站点,增量抓取是最需要的。
Scrapy与Redis配合,在写入数据库之前,做唯一性过滤,实现增量爬取。


一、官方的去重Pipeline

官方文档中有一个去重的过滤器:

1
2
3
4
5
6
7
8
9
10
11
12
13
from scrapy.exceptions import DropItem

class DuplicatesPipeline(object):

def __init__(self):
self.ids_seen = set()

def process_item(self, item, spider):
if item['id'] in self.ids_seen:
raise DropItem("Duplicate item found: %s" % item)
else:
self.ids_seen.add(item['id'])
return item

官方的这个过滤器的缺陷是只能确保单次抓取不间断的情况下去重,因为其数据是保存在内存中的,当一个爬虫任务跑完后程序结束,内存就清理掉了。再次运行时就失效了。

二、基于Redis的去重Pipeline

阅读全文 »

一年多没接触xcode了,这一年主要用python做开发,刹一接触xcode代码,还是有点陌生的感觉。在网上闲逛了一通,发现网上的ios教程用swift编写的比oc的多多了。看来苹果的swift推广的比较好。我偶尔写写简单的app,objective-c用过一段时间,这次还是用oc,swift等有时间了好好研究一下。
前段时间有朋友让做一个ipad程序,用webview封装一个网站,实现一个独立的app应用。
功能虽然简单,实现起来发现ios开发的好些功能都有涉及,丢了一年的ios开发中的概念捡起来不易,于是记录下来,以免后面重复造轮子时又忘了。

主要功能介绍:

  • 自适应iphone和ipad
  • 屏幕翻转自适应拉伸
  • 自定义导航栏返回按钮
  • 网页加载进度条显示
  • 主屏幕左滑后退
阅读全文 »

一、简介

G2是阿里巴巴内部开放的数据可视化工具,提供丰富的图表类型,并且简单易上手,有比较完善的示例代码。其生成的图表简单漂亮,而且有JS互动显示,比较适合报告和文章插图。G2的数据来源是json格式数据。

G2绘制的图形

python的pandas库比较擅长对数据处理和分析,其DataFrame生成json也很方便。pandas自身集成了matplotlib的绘图功能,但是绘制的图形没有G2美观。

阅读全文 »

在系列第一篇《跟着分析师炒股系列(一)》里,信谁大数据科学团队以分析师研报推荐的股票池,建立了一套股票组合轮动的交易策略,发掘出累积收益最高的一票分析师,其中最牛的招商证券分析师刘荣的累积收益竟达80倍!

不过,累积收益还可能包含运气成分,比如大牛市下推荐股票都大涨,还不能算真英雄。这一次我们来看看相对收益,看能不能找出穿越牛熊的分析师,尤其是最近一年熊市震荡下他们的表现如何。

延续上一篇的交易策略,筛选分析师评级为买入和增持的股票,形成股票池。
调仓周期为3个月。
选取分析师评级为“买入、增持”的股票。实现3个月一轮换。
具体在每三个月的月末,选取最近发表三篇研报推荐的股票:

  • 若三只股票与前三个月推荐的完全一样,则继续持有;
  • 若三只股票都不一样,则卖掉所有持仓,买入新推荐的三只股票;
  • 若三只股票有一到两只不同,则卖掉收益率最高的持仓股票,买入新推荐的一到两只股票。

一,年化相对收益率排名TOP10

我们挑选最近活跃的分析师(在1年内有发表研报),并且其交易周期≥1年。共747名分析师,先看结果:

阅读全文 »

上一回,我们利用大数据展示了分析师研报预测与个股真实涨跌的对比情况,发现了不少“高言值”分析师,说明专业研究的价值。点击回顾《大数据教你挑选分析师
那么,结合个人实际持仓操作情况,如果我们就跟着分析师的推荐构建买卖组合,能取得怎样的成绩呢?
信谁大数据科学团队这次就以分析师研报推荐的股票池,建立了一套股票组合轮动的交易策略,来看看结果如何。
技术男的方法依然简单直接:
一名普通分析师每个月发表的研报数量大多数在5篇以上,但选股在精不在多,实际也不可能买入分析师推荐的所有股票。而短线投资对时间精力要求高,仍提倡中长期投资为主。信谁数据科学实验室制定了一个简单有效的交易策略:

1) 挑选分析师评级为“买入”的股票;
2) 策略的调仓周期定为3个月;
3) 具体在每三个月的月末,选取最近发表三篇研报推荐的股票:

  • 若三只股票与前三个月推荐的完全一样,则继续持有;
  • 若三只股票都不一样,则卖掉所有持仓,买入新推荐的三只股票;
  • 若三只股票有一到两只不同,则卖掉收益率最高的持仓股票,买入新推荐的一到两只股票。

注:本交易策略没考虑交易费用。

阅读全文 »

每个证券公司都有一个分析师团队,不定期发布投资研究报告。分析师的研报准吗?分析师的“言值”究竟有多高?
“信谁”的大数据科学团队对这个问题也很好奇。究竟准不准,我们信数据不信故事。
技术男的方法非常简单暴力:

  1. 把分析师发布的研报预测与相关股票最后涨跌的结果作对比,判断该研报预测的准确性
  2. 把分析师发布的所有研报汇总起来,就得到分析预测的正确率,即“言值”,“言值”可以是从0-100分。
  3. 汇总所有分析师的数据,就可以得到全部分析师的“言值”分布。

我们从“信谁”平台收集了几乎全部证券公司的3022名分析师、45万条研报数据进行分析。通过大数据挖掘和提取,总结了一些有意思的数据与大家分享。


一、中国分析师分布情况

国内的机构分析师基本集中在北京、上海、深圳等地。与国内的财富聚集地区一致。

阅读全文 »