鱼C论坛

 找回密码
 立即注册
查看: 1366|回复: 14

[已解决]悬赏求助解决处理的不同变量的问题

[复制链接]
发表于 2018-3-2 15:29:54 | 显示全部楼层 |阅读模式
50鱼币
本帖最后由 jensonl 于 2018-3-2 16:42 编辑
  1. def init(context):
  2. subscribe(symbols=symbol, frequency='tick')
复制代码

上面是我订阅了一组数据。  
其中 symbol 里面我打包了很多个字符串列表。   

然后这个subscribe() 会每秒传给我,每个字符串对应的数据组。
其中symbol:SHSE.600618  这个是一个标签。   当然也有 symbol:SHSE.600000 , symbol: SHSE.600001 等等等等
  1. {'symbol': 'SHSE.600618', 'created_at': datetime.datetime(2018, 2, 23, 10, 1, 8, 770000), 'price': 10.350000381469727, 'open': 10.34000015258789, 'high': 10.359999656677246, 'low': 10.279999732971191, 'cum_volume': 547813.0, 'cum_amount': 5653861.0, 'cum_position': 0, 'last_amount': 87975.0, 'last_volume': 8500, 'trade_type': 7, 'nanos': 770000000, 'quotes': [{'bid_p': 10.350000381469727, 'bid_v': 7000, 'ask_p': 10.359999656677246, 'ask_v': 14500}, {'bid_p': 10.34000015258789, 'bid_v': 18000, 'ask_p': 10.369999885559082, 'ask_v': 2000}, {'bid_p': 10.329999923706055, 'bid_v': 1500, 'ask_p': 10.380000114440918, 'ask_v': 9300}, {'bid_p': 10.319999694824219, 'bid_v': 9200, 'ask_p': 10.390000343322754, 'ask_v': 22100}, {'bid_p': 10.3100004196167, 'bid_v': 23100, 'ask_p': 10.399999618530273, 'ask_v': 56600}]}
复制代码
  1. {'symbol': 'SHSE.600000', 'created_at': datetime.datetime(2018, 2, 23, 10, 1, 8, 770000), 'price': 10.350000381469727, 'open': 10.34000015258789, 'high': 10.359999656677246, 'low': 10.279999732971191, 'cum_volume': 547813.0, 'cum_amount': 5653861.0, 'cum_position': 0, 'last_amount': 87975.0, 'last_volume': 8500, 'trade_type': 7, 'nanos': 770000000, 'quotes': [{'bid_p': 10.350000381469727, 'bid_v': 7000, 'ask_p': 10.359999656677246, 'ask_v': 14500}, {'bid_p': 10.34000015258789, 'bid_v': 18000, 'ask_p': 10.369999885559082, 'ask_v': 2000}, {'bid_p': 10.329999923706055, 'bid_v': 1500, 'ask_p': 10.380000114440918, 'ask_v': 9300}, {'bid_p': 10.319999694824219, 'bid_v': 9200, 'ask_p': 10.390000343322754, 'ask_v': 22100}, {'bid_p': 10.3100004196167, 'bid_v': 23100, 'ask_p': 10.399999618530273, 'ask_v': 56600}]}
复制代码


然后我目前处理的是:
建立全局变量

s600618 = []
s600000 = []
s600001 = []


  1. if symb == 'SHSE.600618'  :
  2.       s600618.append(float('%.2f' % tick['price']))
  3.       g = Up_grade(s600618)
  4.         rate = g.rate()
  5.         vol = int(tick['last_volume']/100)
  6.         result = stock_dict[symb]
  7.         if len(s600618)> 3:
  8.             sale_price =s600618[-1]
  9.            xxxxxxxxxxxxxxxxxxx

  10. if symb == 'SHSE.600000':
  11.      s600000.append(float('%.2f' % tick['price']))
  12.      g = Up_grade(s600000)
  13.         rate = g.rate()
  14.         vol = int(tick['last_volume']/100)
  15.         result = stock_dict[symb]
  16.         if len(s600000)> 3:
  17.             sale_price =s600000[-1]
  18.            xxxxxxxxxxxxxxx

  19. if symb == 'SHSE.600001':
  20.      s600001.append(float('%.2f' % tick['price']))
  21.     g = Up_grade(s600001)
  22.         rate = g.rate()
  23.         vol = int(tick['last_volume']/100)
  24.         result = stock_dict[symb]
  25.         if len(s600001)> 3:
  26.             sale_price =s600001[-1]
  27.             xxxxxxxxxxxxxxxxxxxxxx
