mementum / bta-lib

Technical Analysis library in pandas for backtesting algotrading and quantitative analysis
MIT License
451 stars 106 forks source link

Most indicators are working but mama. #25

Open murthybhatt opened 9 months ago

murthybhatt commented 9 months ago

I am getting bunch of errors : result[minidx:] = r = binop(other, *args, kwargs) # exec / store Traceback (most recent call last): File "C:\IB\pyGame\ALGO_AMD.py", line 30, in mama(amdDF).df ^^^^^^^^^^^ File "C:\IB\pyGame\venv\Lib\site-packages\btalib\indicator.py", line 152, in call b_init(self, *args, *kwargs) File "C:\IB\pyGame\venv\Lib\site-packages\btalib\indicators\mama.py", line 79, in init _mama = p0._ewm(alpha=alpha, span=1, _seed=SEED_ZERO)._mean() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\IB\pyGame\venv\Lib\site-packages\btalib\meta\lines.py", line 357, in _mean return self._apply(_dynalpha) # triggers getattr for _apply ^^^^^^^^^^^^^^^^^^^^^^ File "C:\IB\pyGame\venv\Lib\site-packages\btalib\meta\lines.py", line 379, in call_op result[self._minidx:] = r = op(sargs, kwargs) # run/store ^^^^^^^^^^^^^^^^^^^^ TypeError: BaseWindow._apply() missing 1 required positional argument: 'name'

My code: from ib_insync import import btalib import pandas from btalib import from btalib import bbands

ib = IB() ib.connect('127.0.0.1', 7497, clientId=0)

amd_contract = Stock('AMD', 'SMART', 'USD')

ib.qualifyContracts(amd_contract) data = ib.reqMktData(amd_contract) ib.sleep(1) print(data.marketPrice())

historical_data_amd = ib.reqHistoricalData( amd_contract, '', barSizeSetting='3 mins', durationStr='2 D', whatToShow='TRADES', useRTH=True ) amdDF = util.df(historical_data_amd)

amdH = amdDF.filter(['high','low'])

amdL = amdDF.fi

print(amdDF.high)

print (bbands(amdDF).df)

mama(amdDF).df

I Apricate your help .

Thanks

Murthy