当前位置:首页 » 股票买卖 » Python使用if语句买卖股票
扩展阅读
设计总院股票历史股价 2023-08-31 22:08:17
股票开通otc有风险吗 2023-08-31 22:03:12
短线买股票一天最好时间 2023-08-31 22:02:59

Python使用if语句买卖股票

发布时间: 2023-04-02 06:18:31

1. 怎么学习python量化交易

下面教你八步写个量化交易策略——单股票均线策略

1 确定策略内容与框架

若昨日收盘价高出过去20日平均价今天开盘买入股票
若昨日收盘价低于过去20日平均价今天开盘卖出股票

只操作一只股票,很简单对吧,但怎么用代码说给计算机听呢?

想想人是怎么操作的,应该包括这样两个部分

既然是单股票策略,事先决定好交易哪一个股票。

每天看看昨日收盘价是否高出过去20日平均价,是的话开盘就买入,不是开盘就卖出。每天都这么做,循环下去。

对应代码也是这两个部分

definitialize(context):
用来写最开始要做什么的地方
defhandle_data(context,data):
用来写每天循环要做什么的地方

2 初始化

我们要写设置要交易的股票的代码,比如 兔宝宝(002043)

definitialize(context):
g.security='002043.XSHE'#存入兔宝宝的股票代码

3 获取收盘价与均价

首先,获取昨日股票的收盘价

#用法:变量=data[股票代码].close
last_price=data[g.security].close#取得最近日收盘价,命名为last_price

然后,获取近二十日股票收盘价的平均价

#用法:变量=data[股票代码].mavg(天数,‘close’)
#获取近二十日股票收盘价的平均价,命名为average_price
average_price=data[g.security].mavg(20,'close')

4 判断是否买卖

数据都获取完,该做买卖判断了

#如果昨日收盘价高出二十日平均价,则买入,否则卖出
iflast_price>average_price:
买入
eliflast_price<average_price:
卖出

问题来了,现在该写买卖下单了,但是拿多少钱去买我们还没有告诉计算机,所以每天还要获取账户里现金量。

#用法:变量=context.portfolio.cash
cash=context.portfolio.cash#取得当前的现金量,命名为cash

5 买入卖出

#用法:order_value(要买入股票股票的股票代码,要多少钱去买)
order_value(g.security,cash)#用当前所有资金买入股票
#用法:order_target(要买卖股票的股票代码,目标持仓金额)
order_target(g.security,0)#将股票仓位调整到0,即全卖出

6 策略代码写完,进行回测

把买入卖出的代码写好,策略就写完了,如下

definitialize(context):#初始化
g.security='002043.XSHE'#股票名:兔宝宝
defhandle_data(context,data):#每日循环
last_price=data[g.security].close#取得最近日收盘价
#取得过去二十天的平均价格
average_price=data[g.security].mavg(20,'close')
cash=context.portfolio.cash#取得当前的现金
#如果昨日收盘价高出二十日平均价,则买入,否则卖出。
iflast_price>average_price:
order_value(g.security,cash)#用当前所有资金买入股票
eliflast_price<average_price:
order_target(g.security,0)#将股票仓位调整到0,即全卖出

现在,在策略回测界面右上部,设置回测时间从20140101到20160601,设置初始资金100000,设置回测频率,然后点击运行回测。

7 建立模拟交易,使策略和行情实时连接自动运行

策略写好,回测完成,点击回测结果界面(如上图)右上部红色模拟交易按钮,新建模拟交易如下图。 写好交易名称,设置初始资金,数据频率,此处是每天,设置好后点提交。

8 开启微信通知,接收交易信号

点击聚宽导航栏我的交易,可以看到创建的模拟交易,如下图。 点击右边的微信通知开关,将OFF调到ON,按照指示扫描二维码,绑定微信,就能微信接收交易信号了。

2. pythonif语句的用法例子

pythonif语句的用法例子:

与他上面的最近的还没有配对的if配对。余和渗

例如判断三角形的。

if((a+b>c)&&(a+c>b)&&(b+c>a))。

if((a==b)||(a=c)||(b=c))。

printf("是等腰三角行")。

含义

if-else的语句结构是前面的条件成立执行什么操作,则下面的棚简分支结构就不会被执行,若前面的条件不成立,否则做下面的。在Python中可以使用if else语句对条件竖脊进行判断,然后根据不同的结果执行不同的代码,这称为选择结构或者分支结构。

Python解释器易于扩展,可以使用C或C++(或者其他可以通过C调用的语言)扩展新的功能和数据类型。Python也可用于可定制化软件中的扩展程序语言。Python丰富的标准库,提供了适用于各个主要系统平台的源码或机器码。

