146 lines
3.4 KiB
Markdown
146 lines
3.4 KiB
Markdown
### __init__(exchanges, config_obj, database)
|
|
```plantuml
|
|
@startuml
|
|
start
|
|
:Initialize config attribute;
|
|
:Initialize max_records attribute;
|
|
:Initialize data attribute;
|
|
stop
|
|
@enduml
|
|
```
|
|
### get_last_n_candles(num_candles, asset, timeframe, exchange, user_name)
|
|
```plantuml
|
|
@startuml
|
|
start
|
|
:Convert timeframe to minutes_per_candle;
|
|
:Calculate start_datetime;
|
|
:Generate a table name: format is <symbol>_<timeframe>_<exchange_name>;
|
|
:Fetch records from data;
|
|
:Check if retrieved candles are less than num_candles;
|
|
if (Yes) then (True)
|
|
:Log result;
|
|
:Return candles[-num_candles:];
|
|
else (False)
|
|
:Return candles[-num_candles:];
|
|
endif
|
|
stop
|
|
@enduml
|
|
```
|
|
### set_new_candle(cdata)
|
|
```plantuml
|
|
@startuml
|
|
start
|
|
:cdata;
|
|
:Raise ValueError;
|
|
stop
|
|
@enduml
|
|
```
|
|
### set_cache(symbol=None, interval=None, exchange_name=None, user_name=None)
|
|
```plantuml
|
|
@startuml
|
|
start
|
|
|
|
:Check if symbol is None;
|
|
if (Yes) then (True)
|
|
:Get symbol from config.users;
|
|
endif
|
|
|
|
:Check if interval is None;
|
|
if (Yes) then (True)
|
|
:Get interval from config.users;
|
|
endif
|
|
|
|
:Check if exchange_name is None;
|
|
if (Yes) then (True)
|
|
:Get exchange_name from config.users;
|
|
endif
|
|
|
|
:Load candles from database;
|
|
stop
|
|
@enduml
|
|
```
|
|
|
|
### get_colour_coded_volume(candles)
|
|
```plantuml
|
|
@startuml
|
|
start
|
|
:Reset index of candles;
|
|
:Extract the `time and volume columns;
|
|
:Add the color field calling get_color() to supply the values;
|
|
:Rename volume column to value;
|
|
:Return volumes;
|
|
stop
|
|
@enduml
|
|
```
|
|
### get_latest_values(value_name, symbol, timeframe, exchange, user_name, num_record = 1)
|
|
```plantuml
|
|
@startuml
|
|
start
|
|
:Fetch last n candles;
|
|
|
|
:Check if value_name is 'volume';
|
|
if (Yes) then (True)
|
|
:Get color-coded volume;
|
|
else (False)
|
|
:Extract the specific values,
|
|
indexed by time;
|
|
endif
|
|
:Rename time column to time;
|
|
:Convert time to seconds from milliseconds;
|
|
:Return values;
|
|
stop
|
|
@enduml
|
|
```
|
|
### convert_candles(candles)
|
|
```plantuml
|
|
@startuml
|
|
start
|
|
:Extract relevant columns;
|
|
:Rename columns;
|
|
:Convert time to seconds from milliseconds;
|
|
:Return new_candles;
|
|
stop
|
|
@enduml
|
|
```
|
|
### get_candle_history(num_records, symbol, interval, exchange_name, user_name):
|
|
|
|
```plantuml
|
|
@startuml
|
|
|
|
start
|
|
:Check if symbol is None?;
|
|
if (Symbol is None?) then (yes)
|
|
:Get symbol from user configuration;
|
|
else (no)
|
|
:Use provided symbol;
|
|
endif
|
|
|
|
:Check if interval is None?;
|
|
if (Interval is None?) then (yes)
|
|
:Get interval from user configuration;
|
|
else (no)
|
|
:Use provided interval;
|
|
endif
|
|
|
|
:Check if exchange name is None?;
|
|
if (Exchange name is None?) then (yes)
|
|
:Get exchange name from user configuration;
|
|
else (no)
|
|
:Use provided exchange name;
|
|
endif
|
|
|
|
:Retrieve last N candles;
|
|
note left
|
|
Calls the 'get_last_n_candles' method
|
|
passing the specified parameters.
|
|
end note
|
|
|
|
:Convert candles to lightweight charts format;
|
|
note left
|
|
Calls the 'convert_candles' method passing
|
|
the retrieved candlesticks.
|
|
end note
|
|
:Return: Converted candles;
|
|
stop
|
|
@enduml
|
|
``` |