buy函数
调用方法:
context.buy(data, size, price, plimit, exectype, valid, tradeid)
释义:
context.buy(data, size, price, plimit, exectype, valid, tradeid): 该函数用于执行买入或做多操作,不能单独使用,只能在择时函数和风控函数里面调用。
参数:
参数 | 含义 | 详细内容 |
data | 买入的标的 | 可选参数,当不设置时,默认为第一个标的 |
size | 买入的标的数量 | 可选参数,当不设置时,则默认为条件配置中设置的size |
price | 买入的价格 | 可选参数,当不设置时,则对于股票,默认用第二天的开盘价下单,对于期货,则默认用当天的收盘价下单;当设置为自定义的价格时,则相当于限价单或止损单 |
plimit | 止损的价格 | 可选参数,默认为None,只有在下止损单时才需要设置,其他情况不需要设置该参数 |
exectype | 订单类型 | 可选参数,默认为市价单,可以有以下的选择类型: |
valid | 订单有效期 | 可选参数,用于设置订单的有效期,可以有以下的选择类型: - None:默认值,即订单下单后一般都会执行,除非因为现金不够被拒单
- datetime.datetime:订单在指定的时间之前有效,超过该时间则订单会被取消
- datetime.date:订单在指定的日期之前有效,超过该日期则订单会被取消
|
tradeid | 订单id | 默认为0,当订单状态需要更改时,可以通过该字段通知策略进行状态更改 |
注意事项:
1.对于A股市场,由于要求订单必须是100股的整数倍,所以如果想尽量接近真实交易情况,用户可以自行将size设置为100的整数倍,对于其他市场,则可能没有这方面的要求
示例:
def indicators(context):
context.sma = SMA(context.data.close, period=20)
def choose_stock(context):
context.symbol_list = ["600000.XSHG"]
def timing(context):
# 当收盘价上穿移动平均线时,买入100股
if context.data.close[0] > context.sma[0] and context.data.close[-1] < context.sma[-1]:
context.buy(size=100)
sell函数
调用方法:
context.sell(data, size, price, plimit, exectype, valid, tradeid)
释义:
context.sell(data, size, price, plimit, exectype, valid, tradeid): 该函数用于执卖出或做空操作,不能单独使用,只能在择时函数和风控函数里面调用。
参数:
参数 | 含义 | 详细内容 |
data | 卖出的标的 | 可选参数,当不设置时,默认为第一个标的 |
size | 卖出的标的数量 | 可选参数,当不设置时,则默认为条件配置中设置的size |
price | 卖出的价格 | 可选参数,当不设置时,则对于股票,默认用第二天的开盘价下单,对于期货,则默认用当天的收盘价下单;当设置为自定义的价格时,则相当于限价单或止损单 |
plimit | 止损的价格 | 可选参数,默认为None,只有在下止损单时才需要设置,其他情况不需要设置该参数 |
exectype | 订单类型 | 可选参数,默认为市价单,可以有以下的选择类型: |
valid | 订单有效期 | 可选参数,用于设置订单的有效期,可以有以下的选择类型: - None:默认值,即订单下单后一般都会执行,除非因为现金不够被拒单
- datetime.datetime:订单在指定的时间之前有效,超过该时间则订单会被取消
- datetime.date:订单在指定的日期之前有效,超过该日期则订单会被取消
|
tradeid | 订单id | 默认为0,当订单状态需要更改时,可以通过该字段通知策略进行状态更改 |
注意事项:
1.对于A股市场,由于要求订单必须是100股的整数倍,所以如果想尽量接近真实交易情况,用户可以自行将size设置为100的整数倍,对于其他市场,则可能没有这方面的要求
示例:
def indicators(context):
context.sma = SMA(context.data.close, period=20)
def choose_stock(context):
context.symbol_list = ["600000.XSHG"]
def timing(context):
# 当收盘价上穿移动平均线时,买入100股
if context.data.close[0] > context.sma[0] and context.data.close[-1] < context.sma[-1]:
context.buy(size=100)
# 当收盘价下穿移动平均线时,卖出100股
elif context.data.close[0] < context.sma[0] and context.data.close[-1] > context.sma[-1]:
if context.position:
context.sell(size=100)
close函数
调用方法:
context.close(data, size)
释义:
context.close(data, size): 该函数用于平仓操作,不能单独使用,只能在择时函数和风控函数里面调用。
参数:
参数 | 含义 | 详细内容 |
data | 平仓的标的 | 可选参数,当不设置时,默认为第一个标的 |
size | 平仓的标的数量 | 可选参数,当不设置时,则默认为条件配置中设置的size |
注意事项:
1.不管是做多还是做空,close都会以相反的方向进行平仓,在单个标的的情况下,直接用context.close()即可,如果有多个标的,则需要指定对应的标的,这时系统会默认将该标的的所有持仓都平仓,其他参数一般都不需要设置
示例:
def indicators(context):
context.sma = SMA(context.data.close, period=20)
def choose_stock(context):
context.symbol_list = ["600000.XSHG"]
def timing(context):
# 当收盘价上穿移动平均线时,买入100股
if context.data.close[0] > context.sma[0] and context.data.close[-1] < context.sma[-1]:
context.buy(size=100)
# 当收盘价下穿移动平均线时,全部平仓
elif context.data.close[0] < context.sma[0] and context.data.close[-1] > context.sma[-1]:
if context.position:
context.close()
order_target_size函数
调用方法:
context.order_target_size(data=None, target=0)
释义:
context.order_target_size(data=None, target=0): 该函数用于调仓操作,将仓位调整到目标持仓数量的仓位大小,不能单独使用,只能在择时函数和风控函数里面调用。
参数:
参数 | 含义 | 详细内容 |
data | 调仓的标的 | 可选参数,当不设置时,默认为第一个标的 |
target | 目标持仓数量 | 必选参数,即期望持仓的数量 |
注意事项:
1.当目标持仓数量大于当前已持仓数量时,则继续买入,直到达到目标持仓数量
2.当目标持仓数量小于当前已持仓的数量时,则卖出部分持仓,直到达到目标持仓数量
示例:
def indicators(context):
context.sma = SMA(context.data.close, period=20)
def choose_stock(context):
context.symbol_list = ["600000.XSHG"]
def timing(context):
# 当收盘价上穿移动平均线时,保持200持仓
if context.data.close[0] > context.sma[0] and context.data.close[-1] < context.sma[-1]:
context.order_target_size(target=200)
order_target_value函数
调用方法:
context.order_target_value(data=None, target=0.0, price=None)
释义:
context.order_target_value(data=None, target=0.0, price=None): 该函数用于调仓操作,将仓位调整到目标金额,不能单独使用,只能在择时函数和风控函数里面调用。
参数:
参数 | 含义 | 详细内容 |
data | 调仓的标的 | 可选参数,当不设置时,默认为第一个标的 |
target | 目标持仓金额 | 必选参数,即期望持仓的金额 |
price | 交易价格 | 可选参数,当不设置时,则默认按第二天的开盘价进行调仓 |
注意事项:
1.当目标持仓金额大于当前已持仓金额时,则继续买入,直到达到目标持仓金额
2.当目标持仓金额小于当前已持仓金额时,则卖出部分持仓,直到达到目标持仓金额
示例:
def indicators(context):
context.sma = SMA(context.data.close, period=20)
def choose_stock(context):
context.symbol_list = ["600000.XSHG"]
def timing(context):
# 当收盘价上穿移动平均线时,保持2000持仓金额
if context.data.close[0] > context.sma[0] and context.data.close[-1] < context.sma[-1]:
context.order_target_value(target=2000)
order_target_percent函数
调用方法:
context.order_target_percent(data=None, target=0.0)
释义:
context.order_target_percent(data=None, target=0.0): 该函数用于调仓操作,将仓位调整到当前总资产的目标比例金额,不能单独使用,只能在择时函数和风控函数里面调用。
参数:
参数 | 含义 | 详细内容 |
data | 调仓的标的 | 可选参数,当不设置时,默认为第一个标的 |
target | 资产占比 | 必选参数,即该标的持仓金额占总资产的占比,传入小数即可 |
注意事项:
1.当设置target为0.05时,假设总资产是10000元,则最终会通过调仓,使得标的的持仓金额为500元
示例:
def indicators(context):
context.sma = SMA(context.data.close, period=20)
def choose_stock(context):
context.symbol_list = ["600000.XSHG"]
def timing(context):
# 当收盘价上穿移动平均线时,保持5%的资产占比
if context.data.close[0] > context.sma[0] and context.data.close[-1] < context.sma[-1]:
context.order_target_percent(target=0.05)
提示:
本公司发布内容主要是教学代码写法,不构成投资建议,投资者据此操作,风险自担。市场有风险,投资需谨慎!