Witam wszystkich
Pierwszy raz piszę w Pythonie i nie wiem jak sensownie rozdzielić kod na pliki, będzie to program odpalany w terminalu który łączy się z api Tradingview pobiera dane instrumentów finansowych. Więc pobieram te dane i tworze tablice do której poszczególne X będą dokładać jakiś wynik obliczeń, tych X -ów może być w przyszłości dużo i mogą być dosyć rozbudowane więc chce je zrobić w osobnych plikach i importować jako funkcje..... ale chcąc przenieś X do innego pliku zakładam że muszę też tam dać tablice z danymi z api które potrzebuje do obliczeń ale odpala cały główny plik zamiast tylko tablice z funkcji jak to zrobić sensownie ?
from tvDatafeed import TvDatafeed, Interval
import numpy as np
from sklearn.ensemble import RandomForestRegressor
#username = 'YourTradingViewUsername'
#password = 'YourTradingViewPassword'
tv = TvDatafeed()
data_us10y = tv.get_hist(symbol='US10Y',exchange='TVC',interval=Interval.in_daily,n_bars=30)
data_bound10y = tv.get_hist(symbol='DE10Y',exchange='TVC',interval=Interval.in_daily,n_bars=30)
data_british10y = tv.get_hist(symbol='GB10Y',exchange='TVC',interval=Interval.in_daily,n_bars=30)
data_dax = tv.get_hist(symbol='DEU40',exchange='TVC',interval=Interval.in_daily,n_bars=30)
data_spx = tv.get_hist(symbol='SPX',exchange='TVC',interval=Interval.in_daily,n_bars=30)
data_dji = tv.get_hist(symbol='DJI',exchange='TVC',interval=Interval.in_daily,n_bars=30)
data_usoil = tv.get_hist(symbol='USOIL',exchange='TVC',interval=Interval.in_daily,n_bars=30)
data_gold = tv.get_hist(symbol='GOLD',exchange='TVC',interval=Interval.in_daily,n_bars=30)
data_cotton = tv.get_hist(symbol='COTTONH2024',exchange='ACTIVTRADES',interval=Interval.in_daily,n_bars=30)
#/////////////////////////////////////////
deu40_cena = data_dax['close']
deu40_symbol = data_dax['symbol'][0]
spxcena = data_spx['close']
spx_symbol = data_spx['symbol'][0]
djicena = data_dji['close']
dji_symbol = data_dji['symbol'][0]
usoilcena = data_usoil['close']
usoil_symbol = data_usoil['symbol'][0]
goldcena = data_gold['close']
gold_symbol = data_gold['symbol'][0]
cottoncena = data_cotton['close']
cotton_symbol = data_cotton['symbol'][0]
us10ycena = data_us10y['close']
us10y_symbol = data_us10y['symbol'][0]
bound10ycena = data_bound10y['close']
bound10y_symbol = data_bound10y['symbol'][0]
british10ycena = data_british10y['close']
british10y_symbol = data_british10y['symbol'][0]
# //////////////////////////////////////////////////////////// TABLICA INSTRUMENTÓW //////////////////////////////////////
instrumenty = {} # grupy: 1-indexy 2-towary 3-obligacje
instrumenty[deu40_symbol] = {'cena': deu40_cena, 'grupa': 1}
instrumenty[spx_symbol] = {'cena': spxcena, 'grupa': 1}
instrumenty[dji_symbol] = {'cena': djicena, 'grupa': 1}
instrumenty[usoil_symbol] = {'cena': usoilcena, 'grupa': 2}
instrumenty[gold_symbol] = {'cena': goldcena, 'grupa': 2}
instrumenty[cotton_symbol] = {'cena': cottoncena, 'grupa': 2}
instrumenty[us10y_symbol] = {'cena': us10ycena, 'grupa': 3}
instrumenty[bound10y_symbol] = {'cena': bound10ycena, 'grupa': 3}
instrumenty[british10y_symbol] = {'cena': british10ycena, 'grupa': 3}
# Extracting the first and last positions
us10y1 = data_us10y['close'][0]
us10y2 = data_us10y['close'][-1]
de10y1 = data_bound10y['close'][0]
de10y2 = data_bound10y['close'][-1]
gb10y1 = data_british10y['close'][0]
gb10y2 = data_british10y['close'][-1]
deu40_1 = data_dax['close'][0]
deu40_2 = data_dax['close'][-1]
spx1 = data_spx['close'][0]
spx2 = data_spx['close'][-1]
dji1 = data_dji['close'][0]
dji2 = data_dji['close'][-1]
usoil1 = data_usoil['close'][0]
usoil2 = data_usoil['close'][-1]
gold1 = data_gold['close'][0]
gold2 = data_gold['close'][-1]
cotton1 = data_cotton['close'][0]
cotton2 = data_cotton['close'][-1]
# tablice danych do kitchina ////////////////////////////////////////////////////////////
obligacje1 = [us10y1, de10y1, gb10y1] # średnia cen różnych obligacji miesiąc wcześniej ||
obligacje2 = [us10y2, de10y2, gb10y2] # średnia teraz
akcje1 = [spx1, dji1, deu40_1]
akcje2 = [spx2, dji2, deu40_2]
surowce1 = [usoil1, gold1, cotton1]
surowce2 = [usoil2, gold2, cotton2] # góra 1 , dół 0
tak wyglądają dane z api
# Utworzenie pustego słownika przed pętlą
koszykinstrumentow = {}
model_priorytetu_glowny = {}
model_przewidywania = {}
symbole = []
if grupainst == 0:
# Iterowanie po wszystkich kluczach z instrumenty i dodawanie ich do słownika jako listy
for klucz in instrumenty:
koszykinstrumentow[klucz] = [wskaznikK] # przykładowa wartość jako lista
model_priorytetu_glowny[klucz] = np.array([1, -1, 5, -1])
model_przewidywania[klucz] = np.array([[5], [6], [7], [8]])
symbole.append(klucz)
else:
# Iterowanie po kluczach z instrumenty, które mają odpowiednią wartość grupa i dodawanie ich do słownika jako listy
for klucz in instrumenty:
if instrumenty[klucz]['grupa'] == grupainst:
koszykinstrumentow[klucz] = [wskaznikK] # pierwszy x kitchin
model_priorytetu_glowny[klucz] = np.array([1, -1, 5, -1])
model_przewidywania[klucz] = np.array([[5], [6], [7], [8]])
symbole.append(klucz)
tutaj są tablice z których X będzie korzystać i je obliczać
#------------------------------------------------- 2 X ----------------------------------------------------------------------------
klucz_drugi_wskaznik = ['TVC:DEU40', 'TVC:SPX', 'TVC:DJI'] # symbole których dotyczy X
# Sprawdzenie
znaleziono = False
for wartosc in klucz_drugi_wskaznik: # if spr. czy symbole z X pasują do któregoś z symboli
if wartosc in symbole:
znaleziono = True
break
if znaleziono:
klucz_drugi_wskaznik_niezn = symbole #wszystkie symbole z kitchina
roznica = list(set(klucz_drugi_wskaznik_niezn) - set(klucz_drugi_wskaznik)) # roźnica pomiędzy tablicami
wynikos = 5 # import mechaniki x
# Iteruj przez listę kluczy
for klucz in klucz_drugi_wskaznik:
koszykinstrumentow[klucz].append(wynikos)
for kluczz in roznica:
koszykinstrumentow[kluczz].append(0)
else: # jeśli żaden nie pasuje to dajemy 0 dla kazdego
for kluczzz in symbole:
koszykinstrumentow[kluczzz].append(0)
#--------------------------------------------------------------------------------------------------------------------------------
to jest jeden z X który chce przenieść do innego pliku wysłać mu dane z tablic funkcją z głównego pliku a następnie całego X importować do głównego pliku jako funkcja i stosowałem ten zapis from tak że niby tylko jedną funkcję powinno czytać z głównego pliku ale i tak czytało cały główny plik