refactor(strategies): move JSON freezate sotto strategy_crypto + patch runner

- git mv strategies/{btc,eth}_*.json → src/strategy_crypto/strategy_crypto/strategies/
- Cancellata directory root strategies/ (ora package data del member strategy_crypto)
- I JSON sono inclusi nella wheel via force-include nel pyproject del member
- scripts/run_paper_trading.py:
  * Import paper_trading.* → strategy_crypto.backend
  * Default --strategies-dir letto da importlib.resources.files('strategy_crypto') / 'strategies'
  * PaperRepository(settings.strategy_crypto_db_path) + init_schema()
  * Rimosso Repository(settings.db_path).init_schema() (GA init non e' responsabilita' del paper)
- Verifica: importlib.resources trova i 2 JSON nel package

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Adriano Dal Pastro
2026-05-15 17:58:03 +00:00
parent 37bf64012b
commit 2b5da4d1fc
3 changed files with 11 additions and 10 deletions
@@ -0,0 +1,142 @@
{
"rules": [
{
"condition": {
"op": "and",
"args": [
{
"op": "gt",
"args": [
{
"kind": "indicator",
"name": "rsi",
"params": [
14
]
},
{
"kind": "literal",
"value": 70.0
}
]
},
{
"op": "gt",
"args": [
{
"kind": "indicator",
"name": "atr",
"params": [
14
]
},
{
"kind": "indicator",
"name": "sma",
"params": [
14
]
}
]
},
{
"op": "gt",
"args": [
{
"kind": "feature",
"name": "hour"
},
{
"kind": "literal",
"value": 9
}
]
},
{
"op": "lt",
"args": [
{
"kind": "feature",
"name": "hour"
},
{
"kind": "literal",
"value": 17
}
]
}
]
},
"action": "entry-short"
},
{
"condition": {
"op": "and",
"args": [
{
"op": "lt",
"args": [
{
"kind": "indicator",
"name": "rsi",
"params": [
14
]
},
{
"kind": "literal",
"value": 30.0
}
]
},
{
"op": "lt",
"args": [
{
"kind": "indicator",
"name": "atr",
"params": [
14
]
},
{
"kind": "indicator",
"name": "sma",
"params": [
14
]
}
]
},
{
"op": "gt",
"args": [
{
"kind": "feature",
"name": "hour"
},
{
"kind": "literal",
"value": 9
}
]
},
{
"op": "lt",
"args": [
{
"kind": "feature",
"name": "hour"
},
{
"kind": "literal",
"value": 17
}
]
}
]
},
"action": "entry-long"
}
]
}
@@ -0,0 +1,162 @@
{
"rules": [
{
"condition": {
"op": "and",
"args": [
{
"op": "gt",
"args": [
{
"kind": "indicator",
"name": "atr",
"params": [
14
]
},
{
"kind": "literal",
"value": 0.02
}
]
},
{
"op": "gt",
"args": [
{
"kind": "indicator",
"name": "realized_vol",
"params": [
20
]
},
{
"kind": "literal",
"value": 0.03
}
]
},
{
"op": "gt",
"args": [
{
"kind": "indicator",
"name": "sma",
"params": [
50
]
},
{
"kind": "indicator",
"name": "sma",
"params": [
200
]
}
]
}
]
},
"action": "entry-long"
},
{
"condition": {
"op": "and",
"args": [
{
"op": "lt",
"args": [
{
"kind": "indicator",
"name": "atr",
"params": [
14
]
},
{
"kind": "literal",
"value": 0.01
}
]
},
{
"op": "lt",
"args": [
{
"kind": "indicator",
"name": "realized_vol",
"params": [
20
]
},
{
"kind": "literal",
"value": 0.02
}
]
},
{
"op": "lt",
"args": [
{
"kind": "indicator",
"name": "sma",
"params": [
50
]
},
{
"kind": "indicator",
"name": "sma",
"params": [
200
]
}
]
}
]
},
"action": "entry-short"
},
{
"condition": {
"op": "or",
"args": [
{
"op": "crossover",
"args": [
{
"kind": "indicator",
"name": "rsi",
"params": [
14
]
},
{
"kind": "literal",
"value": 70.0
}
]
},
{
"op": "crossunder",
"args": [
{
"kind": "indicator",
"name": "rsi",
"params": [
14
]
},
{
"kind": "literal",
"value": 30.0
}
]
}
]
},
"action": "exit"
}
]
}