6. Tres clases base de estrategia: RuleIterator, FactorSorter, GeneralStg
Las estrategias personalizadas en qteasy generalmente heredan una de las tres clases base: RuleIterator for timing or single-rule iteration; FactorSorter for factor-based stock selection; GeneralStg para señales generales de múltiples activos o múltiples reglas.
6.1. Qué clase base usar
RuleIterator: Iteración de un solo instrumento o de una sola regla por período (por ejemplo, sincronización MA o MACD). Los insumos suelen ser series de precios; La salida es una señal de posición o escalar.⟦CÓDIGO0⟧⟦CÓDIGO1⟧⟦CÓDIGO2⟧⟦CÓDIGO3⟧⟦CÓDIGO4⟧, etc.GeneralStg: More flexible multi-asset, multi-rule, or custom I/O shapes whenRuleIterator/FactorSorterno son suficientes.
6.2. RuleIterator
Entrada/salida: normalmente recupera OHLCV a través de
get_data(dtype_id)and return a 1-D signal inrealize()(por ejemplo, posición de destino 0–1).Uso típico: cruces MA, signo de histograma MACD, etc.
Breve ejemplo (bosquejo lógico):
from qteasy import RuleIterator, Parameter
class MyTiming(RuleIterator):
def __init__(self):
super().__init__(pars=[Parameter('period', 20)], ...)
def realize(self):
close = self.get_data('close')
# 简单均线规则
return (close[-1] > close[-self.get_pars()['period']:].mean()).astype(float)
Parámetros de múltiples instrumentos (lectura requerida)
Parámetros por acción: Después
⟦CÓDIGO0⟧⟦CÓDIGO1⟧⟦CÓDIGO2⟧⟦CÓDIGO3⟧⟦CÓDIGO4⟧⟦CÓDIGO5⟧⟦CÓDIGO6⟧⟦CÓDIGO7 ⟧⟦CÓDIGO8⟧⟦CÓDIGO9⟧⟦CÓDIGO10⟧⟦CÓDIGO11⟧⟦CÓDIGO12⟧⟦CÓDIGO13⟧⟦CÓDIGO14⟧.Inicio de tupla/posicional: con múltiples recursos compartidos, el tiempo de ejecución utiliza un conjunto de parámetros compartido (único
_pars). Si pretendía parámetros por acción pero omitió un dict, la semántica puede divergir silenciosamente; las tuplas están bien cuando todos los recursos compartidos deben compartir valores iniciales y evolucionar juntos.**
⟦CÓDIGO0⟧⟦CÓDIGO1⟧⟦CÓDIGO2⟧⟦CÓDIGO3⟧⟦CÓDIGO4⟧⟦CÓDIGO5⟧⟦COD E6⟧⟦CÓDIGO7⟧⟦CÓDIGO8⟧⟦CÓDIGO9⟧⟦CÓDIGO10⟧⟦CÓDIGO11⟧⟦CÓDIGO12⟧Llave mágica: no utilice llaves no documentadas.
6.3. FactorSorter
Entrada/salida: obtenga datos de factores (rendimiento, volatilidad, etc.), valores de factor de retorno por acción en
realize(); the base class sorts bysort_ascendingand picks topmax_sel_countacciones.Atributos:
max_sel_count(selection count),sort_ascending(Verdadero = el más pequeño primero, Falso = el más grande primero), etc.
6.4. GeneralStg
Entrada/salida: Entradas flexibles personalizadas
DataTypey formas de matriz de salida; ponderaciones de múltiples activos, combinaciones de múltiples reglas, etc.Usar cuando: Lógica personalizada más allá de la simple selección de tiempo o factor.