populate sell signal
This commit is contained in:
parent
c12a9ebd92
commit
1db0a7d4ce
@ -7,7 +7,7 @@ import talib.abstract as ta
|
|||||||
from pandas import DataFrame, to_datetime
|
from pandas import DataFrame, to_datetime
|
||||||
|
|
||||||
from freqtrade.exchange import get_ticker_history
|
from freqtrade.exchange import get_ticker_history
|
||||||
from freqtrade.vendor.qtpylib.indicators import awesome_oscillator
|
from freqtrade.vendor.qtpylib.indicators import awesome_oscillator, crossed_above, crossed_below
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
@ -62,7 +62,7 @@ def populate_indicators(dataframe: DataFrame) -> DataFrame:
|
|||||||
|
|
||||||
def populate_buy_trend(dataframe: DataFrame) -> DataFrame:
|
def populate_buy_trend(dataframe: DataFrame) -> DataFrame:
|
||||||
"""
|
"""
|
||||||
Based on TA indicators, populates the buy trend for the given dataframe
|
Based on TA indicators, populates the buy signal for the given dataframe
|
||||||
:param dataframe: DataFrame
|
:param dataframe: DataFrame
|
||||||
:return: DataFrame with buy column
|
:return: DataFrame with buy column
|
||||||
"""
|
"""
|
||||||
@ -77,6 +77,19 @@ def populate_buy_trend(dataframe: DataFrame) -> DataFrame:
|
|||||||
|
|
||||||
return dataframe
|
return dataframe
|
||||||
|
|
||||||
|
def populate_sell_trend(dataframe: DataFrame) -> DataFrame:
|
||||||
|
"""
|
||||||
|
Based on TA indicators, populates the sell signal for the given dataframe
|
||||||
|
:param dataframe: DataFrame
|
||||||
|
:return: DataFrame with buy column
|
||||||
|
"""
|
||||||
|
dataframe.ix[
|
||||||
|
(crossed_above(dataframe['rsi'], 70)),
|
||||||
|
'sell'] = 1
|
||||||
|
dataframe.ix[dataframe['sell'] == 1, 'sell_price'] = dataframe['close']
|
||||||
|
|
||||||
|
return dataframe
|
||||||
|
|
||||||
|
|
||||||
def analyze_ticker(pair: str) -> DataFrame:
|
def analyze_ticker(pair: str) -> DataFrame:
|
||||||
"""
|
"""
|
||||||
@ -92,6 +105,7 @@ def analyze_ticker(pair: str) -> DataFrame:
|
|||||||
dataframe = parse_ticker_dataframe(ticker_hist)
|
dataframe = parse_ticker_dataframe(ticker_hist)
|
||||||
dataframe = populate_indicators(dataframe)
|
dataframe = populate_indicators(dataframe)
|
||||||
dataframe = populate_buy_trend(dataframe)
|
dataframe = populate_buy_trend(dataframe)
|
||||||
|
dataframe = populate_sell_trend(dataframe)
|
||||||
return dataframe
|
return dataframe
|
||||||
|
|
||||||
|
|
||||||
|
@ -37,3 +37,13 @@ def test_returns_latest_buy_signal(mocker):
|
|||||||
buydf = DataFrame([{'buy': 0, 'date': datetime.today()}])
|
buydf = DataFrame([{'buy': 0, 'date': datetime.today()}])
|
||||||
mocker.patch('freqtrade.analyze.analyze_ticker', return_value=buydf)
|
mocker.patch('freqtrade.analyze.analyze_ticker', return_value=buydf)
|
||||||
assert not get_signal('BTC-ETH', SignalType.BUY)
|
assert not get_signal('BTC-ETH', SignalType.BUY)
|
||||||
|
|
||||||
|
|
||||||
|
def test_returns_latest_sell_signal(mocker):
|
||||||
|
selldf = DataFrame([{'sell': 1, 'date': datetime.today()}])
|
||||||
|
mocker.patch('freqtrade.analyze.analyze_ticker', return_value=selldf)
|
||||||
|
assert get_signal('BTC-ETH', SignalType.SELL)
|
||||||
|
|
||||||
|
selldf = DataFrame([{'sell': 0, 'date': datetime.today()}])
|
||||||
|
mocker.patch('freqtrade.analyze.analyze_ticker', return_value=selldf)
|
||||||
|
assert not get_signal('BTC-ETH', SignalType.SELL)
|
||||||
|
Loading…
Reference in New Issue
Block a user