Bufff Me has ayudado mucho, pero es que no me está funcionando nada bien esto... quiero decir todo está de forma muy ambigua... para empezar estoy recopilando la información de la tabla yahoo.finance.quotes que realmente no sé donde carajos está, pero parece ser que es como una opentable? comunity table? O sea no es por decirlo de alguna manera "oficial"?
Digo esto porque hay valores que no salen... y esto es como estar jugando a ciegas...
Mi código de testeo es el siguiente:
$company = "'AAPL'";
$yql_base_url = "
http://query.yahooapis.com/v1/public/yql";
$yql_query = "select * from yahoo.finance.quotes where symbol in ($company)";
$yql_query_url = $yql_base_url . "?q=" . urlencode($yql_query);
$yql_query_url .= "&env=
http://datatables.org/alltables.env";
$yql_query_url .= "&format=json";
$session = curl_init($yql_query_url);
curl_setopt($session, CURLOPT_RETURNTRANSFER, true);
$json = curl_exec($session);
$phpObj = json_decode($json);
print_r($phpObj);
Con apple la cosa funciona estupendamente:
stdClass Object ( [query] => stdClass Object ( [count] => 1 [created] => 2014-09-05T09:10:52Z [lang] => en-US [results] => stdClass Object ( [quote] => stdClass Object ( [symbol] => AAPL [Ask] => 98.13 [AverageDailyVolume] => 49914100 [Bid] => 98.08 [AskRealtime] => 98.13 [BidRealtime] => 98.08 [BookValue] => 20.193 [Change_PercentChange] => -0.82 - -0.83% [Change] => -0.82 [Commission] => [Currency] => USD [ChangeRealtime] => -0.82 [AfterHoursChangeRealtime] => N/A - N/A [DividendShare] => 1.8114 [LastTradeDate] => 9/4/2014 [TradeDate] => [EarningsShare] => 6.20 [ErrorIndicationreturnedforsymbolchangedinvalid] => [EPSEstimateCurrentYear] => 6.33 [EPSEstimateNextYear] => 7.05 [EPSEstimateNextQuarter] => 2.33 [DaysLow] => 97.79 [DaysHigh] => 100.09 [YearLow] => 63.8886 [YearHigh] => 103.74 [HoldingsGainPercent] => - - - [AnnualizedGain] => [HoldingsGain] => [HoldingsGainPercentRealtime] => N/A - N/A [HoldingsGainRealtime] => [MoreInfo] => cnsprmiIed [OrderBookRealtime] => [MarketCapitalization] => 587.5B [MarketCapRealtime] => [EBITDA] => 59.128B [ChangeFromYearLow] => +34.2314 [PercentChangeFromYearLow] => +53.58% [LastTradeRealtimeWithTime] => N/A - 98.12 [ChangePercentRealtime] => N/A - -0.83% [ChangeFromYearHigh] => -5.62 [PercebtChangeFromYearHigh] => -5.42% [LastTradeWithTime] => Sep 4 - 98.12 [LastTradePriceOnly] => 98.12 [HighLimit] => [LowLimit] => [DaysRange] => 97.79 - 100.09 [DaysRangeRealtime] => N/A - N/A [FiftydayMovingAverage] => 97.9071 [TwoHundreddayMovingAverage] => 87.147 [ChangeFromTwoHundreddayMovingAverage] => +10.973 [PercentChangeFromTwoHundreddayMovingAverage] => +12.59% [ChangeFromFiftydayMovingAverage] => +0.2129 [PercentChangeFromFiftydayMovingAverage] => +0.22% [Name] => Apple Inc. [Notes] => [Open] => 99.00 [PreviousClose] => 98.94 [PricePaid] => [ChangeinPercent] => -0.83% [PriceSales] => 3.33 [PriceBook] => 4.90 [ExDividendDate] => Aug 7 [PERatio] => 15.96 [DividendPayDate] => Aug 14 [PERatioRealtime] => [PEGRatio] => 1.28 [PriceEPSEstimateCurrentYear] => 15.63 [PriceEPSEstimateNextYear] => 14.03 [Symbol] => AAPL [SharesOwned] => [ShortRatio] => 1.70 [LastTradeTime] => 4:15pm [TickerTrend] => ====== [OneyrTargetPrice] => 106.83 [Volume] => 85723576 [HoldingsValue] => [HoldingsValueRealtime] => [YearRange] => 63.8886 - 103.74 [DaysValueChange] => - - -0.83% [DaysValueChangeRealtime] => N/A - N/A [StockExchange] => NasdaqNM [DividendYield] => 1.83 [PercentChange] => -0.83% ) ) ) )
Pero si pongo por ejemplo una empresa del IBEX 35, DIA por ejemplo:
que sería ponerlo así no:
$company = "'DIA.MC'";
salen 2 tipos de errores, o todas las columnas vacías:
stdClass Object ( [query] => stdClass Object ( [count] => 1 [created] => 2014-09-05T09:15:52Z [lang] => en-US [results] => stdClass Object ( [quote] => stdClass Object ( [symbol] => DIA.MC [Ask] => [AverageDailyVolume] => 0 [Bid] => [AskRealtime] => [BidRealtime] => [BookValue] => [Change_PercentChange] => N/A - N/A [Change] => [Commission] => [Currency] => [ChangeRealtime] => 0.00 [AfterHoursChangeRealtime] => N/A - N/A [DividendShare] => [LastTradeDate] => [TradeDate] => [EarningsShare] => [ErrorIndicationreturnedforsymbolchangedinvalid] => No such ticker symbol. Try Symbol Lookup (Look up: DIA.MC) [EPSEstimateCurrentYear] => [EPSEstimateNextYear] => [EPSEstimateNextQuarter] => [DaysLow] => [DaysHigh] => [YearLow] => [YearHigh] => [HoldingsGainPercent] => - [AnnualizedGain] => [HoldingsGain] => [HoldingsGainPercentRealtime] => N/A - N/A [HoldingsGainRealtime] => [MoreInfo] => n [OrderBookRealtime] => [MarketCapitalization] => [MarketCapRealtime] => [EBITDA] => [ChangeFromYearLow] => [PercentChangeFromYearLow] => [LastTradeRealtimeWithTime] => N/A - 0.00 [ChangePercentRealtime] => N/A - 0.00% [ChangeFromYearHigh] => [PercebtChangeFromYearHigh] => [LastTradeWithTime] => N/A - 0.00 [LastTradePriceOnly] => 0.00 [HighLimit] => [LowLimit] => [DaysRange] => N/A - N/A [DaysRangeRealtime] => N/A - N/A [FiftydayMovingAverage] => [TwoHundreddayMovingAverage] => [ChangeFromTwoHundreddayMovingAverage] => [PercentChangeFromTwoHundreddayMovingAverage] => [ChangeFromFiftydayMovingAverage] => [PercentChangeFromFiftydayMovingAverage] => [Name] => DIA.MC [Notes] => [Open] => [PreviousClose] => [PricePaid] => [ChangeinPercent] => [PriceSales] => [PriceBook] => [ExDividendDate] => [PERatio] => [DividendPayDate] => [PERatioRealtime] => [PEGRatio] => [PriceEPSEstimateCurrentYear] => [PriceEPSEstimateNextYear] => [Symbol] => DIA.MC [SharesOwned] => [ShortRatio] => [LastTradeTime] => [TickerTrend] => [OneyrTargetPrice] => [Volume] => [HoldingsValue] => [HoldingsValueRealtime] => [YearRange] => N/A - N/A [DaysValueChange] => - 0.00% [DaysValueChangeRealtime] => N/A - N/A [StockExchange] => [DividendYield] => [PercentChange] => N/A ) ) ) )
o sin resultados:
stdClass Object ( [query] => stdClass Object ( [count] => 0 [created] => 2014-09-05T09:12:38Z [lang] => en-US [results] => ) )
Para probar he ido a otros mercados y parece que alguno funciona, por ejemplo en DAX: ADS.DE Adidas AG
pues cambio a
$company = "'ADS.DE'"; y tachán funciona:
stdClass Object ( [query] => stdClass Object ( [count] => 1 [created] => 2014-09-05T09:19:18Z [lang] => en-US [results] => stdClass Object ( [quote] => stdClass Object ( [symbol] => ADS.DE [Ask] => 59.46 [AverageDailyVolume] => 1717993 [Bid] => 59.41 [AskRealtime] => 59.46 [BidRealtime] => 59.41 [BookValue] => 26.351 [Change_PercentChange] => +0.239 - +0.40% [Change] => +0.239 [Commission] => [Currency] => EUR [ChangeRealtime] => +0.239 [AfterHoursChangeRealtime] => N/A - N/A [DividendShare] => 1.125 [LastTradeDate] => 9/5/2014 [TradeDate] => [EarningsShare] => 3.131 [ErrorIndicationreturnedforsymbolchangedinvalid] => [EPSEstimateCurrentYear] => 0.00 [EPSEstimateNextYear] => 0.00 [EPSEstimateNextQuarter] => 0.00 [DaysLow] => 59.14 [DaysHigh] => 59.60 [YearLow] => 54.16 [YearHigh] => 93.22 [HoldingsGainPercent] => - - - [AnnualizedGain] => [HoldingsGain] => [HoldingsGainPercentRealtime] => N/A - N/A [HoldingsGainRealtime] => [MoreInfo] => cnpI [OrderBookRealtime] => [MarketCapitalization] => 12.440B [MarketCapRealtime] => [EBITDA] => 1.251B [ChangeFromYearLow] => +5.299 [PercentChangeFromYearLow] => +9.78% [LastTradeRealtimeWithTime] => N/A - 59.459 [ChangePercentRealtime] => N/A - +0.40% [ChangeFromYearHigh] => -33.761 [PercebtChangeFromYearHigh] => -36.22% [LastTradeWithTime] => 5:03am - 59.459 [LastTradePriceOnly] => 59.459 [HighLimit] => [LowLimit] => [DaysRange] => 59.14 - 59.60 [DaysRangeRealtime] => N/A - N/A [FiftydayMovingAverage] => 62.8403 [TwoHundreddayMovingAverage] => 73.9558 [ChangeFromTwoHundreddayMovingAverage] => -14.4968 [PercentChangeFromTwoHundreddayMovingAverage] => -19.60% [ChangeFromFiftydayMovingAverage] => -3.3813 [PercentChangeFromFiftydayMovingAverage] => -5.38% [Name] => ADIDAS N [Notes] => [Open] => 59.22 [PreviousClose] => 59.22 [PricePaid] => [ChangeinPercent] => +0.40% [PriceSales] => 0.86 [PriceBook] => 2.25 [ExDividendDate] => May 9 [PERatio] => 18.91 [DividendPayDate] => [PERatioRealtime] => [PEGRatio] => [PriceEPSEstimateCurrentYear] => [PriceEPSEstimateNextYear] => [Symbol] => ADS.DE [SharesOwned] => [ShortRatio] => [LastTradeTime] => 5:03am [TickerTrend] => -+=+-+ [OneyrTargetPrice] => [Volume] => 333449 [HoldingsValue] => [HoldingsValueRealtime] => [YearRange] => 54.16 - 93.22 [DaysValueChange] => - - +0.40% [DaysValueChangeRealtime] => N/A - N/A [StockExchange] => XETRA [DividendYield] => 1.90 [PercentChange] => +0.40% ) ) ) )
En fin que pasa, que el IBEX35 no vale nada internacionalmente? jeje
Es que ahora mismo ya lo tendría todo para empezar mi aplicación.... pero macho es que el IBEX35 precisamente sería el más importante de tener...