复制代码



来处理 不同的SHSE.xxxxx 的数据。
我建立了一个Up_grade的类,来运行相同的策略。 但这样代码修正起来还是非常麻烦,

一旦有些变动,需要一个一个去修改里面的内容。

我曾经想用用  locals()[tick['symbol']] 来代替变量。
但是每个不同的变量还要生成一个 list的列表 来存放数据。 然后进行处理

请问有什么办法可以解决 这个问题。

谢谢。



最佳答案
2018-3-2 15:29:55
不知道有没有理解对楼主的意思

楼主是想对subscribe()传回来的数据进行整理,因为subscribe()传回来的数据多种多样,有SHSE.600000,SHSE.600001,SHSE.600002,SHSE.600003,SHSE.600004等等许多不同的symbol名,而现在楼主是想写一个通用的处理过程,可以实现对上述的各种symbol名的数据的处理 ?

另外s600618.append(float('%.2f' % tick['price']))
这里的tick是下面这段东西吗?
  1. {'symbol': 'SHSE.600618', 'created_at': datetime.datetime(2018, 2, 23, 10, 1, 8, 770000), 'price': 10.350000381469727, 'open': 10.34000015258789, 'high': 10.359999656677246, 'low': 10.279999732971191, 'cum_volume': 547813.0, 'cum_amount': 5653861.0, 'cum_position': 0, 'last_amount': 87975.0, 'last_volume': 8500, 'trade_type': 7, 'nanos': 770000000, 'quotes': [{'bid_p': 10.350000381469727, 'bid_v': 7000, 'ask_p': 10.359999656677246, 'ask_v': 14500}, {'bid_p': 10.34000015258789, 'bid_v': 18000, 'ask_p': 10.369999885559082, 'ask_v': 2000}, {'bid_p': 10.329999923706055, 'bid_v': 1500, 'ask_p': 10.380000114440918, 'ask_v': 9300}, {'bid_p': 10.319999694824219, 'bid_v': 9200, 'ask_p': 10.390000343322754, 'ask_v': 22100}, {'bid_p': 10.3100004196167, 'bid_v': 23100, 'ask_p': 10.399999618530273, 'ask_v': 56600}]}
复制代码

最佳答案

查看完整内容

不知道有没有理解对楼主的意思 楼主是想对subscribe()传回来的数据进行整理,因为subscribe()传回来的数据多种多样,有SHSE.600000,SHSE.600001,SHSE.600002,SHSE.600003,SHSE.600004等等许多不同的symbol名,而现在楼主是想写一个通用的处理过程,可以实现对上述的各种symbol名的数据的处理 ? 另外s600618.append(float('%.2f' % tick['price'])) 这里的tick是下面这段东西吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-3-2 15:29:55 | 显示全部楼层    本楼为最佳答案   
不知道有没有理解对楼主的意思

楼主是想对subscribe()传回来的数据进行整理,因为subscribe()传回来的数据多种多样,有SHSE.600000,SHSE.600001,SHSE.600002,SHSE.600003,SHSE.600004等等许多不同的symbol名,而现在楼主是想写一个通用的处理过程,可以实现对上述的各种symbol名的数据的处理 ?

