9. Clase de estrategia comercial
Esta página es la entrada de autodoc para las clases básicas de estrategia. Para notas de diseño y tutoriales, consulte:
Diseño:
design/10-live-trading-s1.3-architecture.mdGestión de estrategia:
manage_strategies/*Tutoriales prácticos:
tutorials/*
BaseStrategy
- class qteasy.BaseStrategy(*, name: str = '', description: str = '', stg_type: str = 'BASE', pars: Optional[Union[Parameter, List[Parameter], Dict[str, Parameter]]] = None, data_types: Optional[Union[DataType, List[DataType], Dict[str, DataType]]] = None, use_latest_data_cycle: Union[bool, List[bool], Dict[str, bool]] = False, window_length: Union[int, List[int], Dict[str, int]] = 270, opt_tag: int = 0, par_values: Optional[Union[Tuple[Any], List[Any]]] = None)[fuente]
Bases:
objectClase base abstracta para estrategias cuantitativas; estrategias concretas heredan de él e implementan la lógica de generación de señales.
Una estrategia completa suele tener tres partes: parámetros ajustables (
pars), declared historical data (data_types,window_length, etc.), andrealize()logic that turns data into signals. During runs, useget_pars()andget_data(); Operator analiza señales numéricas como instrucciones comerciales PT/PS/VS. Consulte los documentos «Estrategias comerciales y BaseStrategy» para conocer estrategias personalizadas y detalles de PT/PS/VS.Ejemplos
BaseStrategyes abstracto; implementar estrategias personalizadas mediante subclasificaciones. El siguiente ejemplo muestra una salida de tipo estable:>>> import qteasy as qt >>> qt.BaseStrategy.__name__ 'BaseStrategy'
- get_pars(*par_names)[fuente]
get the value of parameter by its name or id, alias as operator.par_name multiple parameters can be got at one time
- info(verbose: bool = False, status: bool = False, stg_id: Optional[str] = None, extra_info: Optional[str] = None) None[fuente]
Imprime toda la información relacionada y los atributos principales.
- Parámetros:
verbose (bool, default False) – Si imprimir detalles adicionales
status (bool, default False) – Si se debe imprimir el estado de ejecución de la estrategia
stg_id (str, default None) – Identificación de estrategia; Si no hay ninguno, imprima el nombre de la estrategia en su lugar.
extra_info (str, default None) – Texto adicional impreso después de la información principal y antes de los parámetros y datos.
- Tipo del valor devuelto:
None
- update_par_values(*par_values: Any, **kwargs: Any) None[fuente]
Actualizar rápidamente los valores de los parámetros de la estrategia
- Parámetros:
par_values (tuple, optional) – Valores de parámetros como una tupla en el orden de los parámetros; si los parámetros no están configurados, pase
kwargsen su lugarkwargs (dict) – Actualice parámetros específicos a través de un dict que asigna nombres a valores
- Tipo del valor devuelto:
None
GeneralStg
- class qteasy.GeneralStg(name: str = 'General', description: str = 'description of General strategy', **kwargs)[fuente]
Bases:
BaseStrategyClase de estrategia general: defina la lógica comercial completa y la salida de señal en
realize().Para obtener una descripción más detallada de la clase GeneralStg, consulte la documentación qteasy.
FactorSorter
- class qteasy.FactorSorter(name: str = 'Factor', description: str = 'description of factor sorter strategy', max_sel_count: float = 0.5, condition: str = 'any', lbound: float = -inf, ubound: float = inf, sort_ascending: bool = False, weighting: str = 'even', **kwargs)[fuente]
Bases:
BaseStrategy- Estrategia de selección de acciones FactorSorter, que determina la ponderación de cada selección de acciones en función de un filtrado y clasificación de factores de selección de acciones definidos por el usuario (tenga en cuenta que la estrategia FactorSorter
Las señales comerciales generadas están entre 0 y 1. Se recomienda establecer el tipo de señal en «PT»)
Este tipo de estrategia requiere que el usuario extraiga un factor de selección de acciones de los datos históricos y determine las señales comerciales para las acciones en la cartera después de clasificarlas según el tamaño del factor de selección de acciones. El usuario necesita calcular el factor de selección de acciones en el método darse cuenta(), y una vez que se calcula el factor, no es necesario que el usuario defina la siguiente lógica de clasificación y selección de acciones. La estrategia filtrará los factores que cumplen con los criterios en función de las condiciones predefinidas, clasificará los factores restantes, seleccionará un número específico de acciones de ellos y, finalmente, asignará ponderaciones o valores de señal en función de los valores de sus factores.
RuleIterator
- class qteasy.RuleIterator(name: str = 'Rule-Iterator', description: str = 'description of rule iterator strategy', allow_multi_par: bool = True, **kwargs)[fuente]
Bases:
BaseStrategyEstrategia de iterador de reglas: aplique la misma regla a todas las acciones sin distinción por acción.
RuleIteratorpuede aplicar diferentes parámetros por acción para la misma regla; por ejemplo, diferentes períodos MA por acción. Consulte los documentos qteasy para obtener más información sobre las clases de estrategia.Parámetros por recurso compartido: la transferencia
update_par_values({code: (p1, p2, ...), ...})with keys matchingshare_names; a positional tuple shares one runtime parameter set across shares (see RuleIterator in “Three Strategy Base Classes”). Usedefaultfor shares not listed explicitly;othersno es compatible.
10. Sin parámetros de política
Parameter define la semántica del tipo, rango y valor del parámetro de estrategia ajustable.
- class qteasy.Parameter(par_range, *, name: str = '', par_type=None, value=None)[fuente]
Objeto de parámetro ajustable (discreto, continuo, enumeración o matriz) que afecta los resultados de la estrategia.
- set_value(value)[fuente]
Establecer el valor del parámetro actual
- Parámetros:
value (any) – Valor a establecer; para enumeraciones, un valor de enumeración; para tipos discretos/continuos, int o float
- Muestra:
ValueError –
ValueErrorifvalueno está en el eje permitido
- update_par_range(new_range)[fuente]
Actualizar límites de parámetros
- Parámetros:
new_range (int, float, str or list or tuple of int, float, str) – Para
conti/discr, a length-2 list/tuple of lower/upper bounds; forenum, una lista/tupla de valores permitidos- Muestra:
ValueError –
ValueErrorsi el tipo de eje no es compatible