3. 怎样用 Python 写一个股票自动买卖的程序

  • 方法一

    前期的数据抓取和分析可能python都写好了,所以差这交易指令接口最后一步。对于股票的散户,正规的法子是华宝,国信,兴业这样愿意给接口的券商,但貌似开户费很高才给这权利,而且只有lts,ctp这样的c++接口,没python版就需要你自己封装。

  • 方法二

    是wind这样的软件也有直接的接口,支持部分券商,但也贵,几万一年是要的。

  • 方法三

    鼠标键盘模拟法,很复杂的,就是模拟键盘鼠标去操作一些软件,比如券商版交易软件和大智慧之类的。

  • 方法四

    就是找到这些软件的关于交易指令的底层代码并更改,不过T+1的规则下,预测准确率的重要性高于交易的及时性,花功夫做数据分析就好,交易就人工完成吧

4. python if用法

Python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块。

Python程序语言指定任何非0和非空(null)值为true,0 或者 null为false。

Python 编程中 if 语句用于控制程序的执行。其中"判断条件"成立时(非零),则执行后面的语句,而执行内容可以多行,以缩进来区分表示同一范围。

else 为可选语句,当需要在条件不成立时执行内容则可以执行相关语句。

(1)简单的if语句:

在第1行中,可包含任何条件测试,而在紧跟在测试后面的缩进代码块中,可执行任何操作。如果条件测试的结果为True,Python就会执行紧跟在if语句后面的代码;否则Python将忽略这些代码。

(2)if-else语句

经常需要在条件测清旅试通过了时执行一个操作,并在没有通过时执行另一个操作;在这种情况下,可使用Python提供的if-else语句。if-else语句块类似于简单的if语句,但其中的else语句,让你能够指定条件测试未通过时要执行的操作。

(3)if-elif-else语句

经常需要检查超过两个的情形,为此可使用Python提供的if-elif-else结构。Python只执行if-elif-else结构中的一个代码块,它依次检查每个条件测试,直到遇到通过了的条件测试。测试通过后,Python将执行紧跟在它后面的代码,并跳过余下的测试。

条件测试:

(1)概念:

每条if语句的核心都是一个值为True或False的表达式,这种表达式被称为条件测试。Python根据条件测试的值为True还是False来决定是否执行if语句中的代码。如果条件测试的值为True,Python就执行紧跟在if语句后面的代码;如果为False,Python就忽略这些代码。

(2)检查是否相等:

通常情况下会用 “==”的左值和右值是否相等来判断程序是否继续答碧凳进行,会区分大小写也会用“!=” 来表示不相等继续进行,相等则忽略。

(3)检查多个条件:

and: 要检查是否两个条件都为True,可使用关键字and将两个条件测试合而为一;如果每个测试都通过了慧孙,整个表达式就为True;如果至少有一个测试没有通过,整个表达式就为False。

or: 关键字or也能够让你检查多个条件,但只要至少有一个条件满足,就能通过整个测试。仅当两个测试都没有通过时,使用or的表达式才为False。

(4)检查特定值是否包含在列表内:

要判断特定的值是否已包含在列表中,可使用关键字in。

(5)检查特定值是否不包含在列表内:

确定特定的值未包含在列表中很重要,可使用关键字not in。

(6)布尔表达式:

布尔表达式的结果要么为True,要么为False。

5. 问一个Python分析股票价格的问题......

你先把价格按日期排序之后变成一个list的话,比如:
price=[70,74, 73, 72, 71,75]
你可以这么办:
operations=[]
isLong=False
for i in range(len(price)-1):
if(not isLong):
if(price[i]<price[i+1]):
print "Go long on day " + str(i)
operations.append(-1);
isLong=True;
else:
operations.append(0);
else:
if(price[i]>price[i+1]):
print "Go short on day " + str(i)
operations.append(1);
isLong=False;
else:
operations.append(0);
if(isLong):
print "Go short on day " + str(len(price)-1)
operations.append(1)
else:
operations.append(0)
ProfitPerShare=0
for i in range(len(price)):
ProfitPerShare+=price[i]*operations[i]
print "Summary profit per share: "+str(ProfitPerShare)

这里面就是说,如果你是空仓,那么如果明天比今天高就买,否则明天买就比今天买更划算;如果你不空仓,那么如果明天比今天价低你就要清仓,否则明天卖就会更划算。然后用一个叫operations的list来记录你每天的操作,-1表示买,0表示没有,1表示卖,所以最后可以计算每股获得的收入price[i]*operations[i]的总和。

6. 怎样用 Python 写一个股票自动交易的程序

网址都没有给出怎么测试呢? 这个应该是服务器生成的token吧,可以urllib2抓一下,如果抓不到的话那么他可能用的js动态加载,这个得分析js源码了,如果他用了flash来算出这个值的(我记得酷狗就是这么做的),那么恭喜你,不能算出这个值了

7. Python的if 条件语句

Python 中用if语句进行条件判断;与Excel 中的if作用有些类似,具体的语句如下:

if 条件:

    结果

else:

    结果

下面我们来举例进行说明:

