Valuation History

Get historical valuation metric time series (PE, PB, PS, dividend yield).

Parameters

SDK method parameters.

NameTypeRequiredDescription
symbolstringYESSecurity symbol, e.g. AAPL.US

Request Example

from longbridge.openapi import FundamentalContext, Config, OAuthBuilder

oauth = OAuthBuilder("your-client-id").build(lambda url: print("Visit:", url))
config = Config.from_oauth(oauth)
ctx = FundamentalContext(config)

resp = ctx.valuation_history("AAPL.US")
print(resp)
import asyncio
from longbridge.openapi import AsyncFundamentalContext, Config, OAuthBuilder

async def main() -> None:
    oauth = await OAuthBuilder("your-client-id").build_async(lambda url: print("Visit:", url))
    config = Config.from_oauth(oauth)
    ctx = AsyncFundamentalContext.create(config)

    resp = await ctx.valuation_history("AAPL.US")
    print(resp)

if __name__ == "__main__":
    asyncio.run(main())
const { Config, FundamentalContext, OAuth } = require('longbridge')

async function main() {
  const oauth = await OAuth.build('your-client-id', (_, url) => {
    console.log('Open this URL to authorize: ' + url)
  })
  const config = Config.fromOAuth(oauth)
  const ctx = FundamentalContext.new(config)
  const resp = await ctx.valuationHistory('AAPL.US')
  console.log(resp)
}
main().catch(console.error)
import com.longbridge.*;
import com.longbridge.fundamental.*;

class Main {
    public static void main(String[] args) throws Exception {
        try (OAuth oauth = new OAuthBuilder("your-client-id").build(url -> System.out.println("Open to authorize: " + url)).get();
             Config config = Config.fromOAuth(oauth);
             FundamentalContext ctx = FundamentalContext.create(config)) {
            var resp = ctx.getValuationHistory("AAPL.US").get();
            System.out.println(resp);
        }
    }
}
use std::sync::Arc;
use longbridge::{oauth::OAuthBuilder, fundamental::FundamentalContext, Config};

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let oauth = OAuthBuilder::new("your-client-id").build(|url| println!("Open: {url}")).await?;
    let config = Arc::new(Config::from_oauth(oauth));
    let ctx = FundamentalContext::new(config);
    let resp = ctx.valuation_history("AAPL.US").await?;
    println!("{:?}", resp);
    Ok(())
}
#include &lt;iostream&gt;
#include <longbridge.hpp>

using namespace longbridge;
using namespace longbridge::fundamental;

int main() {
    OAuthBuilder("your-client-id").build(
        [](const std::string& url) { std::cout << "Open: " << url << std::endl; },
        [](auto res) {
            if (!res) return;
            Config config = Config::from_oauth(*res);
            FundamentalContext ctx = FundamentalContext::create(config);
            ctx.valuation_history("AAPL.US", [](auto resp) {
                if (resp) std::cout << "OK" << std::endl;
            });
        });
    std::cin.get();
}
package main

import (
	"context"
	"fmt"
	"log"

	"github.com/longbridge/openapi-go/config"
	"github.com/longbridge/openapi-go/oauth"
	"github.com/longbridge/openapi-go/fundamental"
)

func main() {
	o := oauth.New("your-client-id").
		OnOpenURL(func(url string) { fmt.Println("Open this URL to authorize:", url) })
	if err := o.Build(context.Background()); err != nil {
		log.Fatal(err)
	}
	conf, err := config.New(config.WithOAuthClient(o))
	if err != nil {
		log.Fatal(err)
	}
	c, err := fundamental.NewFromCfg(conf)
	if err != nil {
		log.Fatal(err)
	}
	defer c.Close()
	resp, err := c.ValuationHistory(context.Background(), "AAPL.US")
	if err != nil {
		log.Fatal(err)
	}
	fmt.Printf("%+v\n", resp)
}

Response

Response Example

{
  "code": 0,
  "message": "success",
  "data": {
    "history": {
      "metrics": {
        "pe": {
          "desc": "P/E Ratio",
          "high": "35.2",
          "low": "18.1",
          "median": "26.5",
          "list": [
            {
              "timestamp": "1622520000",
              "value": "28.5"
            }
          ]
        },
        "pb": null,
        "ps": null
      }
    }
  }
}

Response Status

StatusDescriptionSchema
200SuccessValuationHistoryResponse
400Bad requestNone

Schemas

ValuationHistoryResponse

NameTypeRequiredDescription
historyobjecttrueValuation history data
history.metricsobjectfalseValuation metrics
history.metrics.peobjectfalseP/E ratio history
history.metrics.pbobjectfalseP/B ratio history
history.metrics.psobjectfalseP/S ratio history

ValuationMetric

NameTypeRequiredDescription
descstringfalseDescription of current valuation
highstringfalseHistorical high value
lowstringfalseHistorical low value
medianstringfalseMedian value
listobject[]falseTime series data points, see ValuationMetric
list[].datestringfalseDate (YYYY-MM-DD)
list[].valuestringfalseValuation value