import pymongo
from datetime import datetime, timedelta
import csv# 打开数据库
mongo_client = pymongo.MongoClient('mongodb://localhost:27017/')
# 若没有Database 和Collection,则会自动创建
mongo_db = mongo_client['SinaData']
# # 若没有Database 和Collection,则会自动创建
mongo_collection = mongo_db['SinaAllStockName']def INDEcreas(date, dayNUM):date = datetime.strptime(date, "%Y-%m-%d")modified_date = date + timedelta(days=dayNUM)datetime.strftime(modified_date, "%Y-%m-%d")dateINDE = modified_date.strftime("%Y-%m-%d")return dateINDEdef FindAllStock():# 查询所有数据mydoc = mongo_collection.find()Allcode = []Allname = []for x in mydoc:# print(x['code'])# print(x['name'])Allcode.append(x['code'])Allname.append(x['name'])return Allcode, Allname# 通过汗水代码时间查找收盘价格  有价格,对于无价格的如何处理
def shwoClosePrice(allStock, Fdate):print('print all stocks price...')EverStockPrice = []# 查找一个股票价格for numE in range(len(allStock)):# print(allStock[numE])print('查找结果: {:.2%}'.format(numE / 4942))  # for 循环为啥不输出呢# print(str(numE))mongo_price = mongo_db[allStock[numE]]# FeverStockPrice = mongo_price.find_one({"date": Fdate})  # 查找停牌等问题# if FeverStockPrice is None:#     EverStockPrice.append(999999)  # 用999999进行站位# else:#     EverStockPrice.append(FeverStockPrice['close'])whileNum = 0while True:whileNum = whileNum + 1# code blocks = FdateFeverStockPrice = mongo_price.find_one({"date": s})  # 查找停牌等问题s = INDEcreas(s, -1)# break out of the loopif FeverStockPrice:EverStockPrice.append(FeverStockPrice['close'])breakif whileNum > 100:EverStockPrice.append(999999)breakreturn EverStockPricedef main():print("main...")allcode, allname = FindAllStock()  # 数据库查找所有股票代码、名称print(allcode)print(allname)print(len(allcode))  # 股票数量print(len(allname))AllStockClosePrice = shwoClosePrice(allcode, "2018-01-02")  # 所有股票股价print(AllStockClosePrice)print(len(AllStockClosePrice))# 'bj871970', 'bj871981', 'bj872925', 'bj873122', 'bj873169', 'bj873223'] 比如新的创业板股票交易日期都很新# 对股价由低到高排序# 1.创建一个字典Code_Price_dict = {allcode[k]: AllStockClosePrice[k] for k in range(len(AllStockClosePrice))}print(Code_Price_dict)# 2.使用zip方法将学生字典转换为(value, key)的元组格式Code_Price_tuplelist = list(zip(Code_Price_dict.values(),Code_Price_dict.keys()))# 3.使用sorted函数对元组列表student_list由分数高低进行排序print("+++++++++++++++++++++++++++++++++++++++++++++++++++++")Code_Price_sorted = sorted(Code_Price_tuplelist, reverse=True)print(Code_Price_sorted)print(len(Code_Price_sorted))if __name__ == '__main__':main()
import pymongo
from datetime import datetime, timedeltadate = [(5.39, 'sh600375'), (5.38, 'sz002400'), (5.38, 'sz002379'), (5.38, 'sh601169'), (5.37, 'sz002337'),(5.37, 'sz000597'), (5.37, 'sh600156'), (5.37, 'bj832566'), (5.36, 'sz002351'), (5.35, 'sz300586'),(5.35, 'sz001696'), (5.35, 'sz000409'), (5.35, 'sh600654'), (5.35, 'sh600222'), (5.35, 'sh600064'),(5.34, 'sh600078'), (5.33, 'sz002157'), (5.33, 'sh600461'), (5.31, 'sz000591'), (5.31, 'sh600854'),(5.3, 'sh603969'), (5.3, 'sh600185'), (5.3, 'bj833819'), (5.29, 'sz000159'), (5.29, 'sh601226'),(5.29, 'sh600716'), (5.29, 'sh600662'), (5.29, 'sh600395'), (5.28, 'sz002420'), (5.28, 'sz002003'),(5.28, 'sz000692'), (5.27, 'sz002218'), (5.27, 'sz002014'), (5.27, 'sz000932'), (5.26, 'sz000036'),(5.26, 'sh600657'), (5.25, 'sh600881'), (5.25, 'sh600331'), (5.24, 'sh600268'), (5.23, 'sh601898'),(5.23, 'sh601333'), (5.23, 'sh600880'), (5.22, 'sz300239'), (5.21, 'sz002483'), (5.21, 'sh601908'),(5.21, 'sh601199'), (5.2, 'sz300253'), (5.2, 'sz000725'), (5.2, 'sz000090'), (5.2, 'sh600173'),(5.19, 'sz002503'), (5.18, 'sz300059'), (5.18, 'sz002162'), (5.18, 'sz000791'), (5.18, 'sz000751'),(5.17, 'sz300105'), (5.17, 'sz002702'), (5.17, 'sz002206'), (5.17, 'sz002132'), (5.17, 'sz000530'),(5.17, 'sh600997'), (5.17, 'sh600981'), (5.16, 'sh603033'), (5.16, 'sh601636'), (5.15, 'sz002528'),(5.15, 'sz002099'), (5.15, 'sh600361'), (5.13, 'sz002361'), (5.12, 'sz002666'), (5.12, 'sz000987'),(5.12, 'sh601158'), (5.11, 'sh600836'), (5.1, 'sz300158'), (5.1, 'sz000965'), (5.09, 'sz000680'),(5.09, 'sh600177'), (5.09, 'sh600121'), (5.08, 'sz300150'), (5.07, 'sz000700'), (5.07, 'sh601588'),(5.06, 'sh600225'), (5.05, 'sz002481'), (5.04, 'sz000301'), (5.03, 'sz002169'), (5.02, 'sz002062'),(5.02, 'sz000558'), (5.01, 'sz002689'), (5.01, 'sz002392'), (5.01, 'sz000545'), (5.01, 'sh601968'),(5.0, 'sh601919'), (5.0, 'sh600828'), (5.0, 'sh600683'), (5.0, 'sh600502'), (4.99, 'sz000906'),(4.98, 'sh601519'), (4.95, 'sz000598'), (4.95, 'sz000166'), (4.95, 'sh601998'), (4.95, 'sh600708'),(4.94, 'sz002177'), (4.94, 'sh600540'), (4.94, 'sh600208'), (4.93, 'sh601992'), (4.92, 'sz002490'),(4.92, 'sz002225'), (4.91, 'sz002478'), (4.91, 'sh603601'), (4.9, 'sz000862'), (4.9, 'sh600812'),(4.9, 'sh600320'), (4.89, 'sz300234'), (4.89, 'sh600642'), (4.88, 'sh600705'), (4.87, 'sz300684'),(4.86, 'sz300569'), (4.86, 'sz000650'), (4.86, 'sh600973'), (4.85, 'sz002084'), (4.85, 'sz000958'),(4.85, 'sz000030'), (4.83, 'sh600963'), (4.83, 'sh600537'), (4.82, 'sz002487'), (4.81, 'sz000737'),(4.81, 'sh601018'), (4.8, 'sh601398'), (4.79, 'sz002306'), (4.78, 'sz000543'), (4.78, 'sz000521'),(4.77, 'sz300214'), (4.77, 'sz002535'), (4.77, 'sh600423'), (4.76, 'sh600105'), (4.75, 'sh600336'),(4.74, 'sz002554'), (4.73, 'sz002325'), (4.73, 'sh600798'), (4.73, 'sh600126'), (4.72, 'sz002064'),(4.71, 'sz002181'), (4.71, 'sz000536'), (4.71, 'sh601208'), (4.7, 'sz000622'), (4.7, 'sh600277'),(4.68, 'sz002550'), (4.68, 'sh600866'), (4.67, 'sz300507'), (4.66, 'sz000027'), (4.66, 'sh601008'),(4.66, 'sh600810'), (4.66, 'sh600488'), (4.65, 'sh601328'), (4.65, 'sh600386'), (4.64, 'sh600824'),(4.63, 'sz002638'), (4.63, 'sz000682'), (4.62, 'sz000659'), (4.62, 'sh600811'), (4.62, 'sh600448'),(4.59, 'sz002578'), (4.59, 'sz002463'), (4.59, 'sz000572'), (4.58, 'sh600611'), (4.58, 'sh600468'),(4.58, 'sh600400'), (4.58, 'sh600350'), (4.58, 'sh600127'), (4.57, 'sh600675'), (4.57, 'sh600462'),(4.56, 'sz000927'), (4.56, 'sh600025'), (4.55, 'sz002546'), (4.54, 'sz002109'), (4.53, 'sz002320'),(4.52, 'sz300276'), (4.52, 'sz300107'), (4.52, 'sh600780'), (4.5, 'sh601996'), (4.49, 'sh601339'),(4.48, 'sz000937'), (4.47, 'sz002274'), (4.47, 'sz000720'), (4.47, 'sh600635'), (4.46, 'sz002305'),(4.46, 'sh600815'), (4.45, 'sh600569'), (4.44, 'sz300067'), (4.44, 'sz300066'), (4.44, 'sh600023'),(4.43, 'sz002102'), (4.43, 'sh600533'), (4.43, 'sh600433'), (4.42, 'sh600020'), (4.41, 'sh600546'),(4.39, 'sz000949'), (4.39, 'sz000778'), (4.39, 'sz000539'), (4.39, 'sh600057'), (4.39, 'sh600035'),(4.37, 'sz002021'), (4.36, 'sz300012'), (4.36, 'sz002226'), (4.36, 'sh600759'), (4.35, 'sh600256'),(4.34, 'sz002516'), (4.34, 'sh600792'), (4.34, 'sh600261'), (4.33, 'sz002687'), (4.33, 'sz000652'),(4.32, 'sz000850'), (4.32, 'sz000573'), (4.32, 'sz000005'), (4.32, 'sh601618'), (4.32, 'sh600231'),(4.32, 'sh600028'), (4.32, 'sh600008'), (4.31, 'sh600369'), (4.3, 'sh600512'), (4.29, 'sz000425'),(4.28, 'sz300062'), (4.28, 'sz002467'), (4.28, 'bj831961'), (4.27, 'sh600823'), (4.26, 'sh600269'),(4.25, 'sz002506'), (4.25, 'sz002133'), (4.24, 'sh600403'), (4.23, 'sz300079'), (4.23, 'sh600300'),(4.22, 'sz000750'), (4.22, 'sh601179'), (4.21, 'sz002565'), (4.21, 'sz000972'), (4.21, 'sh600586'),(4.2, 'sz000859'), (4.19, 'sz002266'), (4.19, 'sh600582'), (4.18, 'sz002256'), (4.18, 'sz000898'),(4.17, 'sz300026'), (4.17, 'sz002641'), (4.17, 'sh600310'), (4.16, 'sz000883'), (4.16, 'sz000836'),(4.16, 'sz000761'), (4.16, 'sz000428'), (4.16, 'sh600496'), (4.15, 'sz000422'), (4.15, 'sh601899'),(4.14, 'sz000825'), (4.14, 'sz000677'), (4.13, 'sz300390'), (4.13, 'sz002145'), (4.13, 'sz000863'),(4.13, 'sh600567'), (4.12, 'sz002204'), (4.11, 'sh603300'), (4.11, 'sh601789'), (4.1, 'sz002593'),(4.1, 'sh601608'), (4.1, 'sh601388'), (4.1, 'sh600108'), (4.08, 'sh600163'), (4.06, 'sh600873'),(4.05, 'sz002471'), (4.04, 'sz300259'), (4.04, 'sz000520'), (4.03, 'sz002239'), (4.03, 'sh600321'),(4.03, 'sh600190'), (4.02, 'bj831445'), (4.01, 'sz300451'), (4.0, 'sh600868'), (3.99, 'sz000563'),(3.98, 'sz300352'), (3.98, 'sh600603'), (3.97, 'sz002063'), (3.95, 'sz002495'), (3.95, 'sz000656'),(3.95, 'sh600691'), (3.95, 'sh600210'), (3.94, 'sh600246'), (3.93, 'sh600397'), (3.92, 'sh600252'),(3.9, 'sz000875'), (3.88, 'sh600982'), (3.87, 'sz000809'), (3.85, 'sz002228'), (3.85, 'sh600979'),(3.85, 'sh600777'), (3.84, 'sz300048'), (3.83, 'sz300370'), (3.82, 'sh601918'), (3.82, 'sh600255'),(3.81, 'sz300420'), (3.79, 'sh600744'), (3.79, 'sh600425'), (3.78, 'sz002124'), (3.78, 'sh601106'),(3.76, 'sz000713'), (3.76, 'sh600223'), (3.75, 'sz000631'), (3.75, 'sh600984'), (3.74, 'sz000753'),(3.73, 'sz002607'), (3.73, 'sh600017'), (3.72, 'sz000589'), (3.71, 'sh601991'), (3.7, 'sz000157'),(3.7, 'sh600481'), (3.69, 'sz300135'), (3.69, 'sh601616'), (3.69, 'bj832278'), (3.68, 'sz000982'),(3.68, 'sh600282'), (3.67, 'sz000966'), (3.67, 'sz000718'), (3.67, 'sh600052'), (3.66, 'sh600601'),(3.65, 'sz002328'), (3.65, 'sh601099'), (3.64, 'sh601107'), (3.62, 'sz300111'), (3.62, 'sh600665'),(3.61, 'sz002429'), (3.61, 'sz002060'), (3.6, 'sh600236'), (3.6, 'sh600039'), (3.59, 'sh601188'),(3.56, 'sz002613'), (3.56, 'sh600790'), (3.56, 'sh600159'), (3.56, 'sh600063'), (3.55, 'sh601010'),(3.53, 'sh600077'), (3.5, 'sh600577'), (3.5, 'sh600169'), (3.48, 'sz300189'), (3.48, 'sh600565'),(3.44, 'sz000709'), (3.44, 'sz000100'), (3.44, 'sh601518'), (3.42, 'sz000897'), (3.42, 'sh601872'),(3.41, 'sz002195'), (3.41, 'sh600839'), (3.41, 'bj830832'), (3.4, 'sz000616'), (3.4, 'sh601218'),(3.38, 'sh600368'), (3.36, 'sh600327'), (3.33, 'sz300303'), (3.33, 'sh601058'), (3.32, 'sz000903'),(3.3, 'sh600578'), (3.28, 'sz002414'), (3.28, 'sz002269'), (3.22, 'sh600725'), (3.21, 'sz000816'),(3.2, 'sh600743'), (3.2, 'sh600724'), (3.2, 'sh600408'), (3.2, 'sh600313'), (3.19, 'sh600726'),(3.17, 'sz000420'), (3.17, 'sh600221'), (3.14, 'sh600808'), (3.12, 'sh600396'), (3.12, 'sh600219'),(3.11, 'sz002498'), (3.11, 'sh601818'), (3.1, 'sh600027'), (3.09, 'sz000517'), (3.07, 'sh600467'),(3.07, 'sh600186'), (3.05, 'sh601866'), (3.05, 'sh600033'), (3.04, 'sz000882'), (3.04, 'sz000667'),(3.04, 'sh601016'), (3.02, 'sh600170'), (3.01, 'sh600853'), (3.0, 'sz000861'), (3.0, 'sz000552'),(3.0, 'sh601988'), (2.98, 'sh600220'), (2.97, 'sz000767'), (2.95, 'sz000683'), (2.93, 'sz300217'),(2.93, 'sh601929'), (2.93, 'sh600106'), (2.92, 'sh601288'), (2.92, 'sh600103'), (2.91, 'sh600307'),(2.88, 'sz002154'), (2.88, 'sh600795'), (2.87, 'sh600370'), (2.85, 'sz002263'), (2.83, 'sz002505'),(2.82, 'sh600166'), (2.78, 'sh601000'), (2.73, 'sz300587'), (2.73, 'sz002031'), (2.73, 'sz000630'),(2.72, 'sh600871'), (2.71, 'sh600653'), (2.64, 'sz002131'), (2.63, 'sh601880'), (2.53, 'sh601258'),(2.52, 'sz000727'), (2.51, 'sh600863'), (2.46, 'sh600010'), (2.39, 'sz002610'), (2.24, 'sh600527'),(2.18, 'sz002526'), (2.13, 'sz300185'), (2.06, 'sh600022'), (2.0, 'sh603077')]# 打开数据库
mongo_client = pymongo.MongoClient('mongodb://localhost:27017/')
# 若没有Database 和Collection,则会自动创建
mongo_db = mongo_client['SinaData']
# # 若没有Database 和Collection,则会自动创建
mongo_collection = mongo_db['SinaAllStockName']def INDEcreas(date, dayNUM):date = datetime.strptime(date, "%Y-%m-%d")modified_date = date + timedelta(days=dayNUM)datetime.strftime(modified_date, "%Y-%m-%d")dateINDE = modified_date.strftime("%Y-%m-%d")return dateINDE# 通过汗水代码时间查找收盘价格  有价格,对于无价格的如何处理
def shwoClosePrice(allStock, Fdate):print('print all stocks price...')EverStockPrice = []# 查找一个股票价格for numE in range(len(allStock)):# print(allStock[numE])print('查找结果: {:.2%}'.format(numE / 4942))  # for 循环为啥不输出呢# print(str(numE))mongo_price = mongo_db[allStock[numE]]# FeverStockPrice = mongo_price.find_one({"date": Fdate})  # 查找停牌等问题# if FeverStockPrice is None:#     EverStockPrice.append(999999)  # 用999999进行站位# else:#     EverStockPrice.append(FeverStockPrice['close'])whileNum = 0while True:whileNum = whileNum + 1# code blocks = FdateFeverStockPrice = mongo_price.find_one({"date": s})  # 查找停牌等问题s = INDEcreas(s, -1)# break out of the loopif FeverStockPrice:EverStockPrice.append(FeverStockPrice['close'])breakif whileNum > 100:EverStockPrice.append(999999)breakreturn EverStockPricedef FindStockName(Scode):stockName = mongo_collection.find_one({"code": Scode})  # 查找停牌等问题# print(stockName)return stockNameprint(date)# 循环10次
stockTen = 0
tenStockName = []
newPrice = []
oldPrice = []
tenStock = []
for stockTu in date:stockTen = stockTen + 1if stockTen == 10:breakprint(stockTu[1] + ':' + str(stockTu[0]), end="    ")stockName = FindStockName(stockTu[1])print(stockName['name'])tenStockName.append(stockName['name'])tenStock.append(stockTu[1])oldPrice.append(stockTu[0])newPrice = shwoClosePrice(tenStock, '2019-01-04')
print('-----------------')
print(tenStockName)
print(oldPrice)
print(newPrice)# 计算盈利比例
# print(type(oldPrice[0])) #<class 'float'>s = sum(oldPrice)
m = sum(newPrice)
print("初始资金" + str(s))
print("现在资金" + str(m))
print('盈利: {:.2%}'.format(m / s))

