Skip to content

Commit 5cf1222

Browse files
Guillaume De Saint MartinGuillaumeDSM
Guillaume De Saint Martin
authored andcommitted
[Ticker] fix simulated ticker
1 parent 3770109 commit 5cf1222

File tree

2 files changed

+12
-4
lines changed

2 files changed

+12
-4
lines changed

octobot_trading/exchange_data/ticker/channel/ticker.py

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -108,16 +108,22 @@ async def _push_mark_price(self, symbol: str, ticker: dict):
108108
async def _push_funding_rate(self, symbol: str, ticker: dict):
109109
try:
110110
ticker = self.channel.exchange_manager.exchange.parse_funding(ticker, from_ticker=True)
111+
if not ticker.get(enums.ExchangeConstantsFundingColumns.NEXT_FUNDING_TIME.value, 0):
112+
# not enough info, don't push possibly false data
113+
return
111114
predicted_funding_rate = ticker.get(
112115
enums.ExchangeConstantsFundingColumns.PREDICTED_FUNDING_RATE.value, constants.NaN
113116
)
117+
funding_rate = ticker.get(enums.ExchangeConstantsFundingColumns.FUNDING_RATE.value, constants.NaN)
118+
next_funding_time = ticker[enums.ExchangeConstantsFundingColumns.NEXT_FUNDING_TIME.value]
119+
last_funding_time = ticker.get(enums.ExchangeConstantsFundingColumns.LAST_FUNDING_TIME.value, constants.NaN)
114120
await exchanges_channel.get_chan(constants.FUNDING_CHANNEL, self.channel.exchange_manager.id)\
115121
.get_internal_producer().push(
116122
symbol,
117-
decimal.Decimal(str(ticker[enums.ExchangeConstantsFundingColumns.FUNDING_RATE.value])),
123+
decimal.Decimal(str(funding_rate or constants.NaN)),
118124
decimal.Decimal(str(predicted_funding_rate or constants.NaN)),
119-
ticker[enums.ExchangeConstantsFundingColumns.NEXT_FUNDING_TIME.value],
120-
ticker[enums.ExchangeConstantsFundingColumns.LAST_FUNDING_TIME.value]
125+
decimal.Decimal(str(next_funding_time or constants.NaN)),
126+
decimal.Decimal(str(last_funding_time or constants.NaN)),
121127
)
122128
except Exception as e:
123129
self.logger.exception(e, True, f"Fail to update funding rate from ticker : {e}")

octobot_trading/exchange_data/ticker/channel/ticker_updater_simulator.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,9 @@ def _generate_ticker_from_candle(candle, symbol, last_candle_timestamp):
8686
enums.ExchangeConstantsTickersColumns.HIGH.value: candle[common_enums.PriceIndexes.IND_PRICE_HIGH.value],
8787
enums.ExchangeConstantsTickersColumns.LOW.value: candle[common_enums.PriceIndexes.IND_PRICE_LOW.value],
8888
enums.ExchangeConstantsTickersColumns.OPEN.value: candle[common_enums.PriceIndexes.IND_PRICE_OPEN.value],
89-
enums.ExchangeConstantsTickersColumns.CLOSE.value: candle[common_enums.PriceIndexes.IND_PRICE_CLOSE.value]
89+
enums.ExchangeConstantsTickersColumns.CLOSE.value: candle[common_enums.PriceIndexes.IND_PRICE_CLOSE.value],
90+
enums.ExchangeConstantsTickersColumns.BASE_VOLUME.value:
91+
candle[common_enums.PriceIndexes.IND_PRICE_VOL.value]
9092
}
9193

9294
async def pause(self):

0 commit comments

Comments
 (0)