• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Podział pliku na mniejsze części (importy z innych plików)

Object Storage Arubacloud
0 głosów
143 wizyt
pytanie zadane 15 lutego w Python przez juuunior Początkujący (300 p.)

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

1 odpowiedź

0 głosów
odpowiedź 19 lutego przez RobertGelu Nowicjusz (160 p.)
edycja 19 lutego przez RobertGelu

Cześć,

Chcąc udzieilć Ci odpowiedzi pomyślałem o programach pakujących typu ZIP i pozostałe...

 Ale aby odpowiedzieć na Twoje pytanie raczej dogłębnłe, odnalazłem odpowiedź a przy okazji taki poradnik p. Wojciecha  "Dzielenie i łączenie plików – W jaki sposób tego dokonać? (Poradnik)"

 Jest on na poniższej stronie

https://wojciechpietrzak.com.pl/dzielenie-i-laczenie-plikow/

także nie jesteś pierwszą osobą która się chce dowiedzieć więcej... Pozdrawiam

Podobne pytania

0 głosów
1 odpowiedź 215 wizyt
pytanie zadane 23 czerwca 2023 w Python przez Mateusz Analityk Stary wyjadacz (13,710 p.)
+1 głos
2 odpowiedzi 466 wizyt
pytanie zadane 12 listopada 2022 w Python przez Giacomo Nowicjusz (200 p.)
0 głosów
2 odpowiedzi 373 wizyt
pytanie zadane 26 października 2020 w Python przez lucyliu Początkujący (370 p.)

92,579 zapytań

141,429 odpowiedzi

319,657 komentarzy

61,962 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...