Comments (10)
i find a bug in this code and recalculate. now same result at the tradingview... and add MAtype
def MOST2(dataframe, percent=2, length=8, MAtype=1):
import talib.abstract as ta
df = dataframe.copy()
mostvalue = 'MOST_' + str(length) + '_' + str(percent)
mavalue = 'MA_' + str(length) + '_' + str(percent)
trend = 'Trend_' + str(length) + '_' + str(percent)
# Compute basic upper and lower bands
if MAtype==1:
df[mavalue]=ta.EMA(df , timeperiod = length)
elif MAtype==2:
df[mavalue]=ta.DEMA(df , timeperiod = length)
elif MAtype==3:
df[mavalue]=ta.T3(df , timeperiod = length)
df['basic_ub'] = df[mavalue] * (1+percent/100)
df['basic_lb'] = df[mavalue] * (1-percent/100)
# Compute final upper and lower bands
df['final_ub'] = 0.00
df['final_lb'] = 0.00
for i in range(length, len(df)):
df['final_ub'].iat[i] = df['basic_ub'].iat[i] if df['basic_ub'].iat[i] < df['final_ub'].iat[i - 1] or df[mavalue].iat[i - 1] > df['final_ub'].iat[i - 1] else df['final_ub'].iat[i - 1]
df['final_lb'].iat[i] = df['basic_lb'].iat[i] if df['basic_lb'].iat[i] > df['final_lb'].iat[i - 1] or df[mavalue].iat[i - 1] < df['final_lb'].iat[i - 1] else df['final_lb'].iat[i - 1]
# Set the MOST value
df[mostvalue] = 0.00
for i in range(length, len(df)):
df[mostvalue].iat[i] = df['final_ub'].iat[i] if df[mostvalue].iat[i - 1] == df['final_ub'].iat[i - 1] and df[mavalue].iat[i] <= df['final_ub'].iat[i] else \
df['final_lb'].iat[i] if df[mostvalue].iat[i - 1] == df['final_ub'].iat[i - 1] and df[mavalue].iat[i] > df['final_ub'].iat[i] else \
df['final_lb'].iat[i] if df[mostvalue].iat[i - 1] == df['final_lb'].iat[i - 1] and df[mavalue].iat[i] >= df['final_lb'].iat[i] else \
df['final_ub'].iat[i] if df[mostvalue].iat[i - 1] == df['final_lb'].iat[i - 1] and df[mavalue].iat[i] < df['final_lb'].iat[i] else 0.00
# Mark the trend direction up/down
df[trend] = np.where((df[mostvalue] > 0.00), np.where((df[mavalue] < df[mostvalue]), 'down', 'up'), np.NaN)
# Remove basic and final bands from the columns
df.drop(['basic_ub', 'basic_lb', 'final_ub', 'final_lb'], inplace=True, axis=1)
df.fillna(0, inplace=True)
return df
from technical.
The whole technical library is intended to be used with freqtrade - or with a dataframe formatted as such.
which means, the following keys are requried:
["date", "open", "high", "low", "close"]
.
Not all indicators will use all columns - but to be on the safe side, best have all of them available.
from technical.
is it explained anywhere else, beside that page at tradingview?
from technical.
yes..
http://teknikanalizsanati.com/pagesorgulama.aspx?bolum=MOST&sayfano=3&kategoriSira=84
from technical.
The text there is placed there as a picture, untranslatable with an online translator, to get the description in English...
The code in tradingview is closed non-public, are you sure you do not violate copyright of the author of it rewriting it in python?
from technical.
yes i write publisher Anil Özekşi on twitter.. only with the condition that we publish the indicator name is "MOST"
from technical.
- the permission to use should be public
- the problem with this indicator is that the description is in Turkish language, is not described anywhere else, and is posted as a picture, so I cannot even use an online translator to translate and understand the idea/verify the implementation.
For the sake of analogy, in Wikipedia terms, I would say it falls into the "original research" (https://en.wikipedia.org/wiki/Wikipedia:No_original_research) category -- an indicator which is only described in one (or a few) article by its creator and not used anywhere else...
from technical.
Traceback (most recent call last):
line xx, in MOST2
df = dataframe.copy()
AttributeError: 'float' object has no attribute 'copy'
from technical.
well you're not calling the indicator correctly.
it should be MOST2(dataframe, <parameters>)
- and it seems like you're missing the dataframe parameter.
from technical.
thanks for answer
klines = client.get_klines(symbol=symbol, interval=Client.KLINE_INTERVAL_5MINUTE)
klines = df(klines)
test = MOST2(klines, percent=2, length=8, MAtype=1)
print(test)
Traceback (most recent call last):
File "most2.py", line 64, in
test = MOST2(klines, percent=2, length=8, MAtype=1)
File "d:\p\most2.py", line 35, in MOST2
df[mavalue]=ta.EMA(df , timeperiod = length)
File "_abstract.pxi", line 398, in talib._ta_lib.Function.call
File "_abstract.pxi", line 270, in talib._ta_lib.Function.set_function_args
File "_abstract.pxi", line 221, in talib._ta_lib.Function.set_input_arrays
Exception: input_arrays parameter missing required data key: close
from technical.
Related Issues (20)
- Trend Step Channel - appreciate it HOT 4
- resample_to_interval date shifted HOT 1
- Help with Trend Trader Strategy HOT 1
- ichimoku different value proposal HOT 1
- How to import external data to populate entry/exit trend conditions HOT 14
- Multiple timeframe merge HOT 10
- Laguerre RSI wrong computation HOT 3
- ```crossed``` function throws error with numpy integers
- utils bug HOT 4
- How to plot segtrends or gentrends using freqtrade plot-dataframe ? HOT 1
- Phase Change Index HOT 18
- I try to convert Predictive Ranges [LuxAlgo] to the py, whats the problem? HOT 7
- Involvement of Heikenashi candles could be helpful in trend prediction HOT 1
- Help needed with: AttributeError: 'SSL' object has no attribute 'copy' HOT 3
- warning util.py
- 16 tests failed HOT 4
- Pandas warning when setting fillna(0) on RMI calc HOT 2
- Issues with PMAX indicator HOT 1
- A few Pinescript lines HOT 2
- Error thrown at numpy_rolling_window HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from technical.