469 KiB
469 KiB
In [1]:
import os
from pathlib import Path
import warnings
import pandas as pd
import numpy as np
import plotly.express as px
import plotly.graph_objects as go
import statsmodels.api as sm
from scipy.fftpack import fft
from statsmodels.tsa.stattools import adfuller
import MetaTrader5 as mt5
import sys
import os
import warnings
from pathlib import Path
# ---------------------------------------------------------------------------
# 1) SET PROJECT ROOT AND UPDATE PATH/WORKING DIRECTORY
# ---------------------------------------------------------------------------
project_root = Path.cwd().parent.parent # Adjust if your notebook is in notebooks/time_series
sys.path.append(str(project_root))
os.chdir(str(project_root))
warnings.filterwarnings("ignore")
# Import modules for data loading and feature engineering
from data.data_loader import get_data_mt5
from features.feature_engineering import add_all_ta_features
from features.labeling_schemes import calculate_future_returns
In [2]:
import MetaTrader5 as mt5
# Initialize connection to MetaTrader 5
if not mt5.initialize():
print("initialize() failed, error code =", mt5.last_error())
quit()
# Retrieve all available symbols
symbols = mt5.symbols_get()
# Print the names of all symbols
for symbol in symbols:
print(symbol.name)
# Shutdown MT5 connection
mt5.shutdown()
Out [2]:
EURUSD GBPUSD USDCHF USDJPY USDCAD AUDUSD AUDNZD AUDCAD AUDCHF AUDJPY CHFJPY EURGBP EURAUD EURJPY EURCHF EURNZD EURCAD GBPCHF GBPJPY CADCHF CADJPY GBPAUD GBPCAD GBPNZD NZDCAD NZDCHF NZDJPY NZDUSD USDSGD AUDSGD CHFSGD EURDKK EURHKD EURNOK EURPLN EURSEK EURSGD EURTRY EURZAR GBPDKK GBPNOK GBPSEK GBPSGD GBPTRY NOKJPY NOKSEK SEKJPY SGDJPY USDCNH USDCZK USDDKK USDHKD USDHUF USDMXN USDNOK USDPLN USDRUB USDSEK USDTHB USDTRY USDZAR AUS200 CHINA50 ES35 STOXX50 F40 HK50 IT40 JP225 UK100 US2000 US30 US500 USTEC XAGEUR XAGUSD XAUEUR XAUUSD XPDUSD XPTUSD XBRUSD XNGUSD XTIUSD BTCUSD BCHUSD ETHUSD LTCUSD DSHUSD AAPL.NAS ADBE.NAS ADI.NAS ADP.NAS AMAT.NAS AMGN.NAS AMZN.NAS AVGO.NAS BKNG.NAS BIIB.NAS CELG.NAS CHTR.NAS CMCSA.NAS CME.NAS COST.NAS CRON.NAS CSCO.NAS CSX.NAS CTSH.NAS EA.NAS EBAY.NAS EQIX.NAS FOX.NAS FOXA.NAS GILD.NAS GOOG.NAS INTC.NAS INTU.NAS ISRG.NAS KHC.NAS MAR.NAS MDLZ.NAS MSFT.NAS MU.NAS NFLX.NAS NVDA.NAS PEP.NAS PYPL.NAS QCOM.NAS REGN.NAS SBUX.NAS SHPG.NAS TFCF.NAS TFCFA.NAS TLRY.NAS TMUS.NAS TSLA.NAS TXN.NAS VRTX.NAS WBA.NAS ABBV.NYSE ABT.NYSE ACB.NYSE AXP.NYSE BA.NYSE BAC.NYSE BLK.NYSE BMY.NYSE C.NYSE CGC.NYSE CVS.NYSE CVX.NYSE DD.NYSE DIS.NYSE DWDP.NYSE DOW.NYSE GE.NYSE GS.NYSE HD.NYSE HON.NYSE IBM.NYSE JNJ.NYSE JPM.NYSE KO.NYSE LLY.NYSE LMT.NYSE MA.NYSE MCD.NYSE MMM.NYSE MO.NYSE MRK.NYSE MS.NYSE NKE.NYSE ORCL.NYSE PFE.NYSE PG.NYSE PM.NYSE SLB.NYSE SPOT.NYSE T.NYSE TWX.NYSE UNH.NYSE UNP.NYSE UPS.NYSE USB.NYSE V.NYSE VZ.NYSE WFC.NYSE WMT.NYSE XOM.NYSE XRPUSD XLMUSD EOSUSD DBA.NYSE EEM.NYSE EWH.NYSE EWW.NYSE EWZ.NYSE FXI.NYSE GDX.NYSE GDXJ.NYSE IEMG.NYSE LQD.NYSE MOO.NYSE MJ.NYSE RSX.NYSE SIL.NYSE UNG.NYSE URA.NYSE USO.NYSE VXX.NYSE VXXB.NYSE VYM.NYSE XLE.NYSE XLF.NYSE XLI.NYSE XLP.NYSE XLU.NYSE XOP.NYSE QQQ.NAS TLT.NAS XAUAUD DEO.NYSE NEE.NYSE AMT.NYSE BABA.NYSE BRK-B.NYSE TMO.NYSE LYFT.NAS TM.NYSE UBER.NYSE PINS.NYSE CA60 NETH25 SE30 SWI20 CHINAH SA40 NOR25 TecDE30 MidDE60 ADS.ETR ALV.ETR BAS.ETR BAYN.ETR BMW.ETR BEI.ETR CON.ETR 1COV.ETR DB1.ETR DTE.ETR EOAN.ETR FRE.ETR FME.ETR HEI.ETR HEN3.ETR IFX.ETR LHA.ETR MRK.ETR MUV2.ETR RWE.ETR SAP.ETR SIE.ETR VOW3.ETR VNA.ETR ANA.MAD ACX.MAD ACS.MAD AENA.MAD AMS.MAD SAB.MAD SAN.MAD BKT.MAD BBVA.MAD CABK.MAD CLNX.MAD CIE.MAD COL.MAD ENG.MAD ELE.MAD FER.MAD GRF.MAD IBE.MAD ITX.MAD IDR.MAD MAP.MAD MEL.MAD MRL.MAD NTGY.MAD REP.MAD TRE.MAD TEF.MAD VIS.MAD AC.PAR AIR.PAR AI.PAR ATO.PAR CS.PAR BNP.PAR EN.PAR CAP.PAR CA.PAR ACA.PAR BN.PAR DSY.PAR ENGI.PAR EL.PAR RMS.PAR KER.PAR LR.PAR OR.PAR MC.PAR ML.PAR ORA.PAR RI.PAR UG.PAR PUB.PAR RNO.PAR SAF.PAR SGO.PAR SAN.PAR SU.PAR GLE.PAR SW.PAR FP.PAR FR.PAR VIE.PAR DG.PAR VIV.PAR AALB.AMS ABN.AMS AGN.AMS AD.AMS ASML.AMS ASRNL.AMS GLPG.AMS HEIA.AMS INGA.AMS KPN.AMS NN.AMS PHIA.AMS RAND.AMS URW.AMS UNA.AMS VPK.AMS WKL.AMS III.LSE ADM.LSE AAL.LSE ANTO.LSE AHT.LSE ABF.LSE AML.LSE AZN.LSE AV.LSE BA.LSE BARC.LSE BDEV.LSE BATS.LSE BKG.LSE BP.LSE BLND.LSE BTA.LSE BNZL.LSE BRBY.LSE CCL.LSE CNA.LSE CCH.LSE CPG.LSE CRH.LSE DCC.LSE DGE.LSE DLG.LSE EZJ.LSE EXPN.LSE FRES.LSE GLEN.LSE GSK.LSE HLMA.LSE HL.LSE HSBA.LSE IAG.LSE IMB.LSE INF.LSE ITRK.LSE ITV.LSE JMAT.LSE JE.LSE KGF.LSE LAND.LSE LGEN.LSE LLOY.LSE LSE.LSE MKS.LSE MRO.LSE MNDI.LSE NG.LSE NXT.LSE OCDO.LSE FLTR.LSE PSON.LSE PSN.LSE PRU.LSE RB.LSE REL.LSE RTO.LSE RIO.LSE RR.LSE SGE.LSE SBRY.LSE SDR.LSE SMT.LSE SGRO.LSE SVT.LSE RDSB.LSE SN.LSE SMIN.LSE SKG.LSE STAN.LSE STJ.LSE TSCO.LSE ULVR.LSE UU.LSE VOD.LSE WTB.LSE WPP.LSE DRI.ETR ADV.ETR AIXA.ETR NDA.ETR BC8.ETR GBF.ETR BNR.ETR COK.ETR AFX.ETR CBK.ETR COP.ETR DBK.ETR DWNI.ETR DEZ.ETR DRW8.ETR ZIL2.ETR EVK.ETR EVT.ETR FRA.ETR FNTN.ETR G1A.ETR GFT.ETR HNR1.ETR HOT.ETR BOSS.ETR SDF.ETR KGX.ETR KCO.ETR KRN.ETR LXS.ETR M5Z.ETR MTX.ETR NEM.ETR NDX1.ETR PFV.ETR PSM.ETR QIA.ETR RHM.ETR RHK.ETR RRTL.ETR SZG.ETR SRT.ETR SGL.ETR WAF.ETR SZU.ETR SMHN.ETR SY1.ETR TEG.ETR TLX.ETR O2D.ETR TKA.ETR UN01.ETR UTDI.ETR WCH.ETR ZAL.ETR AF.PAR ALD.PAR ALO.PAR AKE.PAR BOL.PAR BVI.PAR CO.PAR CDI.PAR EDEN.PAR FGR.PAR FNAC.PAR MMB.PAR MAU.PAR RCO.PAR HO.PAR UBI.PAR VK.PAR VCT.PAR AKZA.AMS SBMO.AMS TOM2.AMS AUTO.LSE BHP.LSE CPI.LSE HMSO.LSE HAS.LSE IMI.LSE ICP.LSE JUP.LSE EMG.LSE PFC.LSE SRP.LSE TPK.LSE TLW.LSE ICAD.PAR JCDX.PAR FPE3.ETR NWO.ETR PAH3.ETR FUR.AMS WHA.AMS MTS.MAD ATST.LSE OMU.LSE ECMPA.AMS AMD.NAS AKAM.NAS ALGN.NAS LNT.NAS AAL.NAS AEP.NAS ANSS.NAS APA.NAS ADSK.NAS CHRW.NAS CDNS.NAS CDW.NAS CINF.NAS CTAS.NAS CPRT.NAS AAP.NYSE AES.NYSE AFL.NYSE A.NYSE APD.NYSE ALK.NYSE ALB.NYSE ARE.NYSE ALLE.NYSE ALL.NYSE AMCR.NYSE AEE.NYSE AIG.NYSE AWK.NYSE AMP.NYSE AME.NYSE APH.NYSE AON.NYSE AOS.NYSE APTV.NYSE ADM.NYSE ANET.NYSE AJG.NYSE AIZ.NYSE ATO.NYSE AZO.NYSE AVB.NYSE AVY.NYSE BKR.NYSE BLL.NYSE BK.NYSE BAX.NYSE BDX.NYSE BBY.NYSE BIO.NYSE BWA.NYSE BXP.NYSE BSX.NYSE BR.NYSE CPB.NYSE COF.NYSE CAH.NYSE KMX.NYSE CCL.NYSE CARR.NYSE CAT.NYSE CBRE.NYSE CE.NYSE CNC.NYSE CNP.NYSE CF.NYSE SCHW.NYSE CMG.NYSE CB.NYSE CHD.NYSE CI.NYSE CFG.NYSE CLX.NYSE CMS.NYSE CL.NYSE CMA.NYSE CAG.NYSE COP.NYSE ED.NYSE STZ.NYSE GLW.NYSE CTVA.NYSE CCI.NYSE CMI.NYSE DHI.NYSE DHR.NYSE DRI.NYSE DVA.NYSE DE.NYSE BFB.NYSE ACN.NYSE BF/B.NYSE DAL.NYSE XRAY.NAS DVN.NYSE DXCM.NAS FANG.NAS DLR.NYSE DFS.NYSE DG.NYSE DLTR.NAS D.NYSE DPZ.NYSE DOV.NYSE DTE.NYSE DUK.NYSE DXC.NYSE EMN.NYSE ETN.NYSE ECL.NYSE EIX.NYSE EW.NYSE EMR.NYSE ENPH.NAS ETR.NYSE EOG.NYSE EFX.NYSE EQR.NYSE ESS.NYSE EL.NYSE ETSY.NAS ES.NYSE EXC.NAS EXPE.NAS EXR.NYSE FFIV.NAS FAST.NAS FRT.NYSE FDX.NYSE FIS.NYSE FITB.NAS FE.NYSE FISV.NAS FLS.NYSE FMC.NYSE F.NYSE FTNT.NAS FTV.NYSE FBHS.NYSE FCX.NYSE IT.NYSE BEN.NYSE GD.NYSE GIS.NYSE GM.NYSE GPC.NAS GL.NYSE GPN.NYSE GWW.NYSE HAL.NYSE HBI.NYSE HIG.NYSE HAS.NAS HCA.NYSE HSIC.NAS HSY.NYSE HES.NYSE HPE.NYSE HLT.NYSE HOLX.NAS HRL.NYSE HST.NAS HWM.NYSE HPQ.NYSE HUM.NYSE HBAN.NAS HII.NYSE IEX.NYSE IDXX.NAS ITW.NYSE ILMN.NAS INCY.NAS IR.NYSE ICE.NYSE IP.NYSE IPG.NYSE IFF.NYSE IVZ.NYSE IPGP.NAS NI.NYSE IQV.NYSE IRM.NYSE J.NYSE JBHT.NAS SJM.NYSE JCI.NYSE JNPR.NYSE K.NYSE KEY.NYSE KEYS.NYSE KMB.NYSE KIM.NYSE KMI.NYSE KLAC.NAS KR.NYSE LB.NYSE LHX.NYSE LH.NYSE LRCX.NAS LW.NYSE LVS.NYSE LEG.NYSE LDOS.NYSE LEN.NYSE LNC.NYSE LYV.NYSE L.NYSE LOW.NYSE LUMN.NYSE LYB.NYSE MTB.NYSE MPC.NYSE MMC.NYSE MLM.NYSE MAS.NYSE MKC.NYSE MCK.NYSE MDT.NYSE MET.NYSE MTD.NYSE MGM.NYSE MCHP.NAS MAA.NYSE MHK.NYSE TAP.NYSE MNST.NAS MCO.NYSE MOS.NYSE MSI.NYSE MSCI.NYSE NDAQ.NAS NTAP.NAS NWL.NAS NEM.NYSE NWSA.NAS NWS.NAS NSC.NYSE NTRS.NAS NOC.NYSE NCLH.NYSE NOV.NYSE NRG.NYSE NUE.NYSE NVR.NYSE ORLY.NAS OXY.NYSE OMC.NYSE OKE.NYSE OTIS.NYSE PCAR.NAS PKG.NYSE PH.NYSE PAYX.NAS PAYC.NYSE PNR.NYSE PBCT.NAS PRGO.NYSE PSX.NYSE PNW.NYSE PNC.NYSE PPG.NYSE PPL.NYSE PFG.NAS PGR.NYSE PLD.NYSE PRU.NYSE PEG.NYSE PSA.NYSE PHM.NYSE PVH.NYSE PWR.NYSE DGX.NYSE RJF.NYSE RYN.NYSE O.NYSE REG.NAS RF.NYSE RSG.NYSE RMD.NYSE RHI.NYSE ROK.NYSE ROL.NYSE ROP.NYSE ROST.NAS RCL.NYSE SPGI.NYSE CRM.NYSE STX.NAS SEE.NYSE SRE.NYSE NOW.NYSE SPG.NYSE SLG.NYSE SNA.NYSE SO.NYSE LUV.NYSE SWK.NYSE STT.NYSE STE.NYSE SYK.NYSE SYF.NYSE SYY.NYSE TROW.NAS TPR.NYSE TGT.NYSE TEL.NYSE FTI.NYSE TDY.NYSE TFX.NYSE TER.NAS TXT.NYSE TJX.NYSE TT.NYSE TDG.NYSE TRV.NYSE TFC.NYSE TYL.NYSE TSN.NYSE UDR.NYSE ULTA.NAS UAA.NYSE UA.NYSE UAL.NAS URI.NYSE UHS.NYSE UNM.NYSE VLO.NYSE VTR.NYSE VRSN.NAS VFC.NYSE VTRS.NAS VNO.NYSE VMC.NYSE WRB.NYSE WAB.NYSE WM.NYSE WAT.NYSE WEC.NYSE WELL.NYSE WST.NYSE WU.NYSE WY.NYSE WHR.NYSE WMB.NYSE WLTW.NAS WYNN.NAS XEL.NAS XYL.NYSE YUM.NYSE ZBH.NYSE ZION.NAS ZTS.NYSE JKHY.NAS LKQ.NAS MKTX.NAS ODFL.NAS POOL.NAS QRVO.NAS RDWR.NAS SBAC.NAS SWKS.NAS SNPS.NAS TTWO.NAS TSCO.NAS TRMB.NAS VRSK.NAS ZBRA.NAS SE.NYSE SQ.NYSE RTX.NYSE SNAP.NYSE SNOW.NYSE SCCO.NYSE CVNA.NYSE BX.NYSE EPD.NYSE TDOC.NYSE RKT.NYSE PANW.NYSE W.NYSE KKR.NYSE NET.NYSE YUMC.NYSE MPLX.NYSE PCG.NYSE HUBS.NYSE EPAM.NYSE UI.NYSE GNRC.NYSE QS.NYSE CUK.NYSE ATUS.NYSE ET.NYSE TRU.NYSE HEI.NYSE INVH.NYSE SUI.NYSE ALLY.NYSE MKL.NYSE DT.NYSE ESTC.NYSE CRL.NYSE GDDY.NYSE SAM.NYSE ELAN.NYSE FICO.NYSE SMG.NYSE CCK.NYSE MPW.NYSE MOH.NYSE BRO.NYSE WPC.NYSE TREX.NYSE EQH.NYSE FDS.NYSE NLY.NYSE FNF.NYSE MTN.NYSE APO.NYSE WTRG.NYSE ELS.NYSE BAH.NYSE RPM.NYSE LII.NYSE DAR.NYSE WLK.NYSE TTC.NYSE BG.NYSE BFAM.NYSE GWRE.NYSE CPT.NYSE CCIV.NYSE LAD.NYSE RH.NYSE TWLO.NYSE ABNB.NAS AFRM.NAS ALNY.NAS AMED.NAS APPN.NAS AZPN.NAS BMRN.NAS BSY.NAS BYND.NAS CG.NAS CGNX.NAS CRWD.NAS CSGP.NAS CZR.NAS DBX.NAS DDOG.NAS DKNG.NAS DOCU.NAS ENTG.NAS ERIE.NAS EXAS.NAS EXPI.NAS FIVE.NAS FIVN.NAS FSLR.NAS FWONK.NAS GDRX.NAS GLPI.NAS IAC.NAS IBKR.NAS IEP.NAS KDP.NAS LAZR.NAS LBRDA.NAS LBRDK.NAS LOGI.NAS LPLA.NAS MASI.NAS MDB.NAS MORN.NAS MPWR.NAS MRNA.NAS MTCH.NAS NBIX.NAS NDSN.NAS NTRA.NAS NVAX.NAS OKTA.NAS OLED.NAS ON.NAS OPEN.NAS PCTY.NAS PEGA.NAS PENN.NAS PLUG.NAS PODD.NAS PTC.NAS PTON.NAS RGEN.NAS ROKU.NAS RPRX.NAS RUN.NAS SIRI.NAS SSNC.NAS TECH.NAS TTD.NAS WDAY.NAS WISH.NAS WMG.NAS Z.NAS ZG.NAS ZI.NAS ZM.NAS ZS.NAS MUX.NYSE BEST.NYSE QD.NYSE CIG.NYSE LYG.NYSE TTI.NYSE ABEV.NYSE BBAR.NYSE KOS.NYSE GNW.NYSE RIG.NYSE NAT.NYSE SAN.NYSE WTI.NYSE NOK.NYSE MITT.NYSE IVR.NYSE MFA.NYSE BRFS.NYSE BBD.NYSE SWN.NYSE TEF.NYSE ITUB.NYSE HMY.NYSE HLX.NYSE EXK.NYSE GCI.NYSE ARCO.NYSE VHC.NYSE CRK.NYSE GGB.NYSE GEO.NYSE DHT.NYSE AMRX.NYSE AIV.NYSE BKD.NYSE PHK.NYSE FSM.NYSE CX.NYSE KGC.NYSE TWO.NYSE SBS.NYSE AGRO.NYSE PBI.NYSE PBR.NYSE COTY.NYSE BW.NYSE AM.NYSE ADT.NYSE UMC.NYSE NVGS.NYSE BB.NYSE CDE.NYSE GEL.NYSE BDJ.NYSE AXL.NYSE AROC.NYSE TV.NYSE TWI.NYSE CMRE.NYSE DNOW.NYSE RYAM.NYSE RRC.NYSE GFI.NYSE PGRE.NYSE AR.NYSE INN.NYSE DRH.NYSE BCS.NYSE RWT.NYSE PUMP.NYSE SOL.NYSE RPAI.NYSE EGO.NYSE FBP.NYSE ESRT.NYSE FPI.NYSE TEVA.NYSE LXP.NYSE LBRT.NYSE HYLN.NYSE MGY.NYSE HYT.NYSE TALO.NYSE ARR.NYSE CYH.NYSE DB.NYSE ING.NYSE SHO.NYSE EC.NYSE CIM.NYSE BDN.NYSE SCM.NYSE CARS.NYSE CLDT.NYSE GMRE.NYSE SITC.NYSE AMX.NYSE MWA.NYSE SCS.NYSE EVRI.NYSE PBF.NYSE EDU.NYSE OI.NYSE CNX.NYSE YEXT.NYSE KAR.NYSE VLRS.NYSE USAC.NYSE IRT.NYSE RLJ.NYSE M.NYSE ABR.NYSE KRO.NYSE IGT.NYSE MUR.NYSE HTGC.NYSE AG.NYSE UE.NYSE MANU.NYSE SA.NYSE AMWL.NYSE CCJ.NYSE TAK.NYSE PDM.NYSE SM.NYSE VST.NYSE DBI.NYSE EQT.NYSE CCU.NYSE CLF.NYSE TPC.NYSE STNG.NYSE VALE.NYSE PTY.NYSE SBSW.NYSE GPK.NYSE GNL.NYSE SRG.NYSE DX.NYSE INFY.NYSE GTN.NYSE CVI.NYSE AKR.NYSE EQNR.NYSE SBH.NYSE TME.NYSE TECK.NYSE TGNA.NYSE TROX.NYSE BRX.NYSE KW.NYSE GOLD.NYSE CAL.NYSE FSK.NYSE MTW.NYSE CADE.NYSE AZUL.NYSE TPH.NYSE PSTG.NYSE PK.NYSE IMAX.NYSE FLR.NYSE OUT.NYSE AU.NYSE ATI.NYSE DK.NYSE HRB.NYSE CNK.NYSE ORI.NYSE RDN.NYSE EPRT.NYSE EB.NYSE BOX.NYSE MTDR.NYSE PEB.NYSE FLO.NYSE DAN.NYSE BSAC.NYSE STWD.NYSE LEVI.NYSE MD.NYSE CNO.NYSE DDD.NYSE BE.NYSE HOME.NYSE MX.NYSE HP.NYSE ELF.NYSE SKM.NYSE HPP.NYSE NOMD.NYSE FCPT.NYSE EQC.NYSE CWEN.NYSE HUN.NYSE ZTO.NYSE CC.NYSE PBA.NYSE GTY.NYSE SPCE.NYSE HMC.NYSE HSBC.NYSE AXTA.NYSE VIPS.NYSE AVTR.NYSE JEF.NYSE AEO.NYSE HR.NYSE CMC.NYSE BXMT.NYSE TRGP.NYSE AA.NYSE TMHC.NYSE LRN.NYSE JBGS.NYSE DEI.NYSE AAT.NYSE ASAN.NYSE AMH.NYSE MMI.NYSE STAG.NYSE CUZ.NYSE UNFI.NYSE JWN.NYSE ANF.NYSE JMIA.NYSE KBR.NYSE OMI.NYSE HGV.NYSE PLT.NYSE NIO.NYSE BTI.NYSE USFD.NYSE OHI.NYSE NCR.NYSE ARMK.NYSE GVA.NYSE EPC.NYSE CUBE.NYSE COLD.NYSE TX.NYSE OLN.NYSE ATGE.NYSE TDC.NYSE YELP.NYSE HOG.NYSE NSA.NYSE MAIN.NYSE RMAX.NYSE PD.NYSE UGI.NYSE KMT.NYSE VVI.NYSE JOE.NYSE PRG.NYSE HIW.NYSE SKX.NYSE LTC.NYSE BDC.NYSE HLF.NYSE BAM.NYSE NNN.NYSE BJ.NYSE LAZ.NYSE FR.NYSE AJRD.NYSE ENR.NYSE RVLV.NYSE GDOT.NYSE PAGS.NYSE ESNT.NYSE AMRC.NYSE SPR.NYSE KBH.NYSE EPR.NYSE NYT.NYSE SAH.NYSE KNX.NYSE CPRI.NYSE THC.NYSE ABM.NYSE SCI.NYSE NUS.NYSE REXR.NYSE THS.NYSE JBL.NYSE HASI.NYSE BIP.NYSE CIEN.NYSE FL.NYSE HXL.NYSE GEF.NYSE PFGC.NYSE FAF.NYSE DCI.NYSE UVV.NYSE TOL.NYSE AER.NYSE LPX.NYSE TRNO.NYSE KSS.NYSE XEC.NYSE BYD.NYSE GMED.NYSE BUD.NYSE SON.NYSE BOOT.NYSE ACM.NYSE KRC.NYSE ADC.NYSE EAT.NYSE UHT.NYSE ONTO.NYSE NEP.NYSE CUB.NYSE YETI.NYSE ORA.NYSE R.NYSE SXT.NYSE GKOS.NYSE BCO.NYSE PAG.NYSE EHC.NYSE DKS.NYSE EBS.NYSE CHWY.NYSE WGO.NYSE CPA.NYSE PLNT.NYSE GIB.NYSE NSP.NYSE H.NYSE AIN.NYSE WCC.NYSE NVS.NYSE CHGG.NYSE SPB.NYSE DIN.NYSE ASH.NYSE INGR.NYSE AN.NYSE LMND.NYSE DELL.NYSE CRI.NYSE MTH.NYSE ENS.NYSE NBR.NYSE ATHM.NYSE MTZ.NYSE BMI.NYSE DDS.NYSE BC.NYSE U.NYSE IDA.NYSE USNA.NYSE QTWO.NYSE ARW.NYSE HAE.NYSE EME.NYSE SHAK.NYSE AFG.NYSE IBP.NYSE OSK.NYSE SNX.NYSE RL.NYSE RGA.NYSE CNMD.NYSE THG.NYSE THO.NYSE PII.NYSE JBT.NYSE FCN.NYSE NVRO.NYSE MUSA.NYSE AGCO.NYSE EGP.NYSE AMG.NYSE RS.NYSE GPI.NYSE RNR.NYSE AYI.NYSE VAC.NYSE WSM.NYSE JLL.NYSE LEA.NYSE MSGS.NYSE HUBB.NYSE IIPR.NYSE INSP.NYSE WEX.NYSE MED.NYSE FVRR.NYSE VEEV.NYSE WSO.NYSE PEN.NYSE ALX.NYSE RNG.NYSE BURL.NYSE DECK.NYSE CHE.NYSE GHC.NYSE SHOP.NYSE MAN.NYSE MAC.NYSE TAL.NYSE SNDL.NAS TNXP.NAS TXMD.NAS GERN.NAS JFU.NAS VEON.NAS CRBP.NAS MARK.NAS NBEV.NAS NERV.NAS VSTM.NAS AGEN.NAS ABUS.NAS RIGL.NAS IFRX.NAS OVID.NAS CRNT.NAS WATT.NAS SELB.NAS GNPX.NAS MNKD.NAS TRVG.NAS VRAY.NAS OPK.NAS CPRX.NAS NYMT.NAS NCMI.NAS IZEA.NAS VYGR.NAS ARAY.NAS ADAP.NAS LXRX.NAS VXRT.NAS FRSX.NAS CERS.NAS VKTX.NAS AYRO.NAS WIMI.NAS XNET.NAS KNDI.NAS PRQR.NAS VYNE.NAS CNDT.NAS PTEN.NAS AYTU.NAS PGEN.NAS PLYA.NAS BNGO.NAS OCGN.NAS NNDM.NAS PSEC.NAS HLIT.NAS GEVO.NAS INO.NAS DTIL.NAS INSG.NAS GOSS.NAS PAA.NAS CODX.NAS EGAN.NAS FOLD.NAS PBYI.NAS PAGP.NAS ADVM.NAS SY.NAS INFN.NAS CRMD.NAS DVAX.NAS GOGO.NAS DOYU.NAS GLAD.NAS NMRK.NAS BCRX.NAS QIWI.NAS NDLS.NAS OSUR.NAS GLNG.NAS VRA.NAS UNIT.NAS CAMP.NAS CRIS.NAS SGMO.NAS SVC.NAS GPRO.NAS ALDX.NAS FOSL.NAS CWCO.NAS FCEL.NAS ERIC.NAS WKHS.NAS ALT.NAS LILA.NAS CLNE.NAS EOLS.NAS ATRA.NAS ANGI.NAS NAVI.NAS CHRS.NAS SSSS.NAS ZYXI.NAS MITK.NAS COMM.NAS SSRM.NAS MOMO.NAS SABR.NAS MVIS.NAS AVXL.NAS VIAV.NAS ROIC.NAS MDIV.NAS OCUL.NAS AGNC.NAS XBIT.NAS SPWH.NAS IHRT.NAS SWBI.NAS DENN.NAS GT.NAS CAN.NAS SBRA.NAS FLEX.NAS SVMK.NAS SLM.NAS ARCC.NAS AXGN.NAS NKTR.NAS SPTN.NAS MCRB.NAS GOOD.NAS MLCO.NAS MAT.NAS ACAD.NAS JBLU.NAS PCVX.NAS CLDX.NAS VREX.NAS CLSK.NAS WEN.NAS CONN.NAS NMIH.NAS LI.NAS CYTK.NAS SNDX.NAS EXEL.NAS ILPT.NAS CDXS.NAS ALVR.NAS QFIN.NAS LBTYK.NAS LBTYA.NAS SFM.NAS CARA.NAS BLMN.NAS FLWS.NAS ANDE.NAS HEAR.NAS NTNX.NAS KTOS.NAS OPI.NAS GPRE.NAS TSEM.NAS VUZI.NAS BLUE.NAS SBGI.NAS GIII.NAS MMYT.NAS ITCI.NAS CHEF.NAS PDCO.NAS WW.NAS PACB.NAS QURE.NAS PINC.NAS SNSR.NAS EH.NAS SSTI.NAS BLFS.NAS STOK.NAS GNTX.NAS NIU.NAS AY.NAS EVER.NAS GO.NAS BZUN.NAS URBN.NAS TCOM.NAS XP.NAS PFF.NAS RRGB.NAS TIGO.NAS ARCT.NAS FWONA.NAS SONO.NAS IRDM.NAS EDIT.NAS SANM.NAS ODP.NAS BLNK.NAS SLGN.NAS HALO.NAS CIBR.NAS AVT.NAS HAIN.NAS PGNY.NAS PLAY.NAS IONS.NAS CSIQ.NAS UPWK.NAS RVMD.NAS BHF.NAS VIR.NAS FROG.NAS BLDR.NAS MARA.NAS FIZZ.NAS LSCC.NAS WB.NAS MRVL.NAS ISTB.NAS STLD.NAS VTIP.NAS SFIX.NAS VCYT.NAS IUSB.NAS INGN.NAS TRIP.NAS SKYW.NAS TPIC.NAS AXSM.NAS UEIC.NAS HTHT.NAS PCH.NAS LPSN.NAS DOMO.NAS BBIO.NAS CEVA.NAS CAKE.NAS SEIC.NAS YNDX.NAS PRFT.NAS ARWR.NAS STNE.NAS SNEX.NAS RDFN.NAS BRKR.NAS HQY.NAS IUSV.NAS IDCC.NAS SMTC.NAS PLCE.NAS EHTH.NAS IXUS.NAS SRPT.NAS MRCY.NAS CAR.NAS SDGR.NAS NTLA.NAS RPD.NAS FATE.NAS SAGE.NAS MCHI.NAS POWI.NAS CROX.NAS SHY.NAS ALRM.NAS CRUS.NAS OLLI.NAS ACMR.NAS TNDM.NAS LITE.NAS CVAC.NAS PZZA.NAS AAXJ.NAS ITRI.NAS IUSG.NAS BPMC.NAS LAMR.NAS ACWI.NAS TXRH.NAS SKYY.NAS NTES.NAS AMBA.NAS BILI.NAS CDLX.NAS EMB.NAS SHV.NAS JACK.NAS RYAAY.NAS IEF.NAS BNTX.NAS AVAV.NAS CHKP.NAS DVY.NAS IRBT.NAS CRSP.NAS LECO.NAS VC.NAS QDEL.NAS NVCR.NAS IRTC.NAS CYBR.NAS SYNA.NAS PDD.NAS APPF.NAS EEFT.NAS NXST.NAS SLAB.NAS JOUT.NAS IBB.NAS FRPT.NAS JAZZ.NAS CBRL.NAS UTHR.NAS MKSI.NAS NXPI.NAS CASY.NAS TEAM.NAS BIDU.NAS TREE.NAS CHDN.NAS NICE.NAS SMH.NAS VONG.NAS SEDG.NAS WIX.NAS LULU.NAS CACC.NAS SOXX.NAS MSTR.NAS MELI.NAS ADAUSD HOOD.NAS XTZUSD DOGUSD UNIUSD BNBUSD DE40 MidDE50 DOTUSD LNKUSD MVRS.NAS MXL.NAS DBRG.NYSE XAUJPY XAUCHF XAUGBP XAGAUD PARA.NAS ADAG.NAS ADX.NYSE AHCO.NAS ADPT.NAS ADUS.NAS ADNT.NYSE ASIX.NYSE WMS.NYSE ADV.NAS AVK.NYSE ADN.NAS AEG.NYSE AEHR.NAS AMTX.NAS AENZ.NYSE AFYA.NAS AEM.NYSE BIRD.NAS AMR.NYSE ATEC.NAS PINE.NYSE ALTG.NYSE ASTE.NAS AZN.NAS ACLS.NAS AXS.NYSE AXON.NAS BBW.NYSE CNHI.NYSE CHI.NAS CWT.NYSE CBAN.NAS STK.NYSE CBU.NYSE CW.NYSE CTKB.NAS FHN.NYSE GME.NYSE GNK.NYSE GABC.NAS GSK.NYSE GRAB.NAS GRIN.NAS GRPN.NAS GRWG.NAS KEN.NYSE LXU.NYSE LU.NYSE MNDY.NAS PBT.NYSE RIVN.NAS RBLX.NYSE RKLB.NAS RCKT.NAS RY.NYSE SB.NYSE SGA.NAS SPNS.NAS SAR.NYSE SOFI.NAS STKL.NAS TFSL.NAS TSBK.NAS TKR.NYSE UPST.NAS URGN.NAS USIO.NAS VECO.NAS VET.NYSE VSCO.NYSE VNOM.NAS WERN.NAS SOLUSD AVXUSD KSMUSD GLMUSD MTCUSD ABEO.NAS FAX.NYSE AWP.NYSE ACP.NYSE AOD.NYSE RERE.NYSE AIKI.NAS ALRN.NAS AL.NYSE ATSG.NAS AIRS.NAS AIRG.NAS ANTE.NAS AKTX.NAS AKRO.NAS AKYA.NAS AHG.NAS ALG.NYSE AGI.NYSE ACI.NYSE ALC.NYSE ALEC.NAS ALRS.NAS ALEX.NYSE DOX.NAS AVD.NYSE AX.NYSE BHLB.NYSE BZFD.NAS LAW.NYSE CALX.NYSE CWST.NAS CASS.NAS SAVA.NAS CSTL.NAS CTRM.NAS CATY.NAS CATO.NYSE CVCO.NAS FUN.NYSE CELC.NAS CLS.NYSE CLBT.NAS CLRB.NAS CELH.NAS CELU.NAS CPAC.NYSE CENN.NAS CVE.NYSE CSR.NYSE COIN.NAS COUR.NYSE CRSR.NAS DAVE.NAS DAWN.NAS EKSO.NAS EEX.NYSE GAME.NAS EVO.NAS XGN.NAS XCUR.NAS EXLS.NAS EXFY.NAS EXPO.NAS XPRO.NYSE RACE.NYSE GMS.NYSE GSIT.NAS LAND.NAS GES.NYSE ICFI.NAS IHS.NYSE IGMS.NAS LGFa.NYSE SHEL.NYSE SHEN.NAS FOUR.NYSE SHG.NYSE SHLS.NAS SCVL.NAS SHBI.NAS SSTK.NYSE SHYF.NAS SITM.NAS BSRR.NAS SIFY.NAS SGHT.NAS SIG.NYSE SILC.NAS SIMO.NAS SAMG.NAS SMWB.NYSE SFNC.NAS STGW.NAS SLI.NYSE SMP.NYSE SXI.NYSE STN.NYSE SBLK.NAS SGU.NYSE GASS.NAS STLA.NYSE STEM.NYSE STEP.NAS SCL.NYSE STXS.NYSE SBT.NAS STRL.NAS STVN.NYSE THR.NYSE TDUP.NAS THRY.NAS TDW.NYSE TINV.NYSE TLYS.NYSE UL.NYSE VINC.NAS VINP.NAS BBIG.NAS VIOT.NAS ARKK.NYSE ARKF.NYSE IAU.NYSE XLV.NYSE XLK.NYSE XLY.NYSE BFH.NYSE OJ_H3 GRMN.NYSE AAVEUSD P911.ETR XWEL.NAS TXG.NAS WT.NYSE CECO.NAS EGHT.NAS EVRG.NAS INDY.NAS YINN.NYSE EWT.NYSE EWC.NYSE EPHE.NYSE EWY.NYSE RVTY.NYSE NVRI.NYSE BGC.NAS EG.NYSE ROP.NAS CDP.NYSE COO.NAS DASH.NAS LIN.NAS BYON.NYSE EXPD.NYSE SYRE.NAS RGS.NAS TLPH.NAS ARQ.NAS DAY.NYSE GRYP.NAS MTUS.NYSE DOC.NYSE TRAW.NAS OPM.PAR ABCB.NYSE GAP.NYSE Corn_K5 Wheat_K5 Sugar_K5 EURBBL_H5 EURSCA_H5 UST10Y_M5 UKGB_M5 ITB10Y_H5 Cocoa_K5 Cotton_K5 Sbean_K5 VIX_H5 JGB10Y_H5 UST30Y_M5 UST05Y_M5 EURBND_H5 DXY_H5 BRENT_K5 WTI_J5 OJ_K5 Coffee_K5 CURB.NYSE CBAN.NYSE PLTR.NAS DPZ.NAS XIFR.NYSE SGI.NYSE
True
In [7]:
# Initialize MetaTrader 5
if not mt5.initialize():
print("Failed to initialize MT5")
else:
SYMBOL = "BTCUSD" # Modify to analyze different assets
TIMEFRAME = mt5.TIMEFRAME_H4
N_BARS = 1000
df = get_data_mt5(symbol=SYMBOL, timeframe=TIMEFRAME, n_bars=N_BARS)
mt5.shutdown()
# Apply technical indicators and feature engineering
df = add_all_ta_features(df)
df = calculate_future_returns(df).dropna(subset=["future_returns"])
# Ensure indicator columns exist
available_features = df.columns.tolist()
selected_features = [col for col in ["close", "rsi_14", "macd", "stoch_%K", "volume"] if col in available_features]
df_selected = df[selected_features].dropna()
if not df_selected.empty:
fig = px.scatter_matrix(df_selected)
fig.show()
else:
print("No selected features are available in the dataset.")
# Basic Data Overview
print("\nDataset Info:")
print(df.info())
print("\nMissing Values:")
print(df.isnull().sum())
c:\Users\moham\miniconda3\envs\dl\Lib\site-packages\ta\trend.py:1030: FutureWarning: Series.__setitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To set a value by position, use `ser.iloc[pos] = value`
[Data output - unsupported data type map[string]interface {} for mime type application/vnd.plotly.v1+json]
Dataset Info:
<class 'pandas.core.frame.DataFrame'>
DatetimeIndex: 999 entries, 2024-09-14 08:00:00 to 2025-02-27 16:00:00
Data columns (total 94 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 open 999 non-null float64
1 high 999 non-null float64
2 low 999 non-null float64
3 close 999 non-null float64
4 tick_volume 999 non-null uint64
5 spread 999 non-null int32
6 real_volume 999 non-null uint64
7 volume_adi 999 non-null float64
8 volume_obv 999 non-null uint64
9 volume_cmf 999 non-null float64
10 volume_fi 999 non-null float64
11 volume_em 999 non-null float64
12 volume_sma_em 999 non-null float64
13 volume_vpt 999 non-null float64
14 volume_vwap 999 non-null float64
15 volume_mfi 999 non-null float64
16 volume_nvi 999 non-null float64
17 volatility_bbm 999 non-null float64
18 volatility_bbh 999 non-null float64
19 volatility_bbl 999 non-null float64
20 volatility_bbw 999 non-null float64
21 volatility_bbp 999 non-null float64
22 volatility_bbhi 999 non-null float64
23 volatility_bbli 999 non-null float64
24 volatility_kcc 999 non-null float64
25 volatility_kch 999 non-null float64
26 volatility_kcl 999 non-null float64
27 volatility_kcw 999 non-null float64
28 volatility_kcp 999 non-null float64
29 volatility_kchi 999 non-null float64
30 volatility_kcli 999 non-null float64
31 volatility_dcl 999 non-null float64
32 volatility_dch 999 non-null float64
33 volatility_dcm 999 non-null float64
34 volatility_dcw 999 non-null float64
35 volatility_dcp 999 non-null float64
36 volatility_atr 999 non-null float64
37 volatility_ui 999 non-null float64
38 trend_macd 999 non-null float64
39 trend_macd_signal 999 non-null float64
40 trend_macd_diff 999 non-null float64
41 trend_sma_fast 999 non-null float64
42 trend_sma_slow 999 non-null float64
43 trend_ema_fast 999 non-null float64
44 trend_ema_slow 999 non-null float64
45 trend_vortex_ind_pos 999 non-null float64
46 trend_vortex_ind_neg 999 non-null float64
47 trend_vortex_ind_diff 999 non-null float64
48 trend_trix 999 non-null float64
49 trend_mass_index 999 non-null float64
50 trend_dpo 999 non-null float64
51 trend_kst 999 non-null float64
52 trend_kst_sig 999 non-null float64
53 trend_kst_diff 999 non-null float64
54 trend_ichimoku_conv 999 non-null float64
55 trend_ichimoku_base 999 non-null float64
56 trend_ichimoku_a 999 non-null float64
57 trend_ichimoku_b 999 non-null float64
58 trend_stc 999 non-null float64
59 trend_adx 999 non-null float64
60 trend_adx_pos 999 non-null float64
61 trend_adx_neg 999 non-null float64
62 trend_cci 999 non-null float64
63 trend_visual_ichimoku_a 999 non-null float64
64 trend_visual_ichimoku_b 999 non-null float64
65 trend_aroon_up 999 non-null float64
66 trend_aroon_down 999 non-null float64
67 trend_aroon_ind 999 non-null float64
68 trend_psar_up 999 non-null float64
69 trend_psar_down 999 non-null float64
70 trend_psar_up_indicator 999 non-null float64
71 trend_psar_down_indicator 999 non-null float64
72 momentum_rsi 999 non-null float64
73 momentum_stoch_rsi 999 non-null float64
74 momentum_stoch_rsi_k 999 non-null float64
75 momentum_stoch_rsi_d 999 non-null float64
76 momentum_tsi 999 non-null float64
77 momentum_uo 999 non-null float64
78 momentum_stoch 999 non-null float64
79 momentum_stoch_signal 999 non-null float64
80 momentum_wr 999 non-null float64
81 momentum_ao 999 non-null float64
82 momentum_roc 999 non-null float64
83 momentum_ppo 999 non-null float64
84 momentum_ppo_signal 999 non-null float64
85 momentum_ppo_hist 999 non-null float64
86 momentum_pvo 999 non-null float64
87 momentum_pvo_signal 999 non-null float64
88 momentum_pvo_hist 999 non-null float64
89 momentum_kama 999 non-null float64
90 others_dr 999 non-null float64
91 others_dlr 999 non-null float64
92 others_cr 999 non-null float64
93 future_returns 999 non-null float64
dtypes: float64(90), int32(1), uint64(3)
memory usage: 737.5 KB
None
Missing Values:
open 0
high 0
low 0
close 0
tick_volume 0
..
momentum_kama 0
others_dr 0
others_dlr 0
others_cr 0
future_returns 0
Length: 94, dtype: int64
In [3]:
# Plot Raw Data
fig = px.line(df, x=df.index, y="close", title=f"Raw Closing Price Data for {SYMBOL}")
fig.show()[Data output - unsupported data type map[string]interface {} for mime type application/vnd.plotly.v1+json]
In [8]:
# Plot a subset of technical indicators
for indicator in selected_features:
if indicator in df.columns and indicator != "close":
fig = px.line(df, x=df.index, y=indicator, title=f"{indicator} Indicator for {SYMBOL}")
fig.show()In [9]:
# Define the list of indicators you want to test
indicators = ["rsi_14", "macd", "stoch_%K", "bollinger_bands", "ema_50", "sma_200"] # Add more indicators as needed
# Plot a subset of technical indicators
for indicator in selected_features:
if indicator in df.columns and indicator != "close":
fig = px.line(df, x=df.index, y=indicator, title=f"{indicator} Indicator for {SYMBOL}")
fig.show()
# Plot Future Returns
fig = px.line(df, x=df.index, y="future_returns", title=f"Future Returns for {SYMBOL}")
fig.show()[Data output - unsupported data type map[string]interface {} for mime type application/vnd.plotly.v1+json]
In [11]:
# Autocorrelation & Partial Autocorrelation (ACF & PACF)
def plot_acf_pacf(series, lags=30):
fig = sm.graphics.tsa.plot_acf(series.dropna(), lags=lags)
fig.show()
fig = sm.graphics.tsa.plot_pacf(series.dropna(), lags=lags)
fig.show()
plot_acf_pacf(df["close"])C:\Users\moham\AppData\Local\Temp\ipykernel_1008\1032030309.py:4: UserWarning: FigureCanvasAgg is non-interactive, and thus cannot be shown C:\Users\moham\AppData\Local\Temp\ipykernel_1008\1032030309.py:6: UserWarning: FigureCanvasAgg is non-interactive, and thus cannot be shown
In [12]:
# Rolling Mean & Standard Deviation
def plot_rolling_stats(series, window=50):
fig = go.Figure()
fig.add_trace(go.Scatter(x=series.index, y=series.rolling(window).mean(), name="Rolling Mean", line=dict(color='red')))
fig.add_trace(go.Scatter(x=series.index, y=series.rolling(window).std(), name="Rolling Std Dev", line=dict(color='blue')))
fig.update_layout(title="Rolling Mean & Standard Deviation", xaxis_title="Time", yaxis_title="Value")
fig.show()
plot_rolling_stats(df["close"])[Data output - unsupported data type map[string]interface {} for mime type application/vnd.plotly.v1+json]
In [13]:
# ADF Test (Stationarity Test)
def adf_test(series):
result = adfuller(series.dropna())
print("\nADF Statistic:", result[0])
print("p-value:", result[1])
if result[1] < 0.05:
print("The series is likely stationary.")
else:
print("The series is likely non-stationary.")
adf_test(df["close"])ADF Statistic: -1.866096850060274 p-value: 0.3481743770195106 The series is likely non-stationary.
In [3]:
# Fourier Transform for Cyclical Trends
def plot_fourier_transform(series, n_components=20):
series_values = series.dropna().values
fft_vals = np.abs(fft(series_values))
freqs = np.fft.fftfreq(len(series_values))
fig = px.line(x=freqs[:n_components], y=fft_vals[:n_components], title="Fourier Transform - Top Components",
labels={"x": "Frequency", "y": "Magnitude"})
fig.show()
plot_fourier_transform(df["close"])[Data output - unsupported data type map[string]interface {} for mime type application/vnd.plotly.v1+json]
In [4]:
# Lagged Features Correlation Matrix
def plot_lagged_correlation(df, col="close", max_lag=10):
lagged_df = pd.DataFrame({f"lag_{i}": df[col].shift(i) for i in range(1, max_lag+1)})
lagged_df["original"] = df[col]
corr_matrix = lagged_df.corr()
fig = px.imshow(corr_matrix, text_auto=True, title="Correlation Matrix of Lagged Features")
fig.show()
plot_lagged_correlation(df, col="close")
print(f"EDA Completed for {SYMBOL}! Use these insights to refine feature engineering and model selection.")[Data output - unsupported data type map[string]interface {} for mime type application/vnd.plotly.v1+json]
EDA Completed for BTCUSD! Use these insights to refine feature engineering and model selection.