--- name: generate_taker_order kind: function lang: py domain: finance version: "1.0.0" purity: pure signature: "generate_taker_order(alpha: float, size_min: float, size_max: float, buy_prob: float, seed: int | None) -> dict" description: "Genera una market order de taker con tamano distribuido segun power-law (Pareto). Alpha bajo produce ordenes mas grandes (ballenas)." tags: [simulation, taker, power-law, montecarlo, finance, order-book, pendiente-usar] uses_functions: [] uses_types: [] returns: [] returns_optional: false error_type: "" imports: [numpy] params: - name: alpha desc: "exponente de la distribucion Pareto (rango tipico: 1.5-3.0). Menor alpha = colas mas pesadas y ordenes mas grandes." - name: size_min desc: "tamanio minimo de orden (ej: 1.0)" - name: size_max desc: "tamanio maximo de orden (clipping superior, ej: 100.0)" - name: buy_prob desc: "probabilidad de que la orden sea BUY en rango [0, 1] (ej: 0.5 para igual BUY/SELL)" - name: seed desc: "semilla para reproducibilidad (int o None). Si None, no deterministica." output: "dict con campos {'side': 'buy'|'sell', 'qty': float redondeado a 1 decimal}" tested: false tests: [] test_file_path: "" file_path: "python/functions/finance/finance.py" --- ## Ejemplo ```python order = generate_taker_order( alpha=2.0, size_min=1.0, size_max=100.0, buy_prob=0.5, seed=42, ) # {'side': 'buy', 'qty': 3.7} ``` ## Notas Funcion pura cuando se fija seed. Con seed=None el resultado es no deterministico. La distribucion Pareto con alpha=2 modela bien la distribucion empirica de tamaƱos de ordenes en mercados reales. `size_max` actua como techo (clipping) para evitar ordenes extremas. Retorna dict con keys: `side` ('buy' o 'sell') y `qty` (float redondeado a 1 decimal).