至于BTC以及股票,则只能抽暇偶然瞄上几眼。
为此,我今日花了一天时刻对python程序做了优化:
运用queue模块规划报警音讯的多生产者-多顾客方式,创立多个线程处理行情查询、剖析以及报警音讯的发送、报警电话的拨打。
Python的Queue模块中供给了同步的、线程安全的行列类,
包含FIFO(先入先出)行列Queue,LIFO(后入先出)行列LifoQueue,和优先级行列PriorityQueue。
这些行列都完结了锁原语,能够在多线程中直接运用。
能够运用行列来完结线程间的同步。、
其间多个线程作为生产者一同查询多支股票以及BTC的行情,并依据设定的时刻窗进行统计剖析。
当检测到最高价、最低价等作业产生时,则向queue行列刺进待处理音讯。
在别的一些发送线程,则查询queue行列,
当行列不为空时,依照先进先出的原则,取出待处理的音讯,
依据音讯内容生成推送报警音讯和拨打报警电话的url,再用requests.get办法向该url提交恳求。
之后,经过vx推送音讯和xx云拨打电话的API接口逐个向用户发送报警音讯和拨打报警电话。
过几天有时刻了,我再测验代码的功用并进一步选用内存数据库如Redis等做优化,
争夺能够监测1000支左右的股票,以及向1000个用户推送报警音讯并拨打报警电话。
一、有人试过编写个程序来炒股吗?
优质答案1:
题主所说的程序来炒股,应该指的是量化买卖。这种想要在股票上完结主动买卖,不是程序不可,而是股票不太合适主动化买卖,合适选股!因为它是T+1买卖原则。
通常情况下,金融期货(股指)、大宗产品期货等选用T+0的标的更合适量化买卖。
量化买卖并不一定是指程序化买卖!可是,程序化买卖一定是量化买卖。你说的编个程序主动炒股,应该说的是程序化买卖吧。我做程序化买卖这么多年,写过的战略也是十分多,能够精确的讲只需不是盘感,都能够量化出来并完结主动化买卖。
例如,各种K线形状、组合、波浪理论等等,像W底、2B规律等等这些都能够量化出来,并完结主动化买卖。
完结一个主动化买卖战略,并不难!现在国内都有比较多的程序化买卖渠道,比方非编程言语TB、文华、金字塔、MC、MT4等,编程言语类的渠道,Python为开发言语的天勤量化、聚宽等等。
别的自己也能够树立自己的CTP,不凭借任何商业渠道。都能够完结自己的买卖思路,主动化买卖!
渠道的运用并不是会的越多越好,而是选中1-2个渠道越精越好。
最好是Python和非编程言语渠道都挑选一个,这样你的战略开发、布置愈加灵敏。
程序化战略编写实践!1.买卖开拓者TB体系战略展现:
如下图所示:
2.天勤量化的python代码:
如下图所示:开平仓部分代码
以上,便是关于答复你问题的全部内容,假如对您有协助,三连一下^_^,赚大钱、行大运。
优质答案2:
这块现货、期货早有人搞了,主动下单、主动平仓,倍投原理、马丁战略目不暇接,妥妥的人民币印钞机,VPS一挂什么都不用操心,每天只需捡人民币即可
但从来没看到有哪个EA能赢钱的
二、python能做手机软件吗?优质答案1:
能够考虑webapp,便是用python写网页,然后凭借东西打包成Android或iOS的装置包。
优质答案2:
“python能够做app,Python是一种计算机程序规划言语。是一种面向对象的动态类型言语,开端被规划用于编写主动化脚本(shell),跟着版别的不断更新和言语新功用的增加,越来越多被用于独立的、大型项目的开发。”
优质答案3:
这个真不主张,十分不方便,假如你真想这么做,有2种办法,一种是QPython,一种是Kivy,下面我简略介绍一下这2种办法:
QPython这个是手机上编写运转Python的一个软件,集成了Python解说器、QEdit编辑器,能够开发简略的安卓程序,下面我简略介绍一下这个软件:
1.下载装置QPython,这个直接在手机运用中查找就行,如下,也就12兆左右,直接点击下载就行:
2.装置成功后,咱们看一下官方自带的示例,一个简略的安卓程序,打印输入的内容,首要用到androidhelper这个包,如下:
程序运转作用如下,一个简略的安卓程序,比较朴素:
Kivy这个是一个跨渠道的运用开发结构,能够快速创立运用程序,只需编写一套代码,即可运转在现在干流的桌面和移动渠道上,像Windows,Linux,OSX,Android,iOS等,下面我简略介绍一下结构的装置和运用:
1.装置kivy,这直接参阅官网的教程就行,如下,很快就能装置成功:
2.装置成功后,咱们能够编写一个简略的测验程序,测验一下kivy结构是否装置成功,如下,很简略:
程序运转作用如下:
3.接着便是打包这程序为手机app,这儿需求先下载官方自带的kivy虚拟机,凭借这个虚拟机将kivy程序打包成手机app,如下,这个直接在官网上下载就行:
4.发动这个虚拟机,然后上传程序文件,运转buildozer指令打包程序,比较绵长,需求在线下载安卓SDK,NDK等包,打包成功后,就可在当时bin目录下生成apk文件:
5.最终,发送apk到手机上,装置后的作用如下:
现在,就介绍这2种办法吧,其实还有pythonforandroid这种办法,只不过比较费事,能够参阅一下这个文章blog.csdn.net/qq_29027865/article/details/79191775,介绍的不错。不过,真不主张用python开发手机app,比较费事,安卓的话,用Java或Kotlin,苹果的话,用Objective-C或Swift,能更好一些,期望以上同享的内容能对你有所协助吧,也欢迎咱们谈论、留言。
三、Python获取股票数据?优质答案1:
我现已爬下来了,最近两年的,自己写的python代码,本来是操练的。
优质答案2:
这个能够有,挺风趣的
优质答案3:
API使咱们能够从服务器宣布检索数据的恳求。API在许多方面都很有用,但其间之一是能够为数据科学项目创立仅有的数据集。在本教程中,咱们将学习一些用于Last.fmAPI的高档技能。
在咱们的初学者大数据剖析PythonAPI教程中,咱们运用了一个简略的API,十分合适教授根底常识:
a.它具有一些易于了解的结尾。
b.因为它不需求身份验证,所以咱们不用忧虑怎么告知API咱们有权运用它。
c.每个端点呼应的数据都很小,而且结构易于了解。
实际上,大多数API都比这更杂乱,因而要运用它们,您需求了解一些更高档的概念。详细来说,咱们将学习:
a.怎么运用API密钥进行身份验证。
b.怎么运用速率约束和其他技能在API原则内作业。
c.怎么运用分页处理较大的呼应。
本教程假定您了解运用大数据剖析Python运用API的根底常识。假如您不这样做,咱们主张您开端咱们的初学者API教程。咱们还假定您具有大数据剖析Python和pandas的中级常识。假如您不这样做,则能够经过咱们的大数据剖析Python根底课程免费开端学习。
运用Last.fmAPI
咱们将运用Last.fmAPI。Last.fm是一项音乐服务,可经过连接到iTunes,Spotify等相似的音乐流运用程序并盯梢您听的音乐来树立个人资料。
他们供给对API的免费拜访权,以便音乐服务能够向其发送数据,还能够供给终结点,以汇总Last.fm在各种艺术家,歌曲和流派上具有的一切数据。咱们将运用他们的API树立抢手艺术家的数据集。
遵从API原则
运用API时,请必须遵从其原则。假如你不这样做,则或许会被制止运用该API。除此之外,特别是当一家公司免费供给API时,请尊重他们的约束和原则,因为他们没有供给任何东西。
检查API文档中的Introduction页面,咱们会注意到一些重要的原则:
请在一切恳求上运用可辨认的User-Agent标头。这有助于咱们进行日志记载,并削减被制止的危险。
向last.fmAPI宣布恳求时,能够运用headers标识自己。Last.fm期望咱们在标头中指定一个用户署理,以便他们知道咱们是谁。咱们将在稍后提出第一个恳求时学习怎么履行此操作。
在确定要拨打多少次电话时,请运用常识。例如,假如要制造Web运用程序,请测验不要在页面加载时点击API。假如您的运用程序每秒继续拨打多个电话,则您的帐户或许会被暂停。
为了构建咱们的数据集,咱们将需求向Last.fmAPI宣布数千个恳求。虽然他们没有在文档中供给详细的约束,但他们的确主张咱们不要继续每秒进行屡次呼叫。在本教程中,咱们将学习一些约束速率的战略,或许保证咱们不会过多运用它们的API,以便防止被制止。
在宣布第一个恳求之前,咱们需求学习怎么运用Last.fmAPI进行身份验证
运用API密钥进行身份验证
大多数API都要求您进行身份验证,以便他们知道您有权运用它们。身份验证的最常见方式之一是运用API密钥,就像运用其API的暗码相同。假如在宣布恳求时未供给API密钥,则会呈现过错。
运用API密钥的进程如下:
a.您运用API的供给者创立一个帐户。
b.您需求一个API密钥,该密钥通常是一个长字符串,例如54686973206973206d7920415049204b6579。
c.您能够将API密钥记载在安全的当地,例如暗码保存器。假如有人取得了您的API密钥,那么他们能够运用伪装成您的API。
d.每次宣布恳求时,您都供给API密钥以进行身份验证。
要获取Last.fm的API密钥,请先创立一个帐户。创立帐户后,应转到以下表格:
在每个字段中填写有关您方案怎么运用API的信息。您能够将“回调URL”字段保存为空白,因为仅当您正在构建要验证为特定Last.fm用户的Web运用程序时才运用此字段。
提交表单后,您将取得API密钥和同享密钥的详细信息:
请在安全的当地记下这些内容-本教程无需运用同享密钥,但最好记下它,以防万一您想做一些需求您作为特定用户进行身份验证的作业。
宣布咱们的第一个API恳求
为了创立抢手艺术家的数据集,咱们将运用chart.getTopArtists端点。
检查Last.fmAPI文档,咱们能够观察到以下几点:
a.看起来只要一个实在的端点,而且实际上每个“端点”都是运用method参数指定的。
b.文档说此服务不需求身份验证。虽然起先看起来好像有些紊乱,但它告知咱们的是,咱们不需求身份验证为特定的Last.fm用户。假如您在此之上看,您会发现咱们的确需求供给咱们的API密钥。
c.API能够回来多种格局的成果-咱们将指定JSON,以便咱们能够运用咱们在大数据剖析Python中运用API的已知常识
在开端之前,请记住,当咱们宣布恳求时,咱们需求供给一个用户署理标头来标识自己。运用大数据剖析Python恳求库,咱们运用headers参数和标头字典来指定标头,如下所示:
咱们将从界说API密钥和用户署理开端(本教程中显现的API密钥不是真实的API密钥!)
接下来,咱们将导入恳求库,为标头和参数创立字典,然后宣布第一个恳求!
咱们的恳求回来的状况码为“200”,因而咱们知道成功了。
在检查恳求回来的数据之前,请考虑一下在本教程中咱们将宣布许多恳求的现实。在这些恳求中,许多功用将是相同的:
a.咱们将运用相同的URL
b.咱们将运用相同的API密钥
c.咱们将指定JSON作为咱们的格局。
d.咱们将运用相同的标题。
为了节省时刻,咱们将创立一个函数来为咱们完结许多作业。咱们将为该函数供给一个有用负载字典,然后将额定的键增加到该字典,并将其与其他选项一同传递以宣布恳求。
让咱们看一下该函数的外观:
正如咱们在初学者大数据剖析PythonAPI教程中所了解的那样,大多数API都以JSON格局回来数据,而且咱们能够运用大数据剖析Pythonjson模块以更易于了解的格局打印JSON数据。
让咱们从头运用jprint()在该教程中创立的函数,并打印来自API的呼应:
{
"artists":{
"@attr":{
"page":"1",
"perPage":"50",
"total":"2901036",
"totalPages":"58021"
},
"artist":[
{
"image":[
{
"#text":"lastfm-img2.akamaized.net/i/u/34s/2a96cbd8b46e442fc41c2b86b821562f.png",
"size":"small"
},
{
"#text":"lastfm-img2.akamaized.net/i/u/64s/2a96cbd8b46e442fc41c2b86b821562f.png",
"size":"medium"
},
{
"#text":"lastfm-img2.akamaized.net/i/u/174s/2a96cbd8b46e442fc41c2b86b821562f.png",
"size":"large"
},
{
"#text":"lastfm-img2.akamaized.net/i/u/300x300/2a96cbd8b46e442fc41c2b86b821562f.png",
"size":"extralarge"
},
{
"#text":"lastfm-img2.akamaized.net/i/u/300x300/2a96cbd8b46e442fc41c2b86b821562f.png",
"size":"mega"
}
],
"listeners":"1957174",
"mbid":"b7539c32-53e7-4908-bda3-81449c367da6",
"name":"LanaDelRey",
"playcount":"232808939",
"streamable":"0",
"url":"last.fm/music/Lana+Del+Rey"
},
{
"image":[
{
"#text":"lastfm-img2.akamaized.net/i/u/34s/2a96cbd8b46e442fc41c2b86b821562f.png",
"size":"small"
},
{
"#text":"lastfm-img2.akamaized.net/i/u/64s/2a96cbd8b46e442fc41c2b86b821562f.png",
"size":"medium"
},
{
"#text":"lastfm-img2.akamaized.net/i/u/174s/2a96cbd8b46e442fc41c2b86b821562f.png",
"size":"large"
},
{
"#text":"lastfm-img2.akamaized.net/i/u/300x300/2a96cbd8b46e442fc41c2b86b821562f.png",
"size":"extralarge"
},
{
"#text":"lastfm-img2.akamaized.net/i/u/300x300/2a96cbd8b46e442fc41c2b86b821562f.png",
"size":"mega"
}
],
"listeners":"588883",
"mbid":"",
"name":"BillieEilish",
"playcount":"35520548",
"streamable":"0",
"url":"last.fm/music/Billie+Eilish"
},
{
"image":[
{
"#text":"lastfm-img2.akamaized.net/i/u/34s/2a96cbd8b46e442fc41c2b86b821562f.png",
"size":"small"
},
{
"#text":"lastfm-img2.akamaized.net/i/u/64s/2a96cbd8b46e442fc41c2b86b821562f.png",
"size":"medium"
},
{
"#text":"lastfm-img2.akamaized.net/i/u/174s/2a96cbd8b46e442fc41c2b86b821562f.png",
"size":"large"
},
{
"#text":"lastfm-img2.akamaized.net/i/u/300x300/2a96cbd8b46e442fc41c2b86b821562f.png",
"size":"extralarge"
},
{
"#text":"lastfm-img2.akamaized.net/i/u/300x300/2a96cbd8b46e442fc41c2b86b821562f.png",
"size":"mega"
}
],
"listeners":"655052",
"mbid":"",
"name":"PostMalone",
"playcount":"34942708",
"streamable":"0",
"url":"last.fm/music/Post+Malone"
},
{
"image":[
{
"#text":"lastfm-img2.akamaized.net/i/u/34s/2a96cbd8b46e442fc41c2b86b821562f.png",
"size":"small"
},
{
"#text":"lastfm-img2.akamaized.net/i/u/64s/2a96cbd8b46e442fc41c2b86b821562f.png",
"size":"medium"
},
{
"#text":"lastfm-img2.akamaized.net/i/u/174s/2a96cbd8b46e442fc41c2b86b821562f.png",
"size":"large"
},
{
"#text":"lastfm-img2.akamaized.net/i/u/300x300/2a96cbd8b46e442fc41c2b86b821562f.png",
"size":"extralarge"
},
{
"#text":"lastfm-img2.akamaized.net/i/u/300x300/2a96cbd8b46e442fc41c2b86b821562f.png",
"size":"mega"
}
],
因为文字过多,没有写全,咱们能够参阅:
大数据剖析Python运用Last.fmAPI获取音乐数据aaa-cg/data/2307.html
toutiao/i6831728656679698948/