quantplay 2.0.50__tar.gz → 2.0.52__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. {quantplay-2.0.50 → quantplay-2.0.52}/PKG-INFO +1 -1
  2. {quantplay-2.0.50 → quantplay-2.0.52}/quantplay/broker/generics/broker.py +2 -2
  3. {quantplay-2.0.50 → quantplay-2.0.52}/quantplay/broker/zerodha.py +48 -0
  4. {quantplay-2.0.50 → quantplay-2.0.52}/quantplay.egg-info/PKG-INFO +1 -1
  5. {quantplay-2.0.50 → quantplay-2.0.52}/setup.py +1 -1
  6. {quantplay-2.0.50 → quantplay-2.0.52}/README.md +0 -0
  7. {quantplay-2.0.50 → quantplay-2.0.52}/pyproject.toml +0 -0
  8. {quantplay-2.0.50 → quantplay-2.0.52}/quantplay/__init__.py +0 -0
  9. {quantplay-2.0.50 → quantplay-2.0.52}/quantplay/broker/__init__.py +0 -0
  10. {quantplay-2.0.50 → quantplay-2.0.52}/quantplay/broker/aliceblue.py +0 -0
  11. {quantplay-2.0.50 → quantplay-2.0.52}/quantplay/broker/angelone.py +0 -0
  12. {quantplay-2.0.50 → quantplay-2.0.52}/quantplay/broker/auto_login/__init__.py +0 -0
  13. {quantplay-2.0.50 → quantplay-2.0.52}/quantplay/broker/auto_login/aliceblue.py +0 -0
  14. {quantplay-2.0.50 → quantplay-2.0.52}/quantplay/broker/broker_factory.py +0 -0
  15. {quantplay-2.0.50 → quantplay-2.0.52}/quantplay/broker/dhan.py +0 -0
  16. {quantplay-2.0.50 → quantplay-2.0.52}/quantplay/broker/finvasia_utils/__init__.py +0 -0
  17. {quantplay-2.0.50 → quantplay-2.0.52}/quantplay/broker/finvasia_utils/fa_noren.py +0 -0
  18. {quantplay-2.0.50 → quantplay-2.0.52}/quantplay/broker/five_paisa.py +0 -0
  19. {quantplay-2.0.50 → quantplay-2.0.52}/quantplay/broker/flattrade.py +0 -0
  20. {quantplay-2.0.50 → quantplay-2.0.52}/quantplay/broker/ft_utils/__init__.py +0 -0
  21. {quantplay-2.0.50 → quantplay-2.0.52}/quantplay/broker/ft_utils/flattrade_utils.py +0 -0
  22. {quantplay-2.0.50 → quantplay-2.0.52}/quantplay/broker/ft_utils/ft_noren.py +0 -0
  23. {quantplay-2.0.50 → quantplay-2.0.52}/quantplay/broker/generics/__init__.py +0 -0
  24. {quantplay-2.0.50 → quantplay-2.0.52}/quantplay/broker/iifl_xts.py +0 -0
  25. {quantplay-2.0.50 → quantplay-2.0.52}/quantplay/broker/kite_utils.py +0 -0
  26. {quantplay-2.0.50 → quantplay-2.0.52}/quantplay/broker/motilal.py +0 -0
  27. {quantplay-2.0.50 → quantplay-2.0.52}/quantplay/broker/noren.py +0 -0
  28. {quantplay-2.0.50 → quantplay-2.0.52}/quantplay/broker/shoonya.py +0 -0
  29. {quantplay-2.0.50 → quantplay-2.0.52}/quantplay/broker/uplink/__init__.py +0 -0
  30. {quantplay-2.0.50 → quantplay-2.0.52}/quantplay/broker/uplink/uplink_utils.py +0 -0
  31. {quantplay-2.0.50 → quantplay-2.0.52}/quantplay/broker/upstox.py +0 -0
  32. {quantplay-2.0.50 → quantplay-2.0.52}/quantplay/broker/xts.py +0 -0
  33. {quantplay-2.0.50 → quantplay-2.0.52}/quantplay/broker/xts_utils/Connect.py +0 -0
  34. {quantplay-2.0.50 → quantplay-2.0.52}/quantplay/broker/xts_utils/Exception.py +0 -0
  35. {quantplay-2.0.50 → quantplay-2.0.52}/quantplay/broker/xts_utils/InteractiveSocketClient.py +0 -0
  36. {quantplay-2.0.50 → quantplay-2.0.52}/quantplay/broker/xts_utils/__init__.py +0 -0
  37. {quantplay-2.0.50 → quantplay-2.0.52}/quantplay/exception/__init__.py +0 -0
  38. {quantplay-2.0.50 → quantplay-2.0.52}/quantplay/exception/exceptions.py +0 -0
  39. {quantplay-2.0.50 → quantplay-2.0.52}/quantplay/model/__init__.py +0 -0
  40. {quantplay-2.0.50 → quantplay-2.0.52}/quantplay/model/broker.py +0 -0
  41. {quantplay-2.0.50 → quantplay-2.0.52}/quantplay/model/generics.py +0 -0
  42. {quantplay-2.0.50 → quantplay-2.0.52}/quantplay/model/instrument_data.py +0 -0
  43. {quantplay-2.0.50 → quantplay-2.0.52}/quantplay/model/order_event.py +0 -0
  44. {quantplay-2.0.50 → quantplay-2.0.52}/quantplay/py.typed +0 -0
  45. {quantplay-2.0.50 → quantplay-2.0.52}/quantplay/utils/__init__.py +0 -0
  46. {quantplay-2.0.50 → quantplay-2.0.52}/quantplay/utils/caching.py +0 -0
  47. {quantplay-2.0.50 → quantplay-2.0.52}/quantplay/utils/constant.py +0 -0
  48. {quantplay-2.0.50 → quantplay-2.0.52}/quantplay/utils/exchange.py +0 -0
  49. {quantplay-2.0.50 → quantplay-2.0.52}/quantplay/utils/number_utils.py +0 -0
  50. {quantplay-2.0.50 → quantplay-2.0.52}/quantplay/utils/pickle_utils.py +0 -0
  51. {quantplay-2.0.50 → quantplay-2.0.52}/quantplay/utils/selenium_utils.py +0 -0
  52. {quantplay-2.0.50 → quantplay-2.0.52}/quantplay/wrapper/__init__.py +0 -0
  53. {quantplay-2.0.50 → quantplay-2.0.52}/quantplay/wrapper/aws/__init__.py +0 -0
  54. {quantplay-2.0.50 → quantplay-2.0.52}/quantplay/wrapper/aws/s3.py +0 -0
  55. {quantplay-2.0.50 → quantplay-2.0.52}/quantplay.egg-info/SOURCES.txt +0 -0
  56. {quantplay-2.0.50 → quantplay-2.0.52}/quantplay.egg-info/dependency_links.txt +0 -0
  57. {quantplay-2.0.50 → quantplay-2.0.52}/quantplay.egg-info/requires.txt +0 -0
  58. {quantplay-2.0.50 → quantplay-2.0.52}/quantplay.egg-info/top_level.txt +0 -0
  59. {quantplay-2.0.50 → quantplay-2.0.52}/setup.cfg +0 -0
  60. {quantplay-2.0.50 → quantplay-2.0.52}/tests/__init__.py +0 -0
  61. {quantplay-2.0.50 → quantplay-2.0.52}/tests/conftest.py +0 -0
  62. {quantplay-2.0.50 → quantplay-2.0.52}/tests/wrapper/__init__.py +0 -0
  63. {quantplay-2.0.50 → quantplay-2.0.52}/tests/wrapper/aws/__init__.py +0 -0
  64. {quantplay-2.0.50 → quantplay-2.0.52}/tests/wrapper/aws/s3_test.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: quantplay
