2019-02-17 16:10:03 +08:00
|
|
|
|
.. py:currentmodule:: hikyuu.trade_sys
|
2021-02-07 22:29:53 +08:00
|
|
|
|
.. highlight:: python
|
2019-02-17 16:10:03 +08:00
|
|
|
|
|
|
|
|
|
盈利目标策略
|
|
|
|
|
============
|
|
|
|
|
|
|
|
|
|
内建盈利目标策略
|
|
|
|
|
----------------
|
|
|
|
|
|
|
|
|
|
.. py:function:: PG_FixedPercent([p = 0.2])
|
|
|
|
|
|
|
|
|
|
固定百分比盈利目标,目标价格 = 买入价格 * (1 + p)
|
|
|
|
|
|
|
|
|
|
:param float p: 百分比
|
|
|
|
|
:return: 盈利目标策略实例
|
|
|
|
|
|
|
|
|
|
.. py:function:: PG_FixedHoldDays([days=5])
|
|
|
|
|
|
|
|
|
|
固定持仓天数盈利目标策略
|
|
|
|
|
|
|
|
|
|
:param int days: 允许持仓天数(按交易日算),默认5天
|
|
|
|
|
:return: 盈利目标策略实例
|
|
|
|
|
|
|
|
|
|
.. py:function:: PG_NoGoal()
|
|
|
|
|
|
|
|
|
|
无盈利目标策略,通常为了进行测试或对比。
|
|
|
|
|
|
|
|
|
|
:return: 盈利目标策略实例
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
自定义盈利目标策略
|
|
|
|
|
------------------
|
|
|
|
|
|
|
|
|
|
自定义盈利目标策略接口:
|
|
|
|
|
|
|
|
|
|
* :py:meth:`ProfitGoalBase.getGoal` - 【必须】获取目标价格
|
|
|
|
|
* :py:meth:`ProfitGoalBase._calculate` - 【必须】子类计算接口
|
|
|
|
|
* :py:meth:`ProfitGoalBase._clone` - 【必须】克隆接口
|
|
|
|
|
* :py:meth:`ProfitGoalBase._reset` - 【可选】重载私有变量
|
|
|
|
|
* :py:meth:`ProfitGoalBase.buyNotify` - 【可选】接收实际买入通知,预留用于多次增减仓处理
|
|
|
|
|
* :py:meth:`ProfitGoalBase.sellNotify` - 【可选】接收实际卖出通知,预留用于多次增减仓处理
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
盈利目标策略基类
|
|
|
|
|
----------------
|
|
|
|
|
|
|
|
|
|
.. py:class:: ProfitGoalBase
|
|
|
|
|
|
|
|
|
|
盈利目标策略基类
|
|
|
|
|
|
|
|
|
|
.. py:attribute:: name 名称
|
2020-07-15 00:23:48 +08:00
|
|
|
|
.. py:attribute:: to 设置或获取交易对象
|
|
|
|
|
.. py:attribute:: tm 设置或获取交易管理账户
|
2019-02-17 16:10:03 +08:00
|
|
|
|
|
|
|
|
|
.. py:method:: __init__(self[, name="ProfitGoalBase"])
|
|
|
|
|
|
|
|
|
|
初始化构造函数
|
|
|
|
|
|
|
|
|
|
:param str name: 名称
|
|
|
|
|
|
2020-07-15 00:23:48 +08:00
|
|
|
|
.. py:method:: get_param(self, name)
|
2019-02-17 16:10:03 +08:00
|
|
|
|
|
|
|
|
|
获取指定的参数
|
|
|
|
|
|
|
|
|
|
:param str name: 参数名称
|
|
|
|
|
:return: 参数值
|
|
|
|
|
:raises out_of_range: 无此参数
|
|
|
|
|
|
2020-07-15 00:23:48 +08:00
|
|
|
|
.. py:method:: set_param(self, name, value)
|
2019-02-17 16:10:03 +08:00
|
|
|
|
|
|
|
|
|
设置参数
|
|
|
|
|
|
|
|
|
|
:param str name: 参数名称
|
|
|
|
|
:param value: 参数值
|
|
|
|
|
:type value: int | bool | float | string
|
|
|
|
|
:raises logic_error: Unsupported type! 不支持的参数类型
|
|
|
|
|
|
|
|
|
|
.. py:method:: reset(self)
|
|
|
|
|
|
|
|
|
|
复位操作
|
|
|
|
|
|
|
|
|
|
.. py:method:: clone(self)
|
|
|
|
|
|
|
|
|
|
克隆操作
|
|
|
|
|
|
2020-07-15 00:23:48 +08:00
|
|
|
|
.. py:method:: get_goal(self, datetime, price)
|
2019-02-17 16:10:03 +08:00
|
|
|
|
|
|
|
|
|
【重载接口】获取盈利目标价格,返回constant.null_price时,表示未限定目标;返回0意味着需要卖出
|
|
|
|
|
|
|
|
|
|
:param Datetime datetime: 买入时间
|
|
|
|
|
:param float price: 买入价格
|
|
|
|
|
:return: 目标价格
|
|
|
|
|
:rtype: float
|
|
|
|
|
|
2020-07-15 00:23:48 +08:00
|
|
|
|
.. py:method:: buy_notify(self, trade_record)
|
2019-02-17 16:10:03 +08:00
|
|
|
|
|
|
|
|
|
【重载接口】交易系统发生实际买入操作时,通知交易变化情况,一般存在多次增减仓的情况才需要重载
|
|
|
|
|
|
|
|
|
|
:param TradeRecord trade_record: 发生实际买入时的实际买入交易记录
|
|
|
|
|
|
2020-07-15 00:23:48 +08:00
|
|
|
|
.. py:method:: sell_notify(self, trade_record)
|
2019-02-17 16:10:03 +08:00
|
|
|
|
|
|
|
|
|
【重载接口】交易系统发生实际卖出操作时,通知实际交易变化情况,一般存在多次增减仓的情况才需要重载
|
|
|
|
|
|
|
|
|
|
:param TradeRecord trade_record: 发生实际卖出时的实际卖出交易记录
|
|
|
|
|
|
|
|
|
|
.. py:method:: _calculate(self)
|
|
|
|
|
|
|
|
|
|
【重载接口】子类计算接口
|
|
|
|
|
|
|
|
|
|
.. py:method:: _reset(self)
|
|
|
|
|
|
|
|
|
|
【重载接口】子类复位接口,复位内部私有变量
|
|
|
|
|
|
|
|
|
|
.. py:method:: _clone(self)
|
|
|
|
|
|
|
|
|
|
【重载接口】子类克隆接口
|
|
|
|
|
|