Improved readme and added some customisation options in correlation calculation
This commit is contained in:
+48
-3
@@ -8,6 +8,29 @@ class MT5:
|
||||
A class to connect to and interface with MetaTrader 5
|
||||
"""
|
||||
|
||||
# Timeframes
|
||||
TIMEFRAME_M1 = mt5.TIMEFRAME_M1
|
||||
TIMEFRAME_M2 = mt5.TIMEFRAME_M2
|
||||
TIMEFRAME_M3 = mt5.TIMEFRAME_M3
|
||||
TIMEFRAME_M4 = mt5.TIMEFRAME_M4
|
||||
TIMEFRAME_M5 = mt5.TIMEFRAME_M5
|
||||
TIMEFRAME_M6 = mt5.TIMEFRAME_M6
|
||||
TIMEFRAME_M10 = mt5.TIMEFRAME_M10
|
||||
TIMEFRAME_M12 = mt5.TIMEFRAME_M10
|
||||
TIMEFRAME_M15 = mt5.TIMEFRAME_M15
|
||||
TIMEFRAME_M20 = mt5.TIMEFRAME_M20
|
||||
TIMEFRAME_M30 = mt5.TIMEFRAME_M30
|
||||
TIMEFRAME_H1 = mt5.TIMEFRAME_H1
|
||||
TIMEFRAME_H2 = mt5.TIMEFRAME_H2
|
||||
TIMEFRAME_H3 = mt5.TIMEFRAME_H3
|
||||
TIMEFRAME_H4 = mt5.TIMEFRAME_H4
|
||||
TIMEFRAME_H6 = mt5.TIMEFRAME_H6
|
||||
TIMEFRAME_H8 = mt5.TIMEFRAME_H8
|
||||
TIMEFRAME_H12 = mt5.TIMEFRAME_H12
|
||||
TIMEFRAME_D1 = mt5.TIMEFRAME_D1
|
||||
TIMEFRAME_W1 = mt5.TIMEFRAME_W1
|
||||
TIMEFRAME_MN1 = mt5.TIMEFRAME_MN1
|
||||
|
||||
def __init__(self):
|
||||
# Connect to MetaTrader5. Opens if not already open.
|
||||
|
||||
@@ -48,16 +71,38 @@ class MT5:
|
||||
|
||||
return selected_symbols
|
||||
|
||||
def get_prices(self, symbol, from_date, to_date):
|
||||
def get_prices(self, symbol, from_date, to_date, timeframe):
|
||||
"""
|
||||
Gets the 1 weeks of M15 OHLC price data for the specified symbol.
|
||||
Gets OHLC price data for the specified symbol.
|
||||
:param symbol: The MT5 symbol to get the price data for
|
||||
:param from_date: Date from when to retrieve data
|
||||
:param to_date: Date where to receive data to
|
||||
:param timeframe: The timeframe for the candes. Possible values are:
|
||||
TIMEFRAME_M1: 1 minute
|
||||
TIMEFRAME_M2: 2 minutes
|
||||
TIMEFRAME_M3: 3 minutes
|
||||
TIMEFRAME_M4: 4 minutes
|
||||
TIMEFRAME_M5: 5 minutes
|
||||
TIMEFRAME_M6: 6 minutes
|
||||
TIMEFRAME_M10: 10 minutes
|
||||
TIMEFRAME_M12: 12 minutes
|
||||
TIMEFRAME_M15: 15 minutes
|
||||
TIMEFRAME_M20: 20 minutes
|
||||
TIMEFRAME_M30: 30 minutes
|
||||
TIMEFRAME_H1: 1 hour
|
||||
TIMEFRAME_H2: 2 hours
|
||||
TIMEFRAME_H3: 3 hours
|
||||
TIMEFRAME_H4: 4 hours
|
||||
TIMEFRAME_H6: 6 hours
|
||||
TIMEFRAME_H8: 8 hours
|
||||
TIMEFRAME_H12: 12 hours
|
||||
TIMEFRAME_D1: 1 day
|
||||
TIMEFRAME_W1: 1 week
|
||||
TIMEFRAME_MN1: 1 month
|
||||
:return: Price data for symbol as dataframe
|
||||
"""
|
||||
# Get prices from MT5
|
||||
prices = mt5.copy_rates_range(symbol.name, mt5.TIMEFRAME_M15, from_date, to_date)
|
||||
prices = mt5.copy_rates_range(symbol.name, timeframe, from_date, to_date)
|
||||
self.log.info(f"{len(prices)} prices retrieved for {symbol.name}.")
|
||||
|
||||
# Create dataframe from data and convert time in seconds to datetime format
|
||||
|
||||
Reference in New Issue
Block a user