3
- Version: 2.0.50
3
+ Version: 2.0.52
4
4
  Summary: This python package will be stored in AWS CodeArtifact
5
5
  Home-page:
6
6
  Author:
@@ -250,7 +250,7 @@ class Broker(ABC):
250
250
  positions = self.positions()
251
251
  pnl = positions["pnl"].sum()
252
252
 
253
- positions = positions[positions["product"] != "CNC"]
253
+ positions = positions.filter(pl.col("product") != "CNC")
254
254
  if keep_hedges:
255
255
  positions = positions.filter(
256
256
  (~pl.col("option_type").is_in(["CE", "PE"])) & (pl.col("quantity").gt(0))
@@ -953,7 +953,7 @@ class Broker(ABC):
953
953
  drop_cnc (bool, optional): CNC positions to be dropped or not. Defaults to True.
954
954
 
955
955
  Returns:
956
- pd.DataFrame: returns user positions
956
+ pl.DataFrame: returns user positions
957
957
  """
958
958
  ...
959
959
 
@@ -2,6 +2,7 @@ import codecs
2
2
  import pickle
3
3
  import traceback
4
4
  from typing import Any, Callable, Dict, Hashable, List
5
+ from datetime import datetime
5
6
 
6
7
  import polars as pl
7
8
  from kiteconnect import KiteConnect, KiteTicker
@@ -556,3 +557,50 @@ class Zerodha(Broker):
556
557
  "pnl": float(self.positions()["pnl"].sum()),
557
558
  }
558
559
  return response
560
+
561
+ @retry(
562
+ wait_exponential_multiplier=3000,
563
+ wait_exponential_max=10000,
564
+ stop_max_attempt_number=3,
565
+ retry_on_exception=retry_exception,
566
+ )
567
+ def historical_data(
568
+ self,
569
+ exchange: ExchangeType,
570
+ tradingsymbol: str,
571
+ start_time: datetime,
572
+ interval: str,
573
+ end_time: datetime = datetime.now(),
574
+ ) -> pl.DataFrame:
575
+ tradingsymbol = self.get_symbol(tradingsymbol, exchange=exchange)
576
+ instrument_token = self.symbol_data[f"{exchange}:{tradingsymbol}"][ # type: ignore
577
+ "instrument_token"
578
+ ]
579
+
580
+ Constants.logger.info(
581
+ f"[HISTORICAL_DATA] requesting {interval} candles for {instrument_token}/{tradingsymbol} from {start_time} till {end_time}"
582
+ )
583
+ data = self.wrapper.historical_data(
584
+ instrument_token,
585
+ start_time,
586
+ end_time,
587
+ interval, # type: ignore
588
+ continuous=False,
589
+ )
590
+ data = pl.DataFrame(data)
591
+
592
+ if len(data) == 0:
593
+ return data
594
+
595
+ data = data.cast(
596
+ {
597
+ "date": pl.Datetime,
598
+ "open": pl.Float64,
599
+ "high": pl.Float64,
600
+ "low": pl.Float64,
601
+ "close": pl.Float64,
602
+ "volume": pl.Int64,
603
+ }
604
+ )
605
+
606
+ return data.sort("date")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: quantplay
3
- Version: 2.0.50
3
+ Version: 2.0.52
4
4
  Summary: This python package will be stored in AWS CodeArtifact
5
5
  Home-page:
6
6
  Author:
@@ -21,7 +21,7 @@ requirements = [
21
21
  setup(
22
22
  name="quantplay",
23
23
  long_description=Path("README.md").read_text(),
24
- version="2.0.50",
24
+ version="2.0.52",
25
25
  setup_requires=["pytest-runner"],
26
26
  install_requires=requirements,
27
27
  tests_require=[],
File without changes
File without changes
File without changes
File without changes
File without changes