2021.06.28 06:48 AM
Hello All,
I'm just starting out with embedPy and wondering if aoneone can help. I'm trying to use a module in python for some technical analysis.
I was trying to use this module
https://technical-analysis-library-in-python.readthedocs.io/en/latest/
I've just got some bar data something like
t:([]sym:30#`A;open:30?50f;high:30?50f;low:30?50f;close:30?50f;vol:30?10000)
I'm having some difficulty passing the dataframe back and forth and can't seem to get it to work. Wondering if someone could help me through this first example on their website, making this work properly from q.
import pandas as pd
from ta.utils import dropna
from ta.volatility import BollingerBands
# Load datas
df = pd.read_csv('ta/tests/data/datas.csv', sep=',')
# Clean NaN values
df = dropna(df)
# Initialize Bollinger Bands Indicator
indicator_bb = BollingerBands(close=df["Close"], window=20, window_dev=2)
# Add Bollinger Bands features
df['bb_bbm'] = indicator_bb.bollinger_mavg()
df['bb_bbh'] = indicator_bb.bollinger_hband()
df['bb_bbl'] = indicator_bb.bollinger_lband()
# Add Bollinger Band high indicator
df['bb_bbhi'] = indicator_bb.bollinger_hband_indicator()
# Add Bollinger Band low indicator
df['bb_bbli'] = indicator_bb.bollinger_lband_indicator()
Many thanks!
2021.06.29 07:26 AM
FYI if anyone is interested I was able to get this working now
py script
import pandas as pd
from ta.utils import dropna
from ta.volatility import BollingerBands
def returnBB(df, window=20, window_dev=2):
indicator_bb = BollingerBands(close=df["close"], window=20, window_dev=2)
# Add Bollinger Bands features
df['bb_bbm'] = indicator_bb.bollinger_mavg()
df['bb_bbh'] = indicator_bb.bollinger_hband()
df['bb_bbl'] = indicator_bb.bollinger_lband()
# Add Bollinger Band high indicator
df['bb_bbhi'] = indicator_bb.bollinger_hband_indicator()
# Add Bollinger Band low indicator
df['bb_bbli'] = indicator_bb.bollinger_lband_indicator()
return df
and then q script
//load above .p script
\l bb.p
//make returnBB py func callable in q
func:.p.get`returnBB
//conv t to dataframe, pass to the py func and then conv back to qtable
.ml.df2tab[func[.ml.tab2df[t]]]
2021.06.29 07:26 AM
FYI if anyone is interested I was able to get this working now
py script
import pandas as pd
from ta.utils import dropna
from ta.volatility import BollingerBands
def returnBB(df, window=20, window_dev=2):
indicator_bb = BollingerBands(close=df["close"], window=20, window_dev=2)
# Add Bollinger Bands features
df['bb_bbm'] = indicator_bb.bollinger_mavg()
df['bb_bbh'] = indicator_bb.bollinger_hband()
df['bb_bbl'] = indicator_bb.bollinger_lband()
# Add Bollinger Band high indicator
df['bb_bbhi'] = indicator_bb.bollinger_hband_indicator()
# Add Bollinger Band low indicator
df['bb_bbli'] = indicator_bb.bollinger_lband_indicator()
return df
and then q script
//load above .p script
\l bb.p
//make returnBB py func callable in q
func:.p.get`returnBB
//conv t to dataframe, pass to the py func and then conv back to qtable
.ml.df2tab[func[.ml.tab2df[t]]]
EMEA
Tel: +44 (0)28 3025 2242
AMERICAS
Tel: +1 (212) 447 6700
APAC
Tel: +61 (0)2 9236 5700
KX. All Rights Reserved.
KX and kdb+ are registered trademarks of KX Systems, Inc., a subsidiary of FD Technologies plc.