#导入聚宽函数库
from jqdata import *
# 初始化函数,设定要操作的股票、基准等等
def initialize(context):
# 定义一个全局变量, 保存要操作的股票
# 002371(股票:北方华创)
g.security = '002371.XSHE'
# 设定沪深300作为基准
set_benchmark('000300.XSHG')
# 开启动态复权模式(真实价格)
set_option('use_real_price', True)
# 输出内容到日志 log.info()
log.info('初始函数开始运行且全局只运行一次')
# 过滤掉order系列API产生的比error级别低的log
# log.set_level('order', 'error')
### 股票相关设定 ###
# 股票类每笔交易时的手续费是:买入时佣金万分之三,卖出时佣金万分之三加千分之一印花税, 每笔交易佣金最低扣5块钱
set_order_cost(OrderCost(close_tax=0.001, open_commission=0.0003, close_commission=0.0003, min_commission=5), type='stock')
## 运行函数(reference_security为运行时间的参考标的;传入的标的只做种类区分,因此传入'000300.XSHG'或'510300.XSHG'是一样的)
# 开盘前运行
# run_daily(market_open, time='10:00')
run_daily(period,time='every_bar')
#定义开盘买入函数
# ''' 写一个策略,内容为在20180301买入一个股票,在20180321卖出一个股票。'''
# def market_open(context):
# date=context.current_dt.strftime("%Y-%m-%d")
# if date=='2018-03-01':
# order('002371.XSHE',100)
# if date=='2018-03-21':
# order('002371.XSHE',-100)
'''试着根据止损的例子实现止盈,即指当盈利达到一定幅度后下单卖出股票。'''
def period(context):
# 买入股票
order(g.security, 100)
# 获得股票持仓成本
cost=context.portfolio.positions['002371.XSHE'].avg_cost
# 获得股票现价
price=context.portfolio.positions['002371.XSHE'].price
# 计算收益率
ret=price/cost-1
# 打印日志
print('成本价:%s' % cost)
print('现价:%s' % price)
print('收益率:%s' % ret)
# 如果收益率高于0.02,即收益率达到20%则卖出股票,幅度可以自己调
if ret>0.02:
order_target('002371.XSHE',0)
print('触发止盈')
'''写一个自定义函数,功能是判断一个年份是否是闰年。
闰年定义为:普通年(不能被100整除的年份)能被4整除的为闰年。
(如2004年就是闰年,1999年不是闰年);
世纪年(能被100整除的年份)能被400整除的是闰年。
(如2000年是闰年,1900年不是闰年);【提示:利用取余运算(%)判断是否整除】'''
def runnian(a):
if a % 100 == 0 and a % 400 == 0:
print('%a 是世纪年'% a)
elif a % 100 != 0 and a % 4 == 0:
print('%a 是闰年'% a)
else:
print('%a 不是闰年'% a)
runnian(2004)
runnian(1999)
runnian(2000)
runnian(1900)
2024-08-01