8. clase Operator
La clase Operator, utilizada para crear objetos Operator, el objeto principal de qteasy.
Operator es un contenedor de estrategias. Contiene una serie de estrategias comerciales, almacena los datos históricos requeridos por cada estrategia comercial y puede invocar todas las estrategias comerciales para generar señales comerciales. Al mismo tiempo, mezcla las señales generadas por todas las estrategias comerciales de acuerdo con las reglas guardadas para formar un conjunto final de señales comerciales, tal como el comportamiento de un comerciante en el comercio real.
Para crear un objeto Operator, debe proporcionar un conjunto de estrategias comerciales y establecer los modos de negociación y señalización del comerciante, que son los atributos más importantes del objeto Operator y juntos determinan el patrón de comportamiento del comerciante:.
- class qteasy.Operator(strategies: Optional[Union[str, BaseStrategy, type, list[Union[str, qteasy.strategy.BaseStrategy, type]]]] = None, *, name: Optional[str] = None, signal_type: str = 'pt', op_type: str = 'batch', group_merge_type: str = 'None', run_freq: str = 'd', run_timing: str = 'close')[fuente]
El objeto «comerciante» principal en qteasy, se utiliza para mantener un grupo de estrategias y generar señales comerciales en un cronograma unificado.
Operator es responsable de administrar uno o más grupos de estrategias, preparar y almacenar en caché los datos históricos necesarios para la ejecución, llamar a cada estrategia para generar señales de acuerdo con la frecuencia y el momento de ejecución, y fusionar señales en instrucciones comerciales finales de acuerdo con las reglas de fusión intragrupo/intergrupo. Se puede utilizar para realizar pruebas retrospectivas, optimización y operaciones en vivo. Para obtener detalles arquitectónicos como la relación entre Operator y Estrategia/Grupo y la única fuente de verdad para run_freq/run_timing, consulte la sección “Operator/Estrategia/Arquitectura de grupo” de la documentación.
- add_strategies(strategies: Union[str, list[Union[str, qteasy.strategy.BaseStrategy, type]]], run_freq: str = 'd', run_timing: str = 'close', **kwargs: Any)[fuente]
Agregue múltiples estrategias comerciales de estrategia al objeto Operator.
Con este método, no es posible modificar las propiedades básicas de una estrategia comercial mientras se agrega una estrategia comercial. Las estrategias de los parámetros de entrada pueden ser una lista o una cadena separada por comas. Los elementos de la lista pueden ser cadenas que representen los tipos de estrategias integradas o un objeto de estrategia específico. Las cadenas y los objetos de estrategia se pueden proporcionar como una combinación.
- Parámetros:
strategies (stg or list of str or list of Strategy) – El nombre de la estrategia comercial o del objeto de la estrategia comercial.
run_freq (str, optional) – run_freq es la frecuencia de ejecución de la estrategia; puede ser Ninguno, lo que significa que no se especifica ninguna frecuencia de ejecución.
run_timing (str, optional) – run_timing es el tiempo de ejecución de la estrategia; puede ser Ninguno, lo que significa que no se especifica ningún tiempo de ejecución.
**kwargs (Any) – Propiedades compartidas por las estrategias comerciales agregadas, como run_timing, run_freq, window_length, use_latest_data_cycle, freq, active_type, data_type_ids, etc. (pasadas a add_strategy).
- Tipo del valor devuelto:
None
Ejemplos
>>> op = Operator() >>> op.add_strategies(['dma', 'macd']) >>> op.strategies [RULE-ITER(DMA), RULE-ITER(MACD)]
- add_strategy(stg: Union[str, BaseStrategy, type, tuple, list, Any], run_freq: str = 'd', run_timing: str = 'close', **kwargs)[fuente]
Agregue una estrategia al objeto operador.
Si llama a este método para agregar una estrategia comercial a Operator, puede modificar o especificar las propiedades básicas de la estrategia comercial al mismo tiempo que la agrega.
- Parámetros:
stg (str or int or Strategy) – La estrategia comercial que se agregará, que también puede ser la identificación de la estrategia o el nombre de la estrategia comercial incorporada.
run_freq (str, Optional) – run_freq es la frecuencia de ejecución de la estrategia; puede ser Ninguno, lo que significa que no se especifica ninguna frecuencia de ejecución.
run_timing (str, Optional) – run_timing es el tiempo de ejecución de la estrategia; puede ser Ninguno, lo que significa que no se especifica ningún tiempo de ejecución.
kwargs – Cualquier atributo de estrategia válido se puede asignar directamente al agregar la estrategia. Debe especificar explícitamente el nombre del atributo a modificar, incluido - pars: dict o tuple, parámetros ajustables de la estrategia - opt_tag: int, etiqueta de optimización de la estrategia - stg_type: int, tipo de estrategia - par_count: int, número de parámetros de la estrategia - par_types: lista, tipos de parámetros de la estrategia - par_ranges: lista, rangos de parámetros de la estrategia - data_freq: str, frecuencia de los datos de la estrategia - window_length: int, longitud de la ventana de la estrategia - run_freq: str, muestreo de la estrategia frecuencia - data_types: lista, tipos de datos de estrategia - data_type_id: str, ID de tipo de datos de estrategia (usado para update_data_types) - freq: str o list o dict, frecuencia del tipo de datos (modificarlo reemplazará el DataType correspondiente) - active_type: str o list o dict, tipo de activo del tipo de datos (modificarlo reemplazará el DataType correspondiente) - grupo: str, tiempo de ejecución de estrategia - use_latest_data_cycle: bool, si la estrategia utiliza el último ciclo de datos
- Tipo del valor devuelto:
None
Ejemplos
>>> op = Operator() >>> op.add_strategy('dma', opt_tag=1, pars=(50, 10, 20)) >>> op.strategies [RULE-ITER(DMA)] >>> op.strategies[0].opt_tag 1 >>> op.strategies[0].par_values (50, 10, 20)
- property all_dynamic_dtypes
Devuelve la colección de tipos de datos dinámicos «heredados» en el operador; obsoleto, siempre devuelve vacío.
Ahora se accede a los datos del proceso de manera uniforme a través de get_data(“proc.xxx”) y ya no se declaran a través de DataType. Este atributo se mantiene solo por compatibilidad con la persona que llama y devuelve un dictado vacío.
- property all_strategy_data_types
Devuelve el conjunto de tipos de precios de prueba retrospectiva y tipos de datos del historial de listas comerciales para todas las estrategias del objeto operador del objeto.
- check_dynamic_data()[fuente]
Compruebe si el objeto operador contiene tipos de datos dinámicos (es decir, datos históricos que dependen de los resultados comerciales) para generar señales comerciales.
Si alguna estrategia usa get_data(“proc.xxx”) en realizar(), se considera que depende de los datos del proceso dinámico y debe usar la rama de backtesting dinámico.
- create_data_windows()[fuente]
Create data windows for each strategy and its data types. Also create data window indices for each strategy and its data types. Data window indices are created according to group schedules.
- disable_tracing()[fuente]
Deshabilite el seguimiento para todas las estrategias en el objeto Operator.
Después de deshabilitar el seguimiento, el objeto Operator no registrará información de depuración durante la ejecución, lo que mejorará la eficiencia del tiempo de ejecución.
- Tipo del valor devuelto:
None
- property empty
Compruebe si el operador contiene alguna política.
- enable_tracing()[fuente]
Habilite el seguimiento para todas las estrategias en el objeto Operator
Después de habilitar el seguimiento, el objeto Operator registrará más información de depuración durante la ejecución, lo que facilitará el análisis y la depuración posteriores.
- Tipo del valor devuelto:
None
- get_blender(group_name=None)[fuente]
Devuelve el mezclador de máscara larga/corta en el objeto operador. Si no se especifica nombre_grupo, genere el diccionario completo de Blender.
- Parámetros:
group_name (str) – Un nombre_grupo disponible
- Devuelve:
blender: si group_name es Ninguno, devuelve un diccionario que contiene los mezcladores para todos los valores de run_timing. Si group_name no es Ninguno, devuelve una lista que contiene los mezcladores para ese run_timing.
- Tipo del valor devuelto:
dict or list
- get_group(group_idx: Union[str, int]) Group[fuente]
Obtenga un objeto de grupo por group_idx, equivalente al método get_group_by_id.
- Parámetros:
group_idx (int or str) – El número de índice del grupo de estrategia.
- Tipo del valor devuelto:
Ejemplos
>>> op = Operator('dma, macd') >>> op.get_group(0) Group(name=Group_1, members=[RULE-ITER(DMA), RULE-ITER(MACD)]) >>> op.get_group_by_id('Group_1') Group(name=Group_1, members=[RULE-ITER(DMA), RULE-ITER(MACD)])
- get_group_by_id(group_id: Union[str, int]) Group[fuente]
Obtener un objeto de grupo por group_id
- Parámetros:
group_id (str or int) – El ID del nombre o el número de índice del grupo de estrategias.
- Tipo del valor devuelto:
Notas
1,当group_id为int时,返回的是序号为group_id的策略组 2,当group_id为str时,返回的是ID为group_id的组
Ejemplos
>>> op = Operator('dma, macd') >>> op.get_group_by_id(0) Group(name=Group_1, members=[RULE-ITER(DMA), RULE-ITER(MACD)]) >>> op.get_group_by_id('Group_1') Group(name=Group_1, members=[RULE-ITER(DMA), RULE-ITER(MACD)])
- get_max_window_length_by_dtype_id(dtype: str) int[fuente]
Calcule y devuelva la longitud máxima de la ventana para un determinado tipo de datos del objeto operador.
- Parámetros:
dtype (str) – El dtype_id del tipo de datos históricos a consultar.
- Tipo del valor devuelto:
int, operator对象中所有子策略中某个dtype最长的窗口长度
Dada una acción (una cadena) devuelve su índice correspondiente
- Parámetros:
share (str) – share es una cadena que representa el código de acciones.
- Devuelve:
Devuelve un número entero que representa el índice de la acción.
- Tipo del valor devuelto:
int
- get_signal_count(steps=None) int[fuente]
Obtenga la cantidad de señales comerciales generadas por todos los grupos de estrategias en el programa de ejecución actual.
- Parámetros:
steps (list of int, optional) – Si se proporcionan pasos, solo calcule la cantidad de señales comerciales para esos pasos. Si no hay ninguno, calcule la cantidad de señales comerciales para todos los pasos.
- Devuelve:
int
- Tipo del valor devuelto:
交易信号的数量
- get_stg(stg_id)[fuente]
Obtener un objeto de estrategia, otro uso de Operator[item].
- Parámetros:
stg_id (int or str) – Nombre o número de serie de la estrategia.
- Tipo del valor devuelto:
Strategy, 子策略
Notas
1, cuando stg_id es int, se devuelve la primera estrategia stg_id 2, cuando stg_id es str, se devuelve la estrategia con nombre stg_id 3, cuando stg_id no coincide, se devuelve la última estrategia
Ejemplos
>>> op = Operator('dma, macd') >>> op[0] RULE-ITER(DMA) >>> op['dma'] RULE-ITER(DMA) >>> op[999] RULE-ITER(MACD) >>> op['invalid_strategy_name'] UserWarning: No such strategy with ID (invalid_strategy_name)!
Ver también
- get_strategies_by_group(group_id: str)[fuente]
Devuelve el objeto de estrategia en el objeto operador, con el tiempo como parámetro opcional y, si se proporciona el tiempo, devuelve la estrategia comercial que utiliza ese tiempo.
- Parámetros:
group_id (str) – Un horario disponible, por defecto Ninguno
- get_strategy_by_id(stg_id)[fuente]
Obtener un objeto de estrategia, otro uso de Operator[item].
- Parámetros:
stg_id (int or str) – Nombre o número de serie de la estrategia.
- Tipo del valor devuelto:
Strategy, 子策略
Ver también
- get_strategy_count_by_group(group_id: str)[fuente]
Devuelve el número total de estrategias en el grupo de estrategias group_id
- get_strategy_id_by_group(group_id: str)[fuente]
Devuelve todos los ID de estrategia en el grupo de estrategia group_id
- get_strategy_id_pairs()[fuente]
Devuelve un generador que contiene todos los pares de estrategias e ID en la operación:
- Tipo del valor devuelto:
generator, 包含op中所有strategy和id对
Ejemplos
>>> op = Operator('dma, macd') >>> list(op.get_strategy_id_pairs()) [('dma', RULE-ITER(DMA)), ('macd', RULE-ITER(MACD))]
- get_strategy_names_by_group(group_id: str)[fuente]
Devuelve todos los nombres de estrategias en el grupo de estrategias group_id
- property group_ids
Devuelve el tipo de tiempo de ejecución de todos los hijos de estrategia del objeto operador.
- property group_merge_type
Devuelve el método de combinación de estrategias del objeto operador.
- property group_names
Devuelve el tipo de tiempo de ejecución de todos los hijos de estrategia del objeto operador.
- property groups
Devuelve todos los grupos de estrategias del operador, como un diccionario indexado por nombre del grupo de estrategias.
- property groups_by_index
Devuelve todos los grupos de estrategias del operador, como un diccionario indexado por índice de grupo de estrategias.
- info(verbose=False)[fuente]
Imprima información sobre el objeto Operator, incluidos los grupos de estrategias, las estrategias dentro de cada grupo, el método de combinación de estrategias, etc.
Si la estrategia contiene más información, también se imprimirán algunos detalles específicos de la estrategia.
- Parámetros:
verbose (bool, Default False) – Si se debe imprimir información detallada sobre las estrategias. Si es Verdadero, se imprimirá información detallada sobre las estrategias.
- is_ready(tell_me_why: bool = False, raise_error: bool = False) bool[fuente]
Compruebe si Operator cumple con los requisitos mínimos necesarios para generar señales comerciales.
Las condiciones típicas de preparación incluyen: se han montado las estrategias, cada grupo de estrategias ha configurado un mezclador y los campos clave, como los tipos de datos históricos y el cronograma de ejecución, están listos (en los pasos siguientes se completan verificaciones de validez más detalladas).
- Parámetros:
tell_me_why (bool, default False) – Si el objeto Operator no cumple con las condiciones de preparación, si se debe imprimir el motivo específico; no se imprime de forma predeterminada.
raise_error (bool, default False) – Si el objeto Operator no cumple con las condiciones de preparación, si se debe lanzar una excepción; no se lanza ninguna excepción de forma predeterminada.
- Tipo del valor devuelto:
bool, Operator对象是否已经准备好,可以开始生成交易信号
- property max_window_length
Calcule y devuelva la longitud de ventana más larga entre todas las subestrategias del objeto operador. Al preparar datos históricos para pruebas retrospectivas u optimización, utilícelos para asegurarse de que haya suficientes datos históricos para que se formen las estrategias.
- Tipo del valor devuelto:
int, operator对象中所有子策略中最长的窗口长度
- property op_data_freq: dict
Devuelve la frecuencia de muestreo de los datos requeridos por todos los subobjetos de estrategia del objeto operador. Proporciona este valor si data_freq es el mismo para todas las estrategias; de lo contrario, proporciona una lista ordenada.
- property op_data_type_count
Devuelve el número de tipos de datos históricos requeridos por el objeto operador para generar una lista de transacciones
- property op_data_type_ids
Devuelve los ID de los tipos de datos históricos requeridos por todos los subobjetos de estrategia del objeto operador.
- property op_data_types
Devuelve los objetos de tipo de datos históricos requeridos por todos los subobjetos de estrategia del objeto operador.
- property op_signal_index: Optional[Index]
Devuelve el índice en el que el objeto operador genera señales comerciales.
- property op_signal_types: list
Los tipos de señal de la lista comercial generada. Debido a que las señales comerciales generadas pueden ser producidas por diferentes grupos de estrategias, y diferentes grupos de estrategias tienen sus propios tipos de señales (PT/ST/VT), cada fila de señales comerciales puede tener un tipo de señal comercial diferente. Esta propiedad devuelve una lista que contiene la lista de señales de cada fila en op_signal_list.
- Tipo del valor devuelto:
list, 生成的交易清单的price_types,回测交易价格类型
- property op_type
Devuelve el tipo de ejecución del objeto operador.
- property opt_space_par
Devuelve la información del espacio de parámetros de las subestrategias que participan en la optimización, utilizada para construir
Space.Itere sobre el
opt_tag, aggregate fields such aspar_range/par_types, and output the(ranges, types)tuple, which can be used directly as input to constructSpacede cada subestrategia.- Devuelve:
Dos listas,
rangesandtypes, correspondientes a los rangos de valores y marcadores de tipo de cada dimensión de optimización involucrada, respectivamente.- Tipo del valor devuelto:
tuple[list, list]
- property opt_tags
Devuelve las etiquetas de tipo optimizadas de todas las estrategias. El valor de retorno de este atributo es una lista de las etiquetas de tipo optimizadas de todas las estrategias comerciales en orden.
- prepare_data_buffer(*, start_date: Union[str, Timestamp], end_date: Union[str, Timestamp], data_package: dict) None[fuente]
Prepare el búfer de datos y cargue todos los datos requeridos por todas las estrategias.
El búfer de datos es un diccionario cuyas claves son tipos de datos y cuyos valores son los DataFrames de datos correspondientes. Los parámetros de entrada incluyen las fechas de inicio y finalización del paquete de datos. Según estas dos fechas, el rango de tiempo correspondiente se divide de cada DataFrame en el paquete de datos y se guarda en el búfer de datos.
Al guardar el búfer de datos, también verifique y asegúrese de que los datos tengan suficiente retrospectiva para crear la ventana deslizante.
- Parámetros:
start_date (str or pd.Timestamp) – La fecha de inicio de los datos. El valor predeterminado es Ninguno, lo que significa que comienza desde la fecha inicial del paquete de datos.
end_date (str or pd.Timestamp) – La fecha de finalización de los datos. El valor predeterminado es Ninguno, es decir, hasta la fecha de finalización del paquete de datos.
data_package (dict[]) – Un diccionario que contiene todos los datos requeridos, con claves como tipos de datos y valores como los DataFrames de datos correspondientes. Por ejemplo: {“precio”: precio_df, “volumen”: volumen_df, …}. El índice de cada DataFrame son marcas de tiempo y las columnas son códigos de instrumentos diferentes.
- prepare_dynamic_data_buffer(*, trade_records: ndarray, trade_prices: ndarray, own_cashes: ndarray, available_cashes: ndarray, holding_positions: ndarray, available_positions: ndarray) None[fuente]
Interfaz reservada: los datos del proceso se han inyectado uniformemente a través de proc.*; este método ya no realiza ninguna lógica.
- prepare_running_schedule(start_date=None, end_date=None, **kwargs) None[fuente]
El cronograma de ejecución es el cronograma de ejecución de la estrategia y contiene información como el tiempo de ejecución y la frecuencia de cada estrategia.
Antes de ejecutar la estrategia, primero debe preparar el cronograma de ejecución. Este cronograma está determinado por los parámetros de tiempo de ejecución de cada grupo de estrategias en el operador. El programa de ejecución incluye N filas, donde cada fila representa un momento determinado. El número de columnas es igual al número de grupos de estrategias y cada celda indica si ese grupo de estrategias se ejecuta en ese momento: 0 significa no ejecutar, 1 significa ejecutar.
En este método, se establecerán los valores de los dos atributos siguientes: - group_schedules: un diccionario cuyas claves son nombres de grupos de estrategias y cuyos valores son el programa de ejecución para ese grupo - group_timing_table: un DataFrame que contiene los programas de ejecución de todos los grupos de estrategias
- Parámetros:
start_date (str or pd.Timestamp, optional) – Fecha de inicio. El valor predeterminado es Ninguno, lo que significa que comienza desde la fecha inicial de la fuente de datos.
end_date (str or pd.Timestamp, optional) – Fecha de finalización; el valor predeterminado es Ninguno, lo que significa hasta la fecha de finalización de la fuente de datos
kwargs (dict, optional) – Otros parámetros, incluidos los necesarios durante el proceso de generación de la serie temporal de operaciones, como la hora de inicio y finalización de las operaciones, etc. Consulte la descripción de los parámetros de la función qteasy.trading_util.trade_time_index() para obtener más detalles.
- Tipo del valor devuelto:
None
- property ready
Propiedad, una forma alternativa de escribir operator.is_ready()
- remove_strategy(id_or_pos: Optional[Union[str, int]] = None) None[fuente]
Elimina una estrategia comercial del objeto Operator, ya sea proporcionando la identificación de la estrategia o la posición de la estrategia en Operator.
- reset()[fuente]
Restablezca el estado de ejecución del objeto Operator para que pueda comenzar a generar señales comerciales nuevamente.
Notas
Este método restablece todos los datos de tiempo de ejecución del objeto Operator, incluidos cachés de datos históricos, vistas de ventanas de datos, índices de ventanas de datos, señales comerciales, etc. Después del reinicio, el objeto Operator puede comenzar a generar señales comerciales nuevamente.
Ejemplos
>>> op = Operator('dma, macd') >>> op.reset()
- run(config, datasource=None, logger=None)[fuente]
Ejecute el operador de acuerdo con los parámetros de configuración, admitiendo tanto el modo de comercio en vivo como el de prueba retrospectiva.
- Parámetros:
config (dict) – Ejecutar diccionario de parámetros de configuración
datasource (DataSource, optional) – Objeto de fuente de datos. El valor predeterminado es Ninguno, lo que significa que se utiliza la fuente de datos predeterminada global.
logger (Logger, optional) – Objeto registrador. El valor predeterminado es Ninguno, lo que significa que no se utiliza ningún registrador.
- Devuelve:
backtest_result: si el modo de ejecución es una prueba retrospectiva, devuelve el objeto de resultado de la prueba retrospectiva que contiene varios datos de resultados de la prueba retrospectiva. Si el modo de ejecución es comercio en vivo, no se devuelve ningún resultado.
- Tipo del valor devuelto:
BacktestResult, optional
- run_backtest(config, datasource=None, logger=None) dict[fuente]
Ejecute el operador en modo de prueba retrospectiva, utilizando datos históricos para probar la estrategia comercial y generar resultados de prueba retrospectiva.
- Parámetros:
config (dict) – Diccionario de parámetros de configuración de backtest.
datasource (DataSource, optional) – Objeto de fuente de datos. El valor predeterminado es Ninguno, lo que significa que se utiliza la fuente de datos predeterminada global.
logger (Logger, optional) – Objeto registrador. El valor predeterminado es Ninguno, lo que significa que no se utiliza ningún registrador.
- Devuelve:
backtest_result: objeto de resultado de la prueba retrospectiva, que contiene varios datos de resultados de la prueba retrospectiva.
- Tipo del valor devuelto:
BacktestResult
- run_live_trade(config, datasource=None, logger=None)[fuente]
Ejecute el operador en modo comercial en vivo.
- run_optimization(config, datasource=None, logger=None) dict[fuente]
Ejecute el operador en modo de optimización.
- run_prediction(config, datasource=None, logger=None) dict[fuente]
Ejecute el operador en modo de comercio en papel.
- run_strategies(steps: Iterable) Iterable[fuente]
Ejecute Operator y devuelva el resultado de la ejecución; la semántica está cerca de la forma de argumento de palabra clave pasada a
qt.run(self, ...).- Parámetros:
steps (Iterable) – Un objeto iterable que contiene los índices de los pasos a ejecutar.
- Campos:
generador ((signal_type, step_index, signal)) – Devuelve un generador que contiene la señal comercial para cada paso. signal_type: str, el tipo de señal del grupo de estrategias step_index: int, el índice de la señal del paso actual: np.ndarray, la señal comercial, una matriz de números cuyo significado difiere según diferentes modos de signal_type.
- run_strategy(step_index) Generator[Union[tuple[Any, int, Any], tuple[Optional[Any], int, Union[int, Any]]], Any, None][fuente]
Ejecute todos los grupos de estrategias para el paso actual y genere señales comerciales.
Esta función es una función generadora que devuelve las señales comerciales de cada grupo de estrategias en el paso actual.
- Parámetros:
step_index (int) – El índice del paso actual, que indica su posición en la programación de ejecución.
- Devuelve:
generador: devuelve un generador que contiene la señal comercial de cada grupo de estrategias en el paso actual. signal_type: str, el tipo de señal del grupo de estrategias step_index: int, el índice de la señal del paso actual: np.ndarray, la señal comercial, una matriz de números cuyo significado difiere según diferentes modos de signal_type.
- Tipo del valor devuelto:
(signal_type, step_index, signal)
- set_blender(blender: Union[str, list[str], dict[str, str]], group_id: Optional[str] = None)[fuente]
Entrada unificada para configurar las propiedades de Blender
- Parámetros:
blender (str or list of str or dict of str, optional) – Una expresión combinada válida para señales comerciales, cuando el grupo es Ninguno, puede aceptar una lista como argumento y establecer la expresión combinada para todos los grupos a la vez.
group_id (str, optional) – Cuando se especifica una identificación de grupo de estrategias, solo se actualiza ese grupo; cuando
None, all strategy groups are updated. In the latter case, ifblenderes una cadena, significa que todos los grupos usan la misma expresión; si es una lista, configure los elementos uno por uno en orden de grupo y, si la longitud es insuficiente, reutilice el último elemento.
- Tipo del valor devuelto:
None
- Muestra:
TypeError – Si el tipo_precio dado no es el correcto
Advertencia
Si el tipo de precio dado no existe, entonces dé una advertencia y devuelva el
Ejemplos
>>> op = Operator() >>> op.add_strategy('dma', run_timing='close') # 添加策略时指定run_timing,自动分配到第一个策略组Group_1 >>> op.add_strategy('trix', run_timing='close') # 添加策略时指定run_timing,自动分配到第一个策略组Group_1 >>> op.add_strategy('macd', run_timing='open') # 添加策略时指定run_timing,自动分配到第二个策略组Group_2 >>> op.add_strategy('bband', run_timing='open') # 添加策略时指定run_timing,自动分配到第二个策略组Group_2
>>> # 设置策略组1的混合模式 >>> op.set_blender('s0+s1', 'Group_1') >>> op.get_blender() >>> {'Group_1': ['+', 's1', 's2']}
>>> # 给所有的交易价格策略设置同样的混合表达式 >>> op.set_blender('s0 + s1') >>> op.get_blender() >>> {'Group_1': ['+', 's2', 's1'], 'Group_2': ['+', 's2', 's1']}
>>> # 通过一个列表给不同的策略组设置不同的混合表达式(策略组按顺序排列) >>> op.set_blender(['s1 + s2', 's3*s4'], None) >>> op.get_blender() >>> {'close': ['+', 's2', 's1'], 'open': ['*', 's4', 's3']}
- set_group_parameters(group: Union[str, int], run_timing: Optional[str] = None, run_freq: Optional[str] = None, signal_type: Optional[str] = None, blender_str: Optional[str] = None, **kwargs)[fuente]
Establecer o modificar los parámetros de un grupo de estrategias :param group: el ID del grupo de estrategias :type group: str :param run_timing: el tiempo de ejecución del grupo de estrategias; al modificar el tiempo de ejecución, modifique también el tiempo de ejecución de todas las estrategias comerciales en el grupo: escriba run_timing: str, opcional: param run_freq: la frecuencia de ejecución del grupo de estrategias; al modificar la frecuencia de ejecución, modifique el grupo de estrategias: escriba run_freq: str, opcional: param signal_type: el tipo de señal comercial del grupo de estrategias; el valor predeterminado es “PT”, es decir, porcentaje de posición objetivo :type signal_type: str, opcional :param blender_str: la expresión de combinación de señales comerciales del grupo de estrategias; puede ser una cadena o una lista de cadenas :type blender_str: str, opcional :param kwargs: otros parámetros; puede ser cualquier parámetro de grupo de estrategia válido, como nombre_grupo, tiempo de ejecución, frecuencia de ejecución, etc. :tipo kwargs: dict, opcional
- Tipo del valor devuelto:
None
- Muestra:
TypeError – Si el grupo no es de tipo cadena o entero.
ValueError – Si el grupo no existe o no se puede encontrar.
- set_opt_par_values(par_values)[fuente]
Punto de entrada del lado del optimizador: divida un vector de parámetros por cada subestrategia
opt_tagy vuelva a escribirlo.A diferencia de
set_parameter, this method targets an optimization workflow where “one vector corresponds to multiple strategy sub-blocks”; the caller must ensure thatpar_valuesis consistent with the flattening order ofopt_space_par.- Parámetros:
par_values (tuple) – La tupla de parámetros correspondiente al punto candidato actual del optimizador.
- Tipo del valor devuelto:
None
Notas
Llama internamente a
Strategy.update_par_values; aquí no se realizan comprobaciones de validez de parámetros.
- set_parameter(stg_id: Union[str, int], pars: Optional[Union[Parameter, tuple, list, dict]] = None, opt_tag: Optional[int] = None, data_types: Optional[Union[DataType, list[qteasy.datatypes.DataType], dict[str, qteasy.datatypes.DataType]]] = None, data_type_id: Optional[str] = None, window_length: Optional[Union[int, tuple[int, ...], list[int], dict[str, int]]] = None, use_latest_data_cycle: Optional[Union[bool, list[bool], tuple[bool, ...], dict[str, bool]]] = None, freq: Optional[Union[str, list[str], tuple[str, ...], dict[str, str]]] = None, asset_type: Optional[Union[str, list[str], tuple[str, ...], dict[str, str]]] = None, par_values: Optional[Union[tuple, list, dict[str, Any]]] = None, par_range: Optional[Union[tuple, list, dict[str, tuple]]] = None, run_freq: Optional[str] = None, run_timing: Optional[str] = None, **kwargs)[fuente]
Entrada unificada para configurar parámetros de política, stg_id identifica la política de miembro específica que acepta el parámetro, asigna el parámetro de política proporcionado en el parámetro de función a la política correspondiente
- Parámetros:
stg_id (str,) – El nombre (ID) de la política para ubicar la política que requiere modificación de parámetros según el ID.
pars (tuple or dict, optional) – Parámetros de política ajustables, en formato de tupla Al crear una política, puede establecer algunos de los parámetros de la política como «parámetros ajustables», el rango de valores de estos parámetros se puede ajustar en el proceso de optimización de la política. Al ajustar la combinación de estos parámetros, puede encontrar la combinación óptima de parámetros de política para encontrar la política óptima.
opt_tag (int, optional) – Tipo de optimización: 0: no participa en la optimización, no ajusta los parámetros ajustables de la estrategia durante el proceso de optimización de la estrategia 1: participa en la optimización, ajusta activamente los parámetros de la estrategia de acuerdo con el algoritmo de optimización durante el proceso de optimización de la estrategia para encontrar la mejor combinación de parámetros 2: participa en la optimización como un tipo de enumeración, solo selecciona la combinación óptima de parámetros de la combinación dada de parámetros durante el proceso de optimización de la estrategia
data_types (DataType or list of DataType or dict of str, optional) – El tipo de datos históricos necesarios para el cálculo de la estrategia; si se proporciona, actualice los parámetros para este tipo de datos.
data_type_id (str, optional) – El ID del tipo de datos históricos necesarios para el cálculo de la estrategia; proporcionar este ID indica que se están actualizando los parámetros para este tipo de datos.
window_length (int or list of int or tuple of int,) – Longitud de la ventana: la longitud de la ventana de la vista frontal calculada por la política
use_latest_data_cycle (bool or list of bool or tuple of bool,) – Si se debe utilizar el último período de datos.
freq (str or list of str or tuple of str or dict of str,) – La frecuencia del tipo de datos; si se proporciona, reemplace el elemento correspondiente con el nuevo DataType (dtype_id cambiará en consecuencia).
asset_type (str or list of str or tuple of str or dict of str,) – El tipo de activo del tipo de datos; si se proporciona, reemplace el elemento correspondiente con el nuevo DataType (dtype_id cambiará en consecuencia).
par_values (tuple or list,) – Los valores específicos de los parámetros de la estrategia.
par_range (tuple or list, or dict of tuples,) – El rango de valores de los parámetros de la estrategia.
run_freq (str, optional) – Si se proporciona este parámetro, modifique la frecuencia de ejecución de la estrategia. Cambiar la frecuencia de ejecución hará que la estrategia se elimine de su grupo de estrategias y se reasigne a un nuevo grupo de estrategias.
run_timing (str, optional) – Si se proporciona este parámetro, modifique el tiempo de ejecución de la estrategia. Cambiar el tiempo de ejecución hará que la estrategia se elimine de su grupo de estrategias y se reasigne a un nuevo grupo de estrategias.
kwargs (dict,) – Otros parámetros
Establezca la lista de instrumentos comerciales para el objeto operador.
- Parámetros:
shares (list of str) – Una lista de cadenas que representan la lista de símbolos de instrumentos comerciales.
- Tipo del valor devuelto:
None
- property strategies
Devuelve todos los objetos de estrategia del objeto operador como una lista.
- property strategy_count
Devuelve el número de todos los objetos de estrategia en el objeto operador.
- property strategy_group_count
Calcule el número de todos los grupos de estrategias comerciales en el objeto del operador
- Tipo del valor devuelto:
int, operator对象中所有交易策略组的数量
- property strategy_groups
Devuelve todos los grupos de estrategias del operador, como un diccionario indexado por nombre del grupo de estrategias.
- property strategy_ids
Devuelve los ID de todos los objetos de estrategia comercial en el objeto operador.
- view_blender(group: Optional[Union[str, int]] = None) Union[dict, str][fuente]
- Devuelve una versión legible por humanos del mezclador de máscara multihueca en el objeto operador, es decir, una versión más legible por humanos de la cadena del mezclador original.
Versión que reemplaza códigos de estrategia como s0 con ID de estrategia y formatos adecuados. Si no se proporciona el parámetro de grupo, devuelva la versión legible por Blender para todos los grupos de estrategias.
- Parámetros:
group (str) – Un ID o índice de grupo disponible
Clase grupal de estrategia grupal
- class qteasy.group.Group(name: str, signal_type: str = 'pt', blender: Optional[str] = None, run_freq: str = 'd', run_timing: str = 'close')[fuente]
Un grupo de estrategias que contiene múltiples miembros de estrategias, que definen propiedades como el tipo de señal de las estrategias de miembros, el método de combinación, la frecuencia de ejecución y el tiempo.
- add_strategy(strategy: BaseStrategy) None[fuente]
Añade una estrategia al grupo; la estrategia se convertirá en miembro del grupo.
La estrategia agregada debe ser una instancia de BaseStrategy y no debe ser miembro de este grupo; de lo contrario, se generará un ValueError. El group_id de la estrategia agregada se establecerá en el group_id de este grupo para que la estrategia pueda acceder a información sobre su grupo asociado.
- Parámetros:
strategy (BaseStrategy) – La instancia de estrategia para agregar al grupo; debe ser una instancia de una subclase de BaseStrategy.
- Tipo del valor devuelto:
None
- Muestra:
ValueError – Si la estrategia ya es miembro del grupo, genera ValueError indicando que la estrategia ya existe en el grupo.
TypeError – Si la estrategia no es una instancia de BaseStrategy, genera TypeError indicando un tipo de estrategia no válido.
- blend(signals: Iterable)[fuente]
Utilice el mezclador actual para combinar señales de estrategias del mismo grupo en un único conjunto de señales.
- clear_strategies()[fuente]
Borrar todas las estrategias del grupo; Todas las estrategias de miembros ya no serán miembros de este grupo.
- property group_id
El ID del grupo, igual que el nombre, por compatibilidad con Strategy.group_id.
- remove_strategy(strategy: BaseStrategy)[fuente]
Eliminar una estrategia del grupo; la estrategia ya no será miembro del grupo.
La estrategia eliminada debe ser miembro de este grupo; de lo contrario, se generará un ValueError. El group_id de la estrategia eliminada se establecerá en Ninguno para indicar que ya no pertenece a ningún grupo.
- Parámetros:
strategy (BaseStrategy) – La instancia de estrategia para eliminar del grupo; debe ser miembro del grupo.
- Tipo del valor devuelto:
None
- Muestra:
ValueError – Si la estrategia no es miembro del grupo, genera ValueError indicando que la estrategia no está en el grupo.
TypeError – Si la estrategia no es una instancia de BaseStrategy, genera TypeError indicando un tipo de estrategia no válido.