例1:年龄>=18岁,输出“成年了”;否则输出“未成年”

age = 16

if age >= 18:

    print("成年了")

else:

    print("未成年")

当存在两个以上条件时,可在if条件判断后,增加 elif(else if 的缩写)继续进行分支条件判断。

说明:分支条件判断的结果输出,当满足第一个条件时既停止后续判断并返回第一个结果;当满足第二个条件时既停止后续判断并返回第二个结果;以此类推,如果全部条件判弊渗断均不满足,则返回else的结果。

例2:年龄<18岁,“未成年”; 18岁 =<年龄<40岁,“青年”; 40岁 =<年龄<60岁,“中年”;年龄>=60岁,“老年”

age = 25

if age >= 60:

    print("老年")

elif age >= 40:

    print("中年")

elif age >=18:

    print("青年")

else:

    print("未成年")

注:第二个条件中 可以直接写 “age >=40”; 无需写成 40 =<age<60;因为当判断大盘第二个条件时,已经不满足第一个条件、即age !>=60(age < 60),所以“<60”部分可省略。第三个条件同理

条件分支的简单表达:三元表达式

我们将例1(:年龄>=18岁,输出“成年了”;否则输出“未成年”)改写为“三元表达式”

age = 59

result ="成年" if age >=18 else "未成年"

print(result)

注:仅有两个条件判断时,可使用三元表达式进行简写

例3:国籍=china ,输出“中国人”;否则输出“外国人”

nationality = "England"

result = "中国人" if nationality == "china" else "外国人"

print(result)

注:一个“=”代表赋值,“==”代表等于

例4:通过身份证号判断性别租郑脊(身份证号17位单号为男性,双号为女性)

id = "2308__________2642"

result = "女" if int(id[17]) % 2 == 0 else "男"

print(result)

注:id的类型为字符串,需要通过“int()”函数将其转换为整数; ”%”代表取余数,

“XX %  2  ==0  ” 代表XX除2余数为0即偶数丛旅.

8. 怎么用python计算股票

作为一个python新手,在学习中遇到很多问题,要善于运用各种方法。今天,在学习中,碰到了如何通过收盘价计算股票的涨跌幅。
第一种:
读取数据并建立函数:
import numpy as np
import matplotlib.pyplot as plt
from scipy.interpolate import spline
from pylab import *
import pandas as pd
from pandas import Series
a=pd.read_csv('d:///1.csv',sep=',')#文件位置

t=a['close']
def f(t):
s=[]
for i in range(1,len(t)):
if i==1:
continue
else:
s.append((t[i]-t[i-1])/t[i]*100)
print s
plot(s)

plt.show()
f(t)
第二种:
利用pandas里面的方法:
import pandas as pd

a=pd.read_csv('d:///1.csv')
rets = a['close'].pct_change() * 100
print rets

第三种:
close=a['close']
rets=close/close.shift(1)-1
print rets

总结:python是一种非常好的编程语言,一般而言,我们可以运用构建相关函数来实现自己的思想,但是,众所周知,python中里面的有很多科学计算包,里面有很多方法可以快速解决计算的需要,如上面提到的pandas中的pct_change()。因此在平时的使用中应当学会寻找更好的方法,提高运算速度。

9. 怎样用python处理股票

用Python处理股票需要获取股票数据,以国内股票数据为例,可以安装Python的第三方库:tushare;一个国内股票数据获取包。可以在网络中搜索“Python tushare”来查询相关资料,或者在tushare的官网上查询说明文档。

10. 怎样用 Python 写一个股票自动交易的程序

股票自动交易助手提供了一个 Python 自动下单接口,参考代码

#股票自动交易助手Python自动下单使用例子
#把此脚本和StockOrderApi.pyOrder.dll放到你自己编写的脚本同一目录

fromStockOrderApiimport*

#买入测试
#Buy(u"600000",100,0,1,0)

#卖出测试,是持仓股才会有动作
#Sell(u"000100",100,0,1,0)

#账户信息
print("股票自动交易接口测试")
print("账户信息")
print("--------------------------------")

arrAccountInfo=["总资产","可用资金","持仓总市值","总盈利金额","持仓数量"];
foriinrange(0,len(arrAccountInfo)):
value=GetAccountInfo(u"",i,0)
print("%s%f"%(arrAccountInfo[i],value))

print("--------------------------------")
print("")

print("股票持仓")
print("--------------------------------")
#取出所有的持仓股票代码,结果以','隔开的
allStockCode=GetAllPositionCode(0)
allStockCodeArray=allStockCode.split(',')
foriinrange(0,len(allStockCodeArray)):
vol=GetPosInfo(allStockCodeArray[i],0,0)
changeP=GetPosInfo(allStockCodeArray[i],4,0)
print("%s%d%.2f%%"%(allStockCodeArray[i],vol,changeP))

print("--------------------------------")