![在这里插入图片描述](https://img-blog.csdnimg.cn/a85e03b222e9400fa015053283db9b0e.png)

[60 量化交易] 对股票进行量化交易 买入最便宜的股票一年后再卖出看结果相关推荐

  1. 为什么总是封板又打开涨停_股票出现涨停,但很快涨停板又打开了,是不是要卖出呢!...

    今天(3月5日)盘面就有一个很好的封板未遂的例子,家家悦尾盘两次触及涨停,都没有封住,(如下图)说明多空双方在涨价价位出现了分歧. 而且最后5分钟,尾盘成交量也放出了很多的量.顺着这个思路,我看了一下 ...

  2. Python量化交易学习笔记(19)——连续下跌买入止盈止损卖出策略

    好友提出要验证连续下跌买入止盈止损卖出策略,本文对该策略回测和实现做分析记录. 买入条件中,连续下跌定义为收盘价连续4日低于前1日的收盘价.卖出条件中,止盈率设置为10%,止损率设置为5%.回测初始资 ...

  3. 量化进阶-《python与量化投资从基础到实战》——常用的量化策略及其实现

    python与量化投资从基础到实战--常用的量化策略及其实现 量化投资概述 量化投资简介 量化投资策略的类型 年化研究流程 行业轮动理论及其策略 行业轮动理论简介 行业轮动的原因 从产业链的角度来看行 ...

  4. 漫画:程序教你寻找股票买入卖出的最佳时机(动态规划)

    作者 | 小灰 来源 | 程序员小灰(ID:chengxuyuanxiaohui) 前一段时间,我们介绍了一个经典算法题目:寻找股票买入卖出的最佳时机.这个题目看似简单,却有着许多种变化. 在上一篇中 ...

  5. 一千万的股票能一天卖出吗

    一千万的股票可以一天就卖出,只要股市有价值一千万的股票需求,就可以进行操作. 我国股市对股票卖出的限制是必须持仓T+1天才可以卖,但没有规定投资者一天能够卖出的股票数量和价值.但投资者要注意股票单笔交 ...

  6. 漫画:寻找股票买入卖出的最佳时机

    -----  第二天  ----- 什么意思呢?让我们来举个例子,给定如下数组: 该数组对应的股票涨跌曲线如下: 显然,从第2天价格为1的时候买入,从第5天价格为8的时候卖出,可以获得最大收益: 此时 ...

  7. 漫画:寻找股票买入卖出的最佳时机(动态规划)

    前一段时间,我们介绍了一个经典算法题目:寻找股票买入卖出的最佳时机.这个题目看似简单,却有着许多种变化. 在上一篇中,我们讲解了最多1次买卖和无限次买卖的解法,那么,如果只允许最多2次股票买卖,如何寻 ...

  8. 短线股票怎么操作怎样才能炒好短线股票

    炒股并不是一锥子买卖,光靠运气是远远不够的.就算是运气再好的人,也总会有花光运气的一天!因此,建议股民一定要多掌握一些短线股票怎么操作以及怎样才能炒好短线股票等等炒股技巧,让自己强大才是王道!此外,不 ...

  9. 网易游戏面试--两次股票买入卖出的最大收益

    第一问: 对于只有一次买入卖出的最大收益可以参照http://blog.csdn.net/calmreason/article/details/7904062,已经将的非常详细了 第二问: 当时做完这 ...

最新文章

  1. ZwQueryVirtualMemory暴力枚举进程模块
  2. 用webBrowser取源文件取不到的点击数--选秀榜selectop.com网站内容管理系统之六
  3. Android之走手机流量让电脑能上网几种方法
  4. 华为的鸿蒙系统是安卓吗,华为鸿蒙,一个本属于2025年的产品
  5. 15年程序员老兵的40条编程技巧,句句都是血泪史!
  6. [剑指Offer] 第5章课后题详解
  7. 二级c语言程序设计教程微盘,二级C语言教程.pdf
  8. 【UE·蓝图】UE4蓝图MediaPlayer注意事项
  9. 贪心科技机器学习训练营(三)
  10. 遥控器,未来世界的入口?
  11. 计算机动画可分为二维和三维动画,二维动画与三维动画设计的区分
  12. latex : 常见编译错误记录
  13. 存储器之主存--Cache--辅存大全
  14. 记录一下git 打patch导入patch遇到的问题
  15. ROS与Web交互控制显示
  16. 如何借助企业微信运营管理用户?
  17. 机器学习之降维(特征选择与特征提取)
  18. 机器自动翻译古文拼音 - 十大宋词 - 江城子·乙卯正月二十日夜记梦 苏轼
  19. Redis面试常见问题
  20. 没有身家也要有身价,有身家更要有身价

热门文章

  1. 本地k8s环境搭建工具kind、microk8s安装;windows 包管理工具Chocolatey;lens k8s可视化工具
  2. MAC使用GTK创建界面
  3. 阿翔编程学-WebService介绍及使用
  4. 树莓派配置简单的家庭NAS
  5. sql查询结果加一行合计
  6. 浅谈 SAP ABAP 系统里的 ALV 输出方式实现
  7. RDKit|摩根分子指纹计算、提取与可视化
  8. Android中遇到button按钮设置背景图片无法显示的解决方案
  9. SAP ABAP OOALV常用的方法
  10. 详解公链,侧链,联盟链,私有链