另外s600618.append(float('%.2f' % tick['price']))
这里的tick是下面这段东西吗?
  1. {'symbol': 'SHSE.600618', 'created_at': datetime.datetime(2018, 2, 23, 10, 1, 8, 770000), 'price': 10.350000381469727, 'open': 10.34000015258789, 'high': 10.359999656677246, 'low': 10.279999732971191, 'cum_volume': 547813.0, 'cum_amount': 5653861.0, 'cum_position': 0, 'last_amount': 87975.0, 'last_volume': 8500, 'trade_type': 7, 'nanos': 770000000, 'quotes': [{'bid_p': 10.350000381469727, 'bid_v': 7000, 'ask_p': 10.359999656677246, 'ask_v': 14500}, {'bid_p': 10.34000015258789, 'bid_v': 18000, 'ask_p': 10.369999885559082, 'ask_v': 2000}, {'bid_p': 10.329999923706055, 'bid_v': 1500, 'ask_p': 10.380000114440918, 'ask_v': 9300}, {'bid_p': 10.319999694824219, 'bid_v': 9200, 'ask_p': 10.390000343322754, 'ask_v': 22100}, {'bid_p': 10.3100004196167, 'bid_v': 23100, 'ask_p': 10.399999618530273, 'ask_v': 56600}]}
复制代码

评分

参与人数 1荣誉 +2 鱼币 +2 贡献 +2 收起 理由
jensonl + 2 + 2 + 2 热爱鱼C^_^

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2018-3-2 15:37:17 | 显示全部楼层
  谁能指教下吗。最好可以附上代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2018-3-2 15:52:47 | 显示全部楼层
为啥就我的问题没人解答。 是太难了吗。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-3-2 16:10:18 From FishC Mobile | 显示全部楼层
真是辣眼睛
if symb=='SHSE.6000:请问这是什么语法。def定义函数后居然没有缩进
sysmbol是什么数据类型你都不知道,是个字典
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2018-3-2 16:43:59 | 显示全部楼层
waitforlove 发表于 2018-3-2 16:10
真是辣眼睛
if symb=='SHSE.6000:请问这是什么语法。def定义函数后居然没有缩进
sysmbol是什么数据类型你 ...

copy的时候漏了。 修复了。  能关注问题重点吗。  数据类型当然是字典。 但我的问题不是这个
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2018-3-2 16:45:37 | 显示全部楼层
waitforlove 发表于 2018-3-2 16:10
真是辣眼睛
if symb=='SHSE.6000:请问这是什么语法。def定义函数后居然没有缩进
sysmbol是什么数据类型你 ...

其中 symbol 里面我打包了很多个字符串列表。   

这个是我用pickle 打包的字符串列表,用来订阅N组 数据
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-3-2 18:05:03 From FishC Mobile | 显示全部楼层
没人一开始就是最简洁的,先用麻烦的方法写出来,再想怎么搞优化
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2018-3-2 18:32:28 | 显示全部楼层
waitforlove 发表于 2018-3-2 18:05
没人一开始就是最简洁的,先用麻烦的方法写出来,再想怎么搞优化

程序已经正常运行了。 还请给些指导性的意见谢谢。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-3-2 19:19:12 From FishC Mobile | 显示全部楼层
jensonl 发表于 2018-3-2 18:32
程序已经正常运行了。 还请给些指导性的意见谢谢。

你是要每秒返回一个数据吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2018-3-2 20:18:12 | 显示全部楼层
waitforlove 发表于 2018-3-2 19:19
你是要每秒返回一个数据吗

不是每秒返回一个数据。 是这个subscribe() 会每秒传给我,每个字符串对应的数据组。
我要对数据进行分析处理。  是我问题不够明白吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2018-3-2 21:57:23 | 显示全部楼层
求指导 没人能解答吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-3-2 23:53:30 From FishC Mobile | 显示全部楼层
很简单的,你在开头把"600001"这样要更改的数值赋值给一个变量,例如:先设置num=600001,nums=s+str(num)然后你的S600001=[]可以改为nums=[],你的SHSE.600001可以改为SHSE.+str(num)以此类推。以后你只需要修改num的值就可以了

评分

参与人数 1荣誉 +2 鱼币 +2 贡献 +2 收起 理由
jensonl + 2 + 2 + 2 热爱鱼C^_^

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-3-3 00:00:41 From FishC Mobile | 显示全部楼层
如果你想更省力,可以把num0=600000然后num1=num0+1=600001然后num2=600002以此类推。列表num0s=s+str(num0)以此类推
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2018-3-3 12:04:08 | 显示全部楼层
已解决。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-18 10:02

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表