EMon Tool Documentation

Welcome to EMon (Equities Monitor)! The purpose of EMon is to monitor equities, analyze portfolio risk, and detail the success rate of trading strategies by forward testing. You can also use the API to make use of the same information that is leveraged by the tool. For suggestions, or to contribute, please reach out to: me@korivernon.com.

Tools

Links

Trading Strategies:

viewOutlierPnl - View Only Active Positions(viewOutlierPnlActive)

This page displays positions that are tracked using a mean reversion strategy that I came up with (For a write-up of the strategy, look here: Volatility Outliers Strategy Write Up). The Total PnL is refreshed every 15 minutes during the trading day. Losing positions automatically exit. Winning positions are manually exited. To view only the active positions, navigate here (faster load): here. View the running PnL of the volatility outliers job.

Automated Reports:

displayVolatilityOutliers

View volatility outliers for a given day.

Analysis Tools:

earnings_leaderboard

View Earnings Leaderboard. This shows the earnings leaderboard. The stocks that have the most favorable moves will be ranked at the top (classified by large moves before (-30d before earnings), and after (+3d after earnings) earnings for a given corporation). You can find a write up of the earnings leaderboard here

sector_leaderboard

View Sector Leaderboard. This shows the sector leaderboard, followed by the stocks that are making the largest move by percentage and volume move.

volatilityAnalysis

View volatility analysis for ticker(s). Refreshed every 15 minutes M-F 9:45-4pm.

query

This tool allows you to directly query the db and send select statements.

Link: /longStraddle/ticker/dte/spot

This tool creates long straddle positions for a given symbol with a given ticker, dte, and method. The two methods are 'spot' and 'mean'. Click to see a method using the params ticker=AAPL, dte=30,method=spot.

EMon API Documentation

This is the documentation for my API, version 1.0.

Endpoints

GET /volatilityOutliers

This endpoint returns a list of all of the daily volatility outliers with positive days until exipiry (dte). When a date is passed in, all of the options symbols will be fetched with record date == '2023-10-01' (if your date is 10/01/2023).

Request

There is no request body for this endpoint.

Response

The response is a JSON array of options symbols with positive dte.

[
  {
    "exp_date_str": "11-03-2023",
    "record_date_str": "10-01-2023",
    "dte": 33,
    "record_date": 1696118400000,
    "ticker": "VLD",
    "symbol": "VLD231117P00002500",
    "strike": 2.5,
    "volume": 5.0,
    "open_interest": 1656.0,
    "implied_volatility": 1.484,
    "bs_sigma": 0.384,
    "bs_call": 0.0,
    "bs_put": 0.9,
    "spec_perc_move": -0.01,
    "bs_iv_call": 0.04,
    "bs_iv_put": 0.97,
    "last_option_price": 1.0,
    "last_underlying_price": 1.56,
    "exp_date": 1698969600000,
    "side": "PUT",
    "bias": "Long"
  }
    ...
]

GET /volatilityOutliers

This endpoint returns a list comparing 3-month volatility with current day's percent move. When a date is passed in, the daily volatility will be fetched with record date == '2023-10-01' (if your date is 10/01/2023).

Request

There is no request body for this endpoint.

Response

The response is a JSON array of daily volatility measures using a 3-month interval.

[
  {
    "record_date": 1696118400000,
    "ticker": "SNRH",
    "last_price": 10.03,
    "volatility": 0.0,
    "prev_day_volatility": 0.0,
    "percent_move": 0.0,
    "avg_volume": 0.0,
    "avg_price": 10.0,
    "time_period": 63
  },
  {
    "record_date": 1696118400000,
    "ticker": "DEI",
    "last_price": 12.76,
    "volatility": 0.175,
    "prev_day_volatility": 0.175,
    "percent_move": 0.011,
    "avg_volume": 2286403.2000000002,
    "avg_price": 13.5,
    "time_period": 63
  },
  ...
]

