-
Notifications
You must be signed in to change notification settings - Fork 3.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[FR] Radar Dashboard & Gamma and Charm Dashboard #6948
Comments
Gamma & Charm Magnetics And Walls Rise together with |
Hi, when you are working with the Python interface (not the FastAPI) there is some built-in functionality with the results object from They aren't yet documented beyond the docstring, and don't have any pricing/volatility models baked in, but it's enough to work with where you could build your own dashboard. """Options Chains Data.
Note: The attached properties and methods are available only when working with an instance of this class,
initialized with validated provider data. The items below bind to the `results` object in the function's output.
Properties
----------
dataframe: DataFrame
Return all data as a Pandas DataFrame, with additional computed columns (Breakeven, GEX, DEX) if available.
expirations: List[str]
Return a list of unique expiration dates, as strings.
strikes: List[float]
Return a list of unique strike prices.
has_iv: bool
Return True if the data contains implied volatility.
has_greeks: bool
Return True if the data contains greeks.
total_oi: Dict
Return open interest stats as a nested dictionary with keys: total, expiration, strike.
Both, "expiration" and "strike", contain a list of records with fields: Calls, Puts, Total, Net Percent, PCR.
total_volume: Dict
Return volume stats as a nested dictionary with keys: total, expiration, strike.
Both, "expiration" and "strike", contain a list of records with fields: Calls, Puts, Total, Net Percent, PCR.
total_dex: Dict
Return Delta Dollars (DEX), if available, as a nested dictionary with keys: total, expiration, strike.
Both, "expiration" and "strike", contain a list of records with fields: Calls, Puts, Total, Net Percent, PCR.
total_gex: Dict
Return Gamma Exposure (GEX), if available, as a nested dictionary with keys: total, expiration, strike.
Both, "expiration" and "strike", contain a list of records with fields: Calls, Puts, Total, Net Percent, PCR.
last_price: float
Manually set the underlying price by assigning a float value to this property.
Certain provider/symbol combinations may not return the underlying price,
and it may be necessary, or desirable, to set it post-initialization.
This property can be used to override the underlying price returned by the provider.
It is not set automatically, and this property will return None if it is not set.
Methods
-------
filter_data(
date: Optional[Union[str, int]] = None,
column: Optional[str] = None,
option_type: Optional[Literal["call", "put"]] = None,
moneyness: Optional[Literal["otm", "itm"]] = None,
value_min: Optional[float] = None,
value_max: Optional[float] = None,
stat: Optional[Literal["open_interest", "volume", "dex", "gex"]] = None,
by: Literal["expiration", "strike"] = "expiration",
) -> DataFrame:
Return statistics by strike or expiration; or, the filtered chains data.
skew(
date: Optional[Union[int, str]] = None, underlying_price: Optional[float] = None)
-> DataFrame:
Return skewness of the options, either vertical or horizontal, by nearest DTE.
straddle(
days: Optional[int] = None, strike: Optional[float] = None, underlying_price: Optional[float] = None
) -> DataFrame:
Calculates the cost of a straddle, by nearest DTE. Use a negative strike price for short options.
strangle(
days: Optional[int] = None, moneyness: Optional[float] = None, underlying_price: Optional[float] = None
) -> DataFrame:
Calculates the cost of a strangle, by nearest DTE and % moneyness.
Use a negative value for moneyness for short options.
synthetic_long(
days: Optional[int] = None, strike: Optional[float] = None, underlying_price: Optional[float] = None
) -> DataFrame:
Calculates the cost of a synthetic long position, by nearest DTE and strike price.
synthetic_short(
days: Optional[int] = None, strike: Optional[float] = None, underlying_price: Optional[float] = None
) -> DataFrame:
Calculates the cost of a synthetic short position, by nearest DTE and strike price.
vertical_call(
days: Optional[int] = None, sold: Optional[float] = None, bought: Optional[float] = None,
underlying_price: Optional[float] = None
) -> DataFrame:
Calculates the cost of a vertical call spread, by nearest DTE and strike price to sold and bought levels.
vertical_put(
days: Optional[int] = None, sold: Optional[float] = None, bought: Optional[float] = None,
underlying_price: Optional[float] = None
) -> DataFrame:
Calculates the cost of a vertical put spread, by nearest DTE and strike price to sold and bought levels.
strategies(
days: Optional[int] = None,
straddle_strike: Optional[float] = None,
strangle_moneyness: Optional[List[float]] = None,
synthetic_longs: Optional[List[float]] = None,
synthetic_shorts: Optional[List[float]] = None,
vertical_calls: Optional[List[tuple]] = None,
vertical_puts: Optional[List[tuple]] = None,
underlying_price: Optional[float] = None,
) -> DataFrame:
Method for combining multiple strategies and parameters in a single DataFrame.
To get all expirations, set days to -1.
Raises
------
OpenBBError
OpenBBError will raise when accessing properties and methods if required, specific, data was not found. |
Would you like to established Radar Dashboard
Every Colum can customize by formula,
Example
Example 1
Close(D)[1] < Open(D)
Example 2
High(15m)[0] > High(15m)[0,1] AND Low(15m)[0] > Low(15m)[0,1]
Examples
Price Touch Supply Block
Price Break Demand Block
Price Turning from Block
The text was updated successfully, but these errors were encountered: