-
Notifications
You must be signed in to change notification settings - Fork 8
Expand file tree
/
Copy pathsample_b.py
More file actions
81 lines (61 loc) · 1.88 KB
/
sample_b.py
File metadata and controls
81 lines (61 loc) · 1.88 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
from pyroboadvisor import PyRoboAdvisor
import pandas as pd
# Fecha actual normalizada (sin hora)
today = pd.Timestamp.now().normalize()
# Fecha de inicio
start_date = today - pd.DateOffset(years=7) #(7 años antes)
# Comversión de ambas fechas a formato YYYY-MM-DD
stoday = today.strftime("%Y-%m-%d")
sstart = start_date.strftime("%Y-%m-%d")
p={
"fecha_inicio": "2019-01-01",
"fecha_fin": stoday,
"money": 10_000,
"numberStocksInPortfolio": 10,
"orderMarginBuy": 0.005, # margen de ordenes de compra y venta
"orderMarginSell": 0.005, # margen de ordenes de compra y venta
"cabeza": 5,
"percentil": 90,
"seeds": 1000,
"har":1,
"hretorno":1,
"hrandom":1,
"ring_size": 252,
"multiploMantenimiento": 6,
"rlog_size": 22,
# "skip_days": 252,
"prediccion": 1,
"apalancamiento": 1.6,
# "random_seed": 12, # [0,1,2,3],
"key": "",
"email": "",
"b":True,
}
# pra=PyRoboAdvisor(p,1000,"2025-07-09",{
# "AAPL": 20,
# "MSFT": 20,
# "GOOGL": 20,
# })
if p["b"]:
p["rlog_size"] = [11,22,44]
from download_us_money_supply import MakerUsMoneySupply
mum = MakerUsMoneySupply("2018-01-01")
usms=[]
for meses in [6,12]:
for percentil in [10,20,30,40,50,60,70,80,90]:
usms.append(mum.get(meses,percentil).date2usms)
p["signoMultiplexado"]=list(range(len(usms)))
pra = PyRoboAdvisor(p)
pra.readTickersFromWikipedia()
# Remove PARA and FI from tickers
pra.tickers = [t for t in pra.tickers if t not in ["PARA","FI","MMC"]]
print(f"Tickers leídos: {len(pra.tickers)}")
# print(pra.tickers)
print(pra.marketName)
pra.completeTickersWithIB() # Completa los tickers de IB que no están en el SP500, para que pueda venderlos
pra.prepare() # Prepara los datos y la estrategia
if p["b"]:
pra.simulate(signoMultiplexado=usms)
else:
pra.simulate()
pra.automatizeOrders()