USPTOPatentMaintenance
QuantConnect.DataSource.USPTOPatentMaintenance
USPTOPatentMaintenance()
USPTOPatentMaintenance(csv: List[str])
Bases: BaseData
USPTO patent maintenance activity attributed to a listed company. Each data point covers one publication week and carries the events recorded against that company during it: patents allowed to expire for unpaid maintenance fees, and fees paid at each renewal stage.
Letting a patent expire is a decision to stop paying for it, so the expiry count reads as portfolio pruning or cost cutting. Paying the twelfth-year fee is the opposite statement, made about a patent that is already eleven and a half years old.
Signature descriptions:
-
Default constructor required by LEAN.
-
Parses one already-split CSV row into a data point.
REPORT_FOLDER
REPORT_FOLDER: str
Output folder under alternative/uspto/ (used by the data processor).
end_time
end_time: datetime
Publication date of the weekly maintenance fee file, the Tuesday after the week of events closes. This is when LEAN delivers the data point.
patents_expired
patents_expired: Optional[float]
Patents that expired for failure to pay maintenance fees. This is also the data point's Value.
maintenance_paid_fourth_year
maintenance_paid_fourth_year: Optional[float]
Maintenance fees paid at the fourth-year renewal, across all entity sizes.
maintenance_paid_eighth_year
maintenance_paid_eighth_year: Optional[float]
Maintenance fees paid at the eighth-year renewal, across all entity sizes.
maintenance_paid_twelfth_year
maintenance_paid_twelfth_year: Optional[float]
Maintenance fees paid at the twelfth-year renewal, across all entity sizes.
maintenance_surcharges
maintenance_surcharges: Optional[float]
Surcharges levied for paying a maintenance fee after its due date.
net_maintenance_change
net_maintenance_change: Optional[float]
Net change in the maintained portfolio: patents kept alive by a payment, less those allowed to expire.
data_type
data_type: MarketDataType
Market Data Type of this data - does it come in individual price packets or is it grouped into OHLC.
time
time: datetime
Current time marker of this data packet.
value
value: float
Value representation of this data packet. All data requires a representative value for this moment in time. For streams of data this is the price now, for OHLC packets this is the closing price.
price
price: float
As this is a backtesting platform we'll provide an alias of value as price.
ALL_RESOLUTIONS
ALL_RESOLUTIONS: List[Resolution] = ...
A list of all Resolution
This Field is protected.
DAILY_RESOLUTION
DAILY_RESOLUTION: List[Resolution] = ...
A list of Resolution.DAILY
This Field is protected.
MINUTE_RESOLUTION
MINUTE_RESOLUTION: List[Resolution] = ...
A list of Resolution.MINUTE
This Field is protected.
HIGH_RESOLUTION
HIGH_RESOLUTION: List[Resolution] = ...
A list of high Resolution, including minute, second, and tick.
This Field is protected.
OPTION_RESOLUTIONS
OPTION_RESOLUTIONS: List[Resolution] = ...
A list of resolutions support by Options
This Field is protected.
is_fill_forward
is_fill_forward: bool
True if this is a fill forward piece of data
data_time_zone
data_time_zone() -> Any
Data time zone (Eastern, the USPTO publication time zone).
get_source
get_source(
config: SubscriptionDataConfig,
date: datetime,
is_live_mode: bool,
) -> SubscriptionDataSource
Location of the source file: alternative/uspto/patentmaintenance/{ticker}.csv
The ticker is the one the company traded under on the date requested, which is what the processor names each file after. RequiresMapping is true, so LEAN moves Symbol.Value on as the subscription crosses a rename and this returns the next file, which is why a renamed company's history is split the same way LEAN splits its own equity data into goog.zip and googl.zip.
is_sparse_data
is_sparse_data() -> bool
Sparse data: most companies have patent events on only a handful of days per year.
reader
reader(
config: SubscriptionDataConfig,
line: str,
date: datetime,
is_live_mode: bool,
) -> BaseData
Parses the data from the line provided and loads it into LEAN.
requires_mapping
requires_mapping() -> bool
Linked to Equities, so renames and delistings are applied via map files.
supported_resolutions
supported_resolutions() -> List[Resolution]
Supported resolutions (Daily only, the weekly cadence is modeled as Daily).
to_string
to_string() -> str
String representation for debugging.
deserialize_message
deserialize_message(serialized: str) -> Sequence[BaseData]
Deserialize the message from the data server
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
serialized
|
str
|
The data server's message |
required |
Returns:
| Type | Description |
|---|---|
Sequence[BaseData]
|
An enumerable of base data, if unsuccessful, returns an empty enumerable. |
should_cache_to_security
should_cache_to_security() -> bool
Indicates whether this contains data that should be stored in the security cache
Returns:
| Type | Description |
|---|---|
bool
|
Whether this contains data that should be stored in the security cache. |
update
update(
last_trade: float,
bid_price: float,
ask_price: float,
volume: float,
bid_size: float,
ask_size: float,
) -> None
Update routine to build a bar/tick from a data update.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
last_trade
|
float
|
The last trade price |
required |
bid_price
|
float
|
Current bid price |
required |
ask_price
|
float
|
Current asking price |
required |
volume
|
float
|
Volume of this trade |
required |
bid_size
|
float
|
The size of the current bid, if available |
required |
ask_size
|
float
|
The size of the current ask, if available |
required |
update_ask
update_ask(ask_price: float, ask_size: float) -> None
Updates this base data with the new quote ask information
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
ask_price
|
float
|
The current ask price |
required |
ask_size
|
float
|
The current ask size |
required |
update_bid
update_bid(bid_price: float, bid_size: float) -> None
Updates this base data with the new quote bid information
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
bid_price
|
float
|
The current bid price |
required |
bid_size
|
float
|
The current bid size |
required |
update_quote
update_quote(
bid_price: float,
bid_size: float,
ask_price: float,
ask_size: float,
) -> None
Updates this base data with new quote information
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
bid_price
|
float
|
The current bid price |
required |
bid_size
|
float
|
The current bid size |
required |
ask_price
|
float
|
The current ask price |
required |
ask_size
|
float
|
The current ask size |
required |
update_trade
update_trade(last_trade: float, trade_size: float) -> None
Updates this base data with a new trade
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
last_trade
|
float
|
The price of the last trade |
required |
trade_size
|
float
|
The quantity traded |
required |