GET /getVolatilityAnalysis

Get the latest volatility analysis for a given symbol. If no symbol is specified, the latest volatility analysis will be provided.

Request

There is no request body for this endpoint.

Response

The response is a JSON array of volatility analysis stats.

[
    {
        "record_date": 1696118400000,
        "volatility_ratio": 0.727,
        "minimum_volatility": 0.038,
        "maximum_volatility": 0.128,
        "average_volatility": 0.074,
        "current_volatility": 0.065,
        "against_prev_volatility": -0.014,
        "curr_price": 171.21,
        "net_profitability": 0.253,
        "dividend_yield": 0.0056,
        "time_period_low": 124.49,
        "time_period_high": 196.19,
        "interval": 21.0
    }
]

POST /getVolatilityAnalysis

Get the latest volatility analysis for a given symbol. If no symbol is specified, the latest volatility analysis will be provided.

Request

{ "ticker":["AAPL",...,"TSLA"] }

Response

The response is a JSON array of volatility analysis stats.

[
    {
        "record_date": 1696118400000,
        "volatility_ratio": 0.727,
        "minimum_volatility": 0.038,
        "maximum_volatility": 0.128,
        "average_volatility": 0.074,
        "current_volatility": 0.065,
        "against_prev_volatility": -0.014,
        "curr_price": 171.21,
        "net_profitability": 0.253,
        "dividend_yield": 0.0056,
        "time_period_low": 124.49,
        "time_period_high": 196.19,
        "interval": 21.0
    },
    ...
]

POST /getVolatilityAnalysis

Get the latest volatility analysis for a given symbol. If no symbol is specified, the latest volatility analysis will be provided.

Request

{ "ticker":["AAPL",...,"TSLA"] }

Response

The response is a JSON array of volatility analysis stats.

[
    {
        "record_date": 1696118400000,
        "volatility_ratio": 0.727,
        "minimum_volatility": 0.038,
        "maximum_volatility": 0.128,
        "average_volatility": 0.074,
        "current_volatility": 0.065,
        "against_prev_volatility": -0.014,
        "curr_price": 171.21,
        "net_profitability": 0.253,
        "dividend_yield": 0.0056,
        "time_period_low": 124.49,
        "time_period_high": 196.19,
        "interval": 21.0
    },
    ...
]

GET /runAndGetVolatilityAnalysis

Run and get the latest volatility analysis for a given ticker or list of tickers. If no symbol is specified, the latest volatility analysis will be provided.

Request

{ "ticker":["AAPL",...,"TSLA"] }

Response

The response is a JSON array of volatility analysis stats.

[
    {
        "record_date": 1696118400000,
        "volatility_ratio": 0.727,
        "minimum_volatility": 0.038,
        "maximum_volatility": 0.128,
        "average_volatility": 0.074,
        "current_volatility": 0.065,
        "against_prev_volatility": -0.014,
        "curr_price": 171.21,
        "net_profitability": 0.253,
        "dividend_yield": 0.0056,
        "time_period_low": 124.49,
        "time_period_high": 196.19,
        "interval": 21.0
    },
    ...
]

POST/runAndGetVolatilityAnalysis

Run and get the latest volatility analysis for a given ticker or list of tickers. If no symbol is specified, the latest volatility analysis will be provided.

Request

{ "ticker":["AAPL",...,"TSLA"] }

Response

The response is a JSON array of volatility analysis stats.

[
    {
        "record_date": 1696118400000,
        "volatility_ratio": 0.727,
        "minimum_volatility": 0.038,
        "maximum_volatility": 0.128,
        "average_volatility": 0.074,
        "current_volatility": 0.065,
        "against_prev_volatility": -0.014,
        "curr_price": 171.21,
        "net_profitability": 0.253,
        "dividend_yield": 0.0056,
        "time_period_low": 124.49,
        "time_period_high": 196.19,
        "interval": 21.0
    },
    ...
]