[Google SpreadSheet] Función GOOGLEFINANCE(): Índice fuerza relativa (RSI) Ⅳ
HTML-код
- Опубликовано: 16 ноя 2024
- Obtener el índice de fuerza relativa (RSI) en datos históricos, calculado por la variación de precio. Respecto al precio de cierre. Período asignado a su criterio en Ticker!J2 con función GOOGLEFINANCE()
Ticker!A1: ✍NASDAQ:GOOG
Ticker!A2: 🖉 Días.
Ticker!I2: 🖌 SMA.
Ticker!J2: 🖊 RSI
Formato de número personalizado (opcional).
Ticker!A1: 0;0;0;"📌"@
Ticker!A2:"🗓"#,##0" Days"
Ticker!I2: " 📏"#,##0" Length"
Columna G [blue]+#,##0.00;[red]-#,##0.00;0.00
Columna H [blue]+#,##0.00%;[red]-#,##0.00%;0.00%
Sustituye la palabra Mayor Menor por el signo.
Propuesta:
Ⓐ TickerHistroy!A1:
=GOOGLEFINANCE(Ticker!A1;"all";DATE(1930;1;1);TODAY();"DAILY")
Ⓑ Ticker!A3:
=LET(getRangeDatasHistory;TickerHistory!A:F; getDays;Ticker!A2;
getCountShowResults;QUERY(getRangeDatasHistory;"select count(Col1) where Col1 Mayor= date '"&TEXT(TODAY()-getDays;"yyyy-mm-dd")&"' label count(Col1) ''");
getDatasHistoryOperate;QUERY(getRangeDatasHistory;"order by Col1 desc limit "&getCountShowResults;1);
getShowResults;QUERY(getDatasHistoryOperate;"order by Col1 desc label Col1 '📆Fecha', Col2 '🔓Apertura', Col3 '📈Máximo', Col4 '📉Mínimo', Col5 '🔒Cierre', Col6 '📊Volumen'
format Col1 'dd/mm/yyyy', Col2 '#,##0.00', Col3 '#,##0.00', Col4 '#,##0.00', Col5 '#,##0.00', Col6 '[Mayor=1000000000000]#,##0.00,,,,"&CHAR(34)&"B"&CHAR(34)&";[Mayor=1000000]#,##0.00,,"&CHAR(34)&"M"&CHAR(34)&";#,##0.00,"&CHAR(34)&"K"&CHAR(34)&"'";1);
HSTACK(getShowResults))
Ⓒ Ticker!G3:
=LET(getRangeDatasHistory;TickerHistory!A:F; getDays;A2;
getCountShowResults;QUERY(getRangeDatasHistory;"select count(Col1) where Col1 Mayor= date '"&TEXT(TODAY()-getDays;"yyyy-mm-dd")&"' label count(Col1) ''");
getDatasHistoryOperate;QUERY(getRangeDatasHistory;"order by Col1 desc limit "&getCountShowResults+1;1);
getPriceClose;QUERY(getDatasHistoryOperate;"select Col5";1);
getPriceClosePrevious;QUERY(getDatasHistoryOperate;"select Col5 offset 1";1);
getVar;QUERY(HSTACK(getPriceClose;getPriceClosePrevious);"select (Col1-Col2) ";1);
getVarPercent;QUERY(HSTACK(getPriceClose;getPriceClosePrevious);"select (1-(Col2/Col1))";1);
getShowResults;QUERY(HSTACK(getVar;getVarPercent);"limit "&getCountShowResults&" label Col1 '🧮Var', Col2 '🧮Var %' format Col1 '[blue]+#,##0.00;[red]-#,##0.00;0.00', Col2 '[blue]+#,##0.00%;[red]-#,##0.00%;0.00%'";1);
HSTACK(getShowResults))
Ⓓ Ticker!I3:
=LET(getRangeDatasHistory;TickerHistory!A:F; getDays;A2; getLengthSma;I2;
getCountShowResults;QUERY(getRangeDatasHistory;"select count(Col1) where Col1 Mayor= date '"&TEXT(TODAY()-getDays;"yyyy-mm-dd")&"' label count(Col1) ''");
getDatasHistoryOperate;QUERY(getRangeDatasHistory;"order by Col1 desc limit "&getCountShowResults+getLengthSma;1);
getSma;MAP(SEQUENCE(getCountShowResults+getLengthSma;1;0;1);LAMBDA(getOffsetNext;LET(
getDataNext;QUERY(getDatasHistoryOperate;"select Col5 limit "&getLengthSma&" offset "&getOffsetNext);
AVERAGE(getDataNext))));
getShowResults;QUERY(VSTACK("🧱Sma: "&getLengthSma;getSma);"limit "&getCountShowResults&" format Col1 '#,##0.00'";1);
HSTACK(getShowResults))
Ⓔ Insertar fórmula en Ticker!J3:
=LET(getRangeDatasHistory;TickerHistory!$A:$F; getDays;$A$2; getLengthRsi;$J$2;
getCountShowResults;QUERY(getRangeDatasHistory;"select count(Col1) where Col1 Mayor= date '"&TEXT(TODAY()-getDays;"yyyy-mm-dd")&"' label count(Col1) ''");
getDatasHistoryOperate;QUERY(getRangeDatasHistory;"order by Col1 desc limit "&getCountShowResults+getLengthRsi;1);
getPriceClose;QUERY(getDatasHistoryOperate;"select Col5";1);
getPriceClosePrevious;QUERY(getDatasHistoryOperate;"select Col5 offset 1";1);
getVar;QUERY(HSTACK(getPriceClose;getPriceClosePrevious);"select (Col1-Col2) label (Col1-Col2) ''");
getRsi;MAP(SEQUENCE(getCountShowResults+getLengthRsi;1;0;1);LAMBDA(getOffsetNext;LET(
getVarOperate;QUERY(getVar;"limit "&getLengthRsi&" offset "&getOffsetNext&" label Col1 ''");
getVarPositiveAvg;QUERY(getVarOperate;"select avg(Col1) where Col1 Mayor 0 label avg(Col1) ''");
getVarNegativeAvg;ABS(QUERY(getVarOperate;"select avg(Col1) where Col1 Menor 0 label avg(Col1) ''"));
100-100/(1+(getVarPositiveAvg/getVarNegativeAvg)))));
getShowResults;QUERY(VSTACK("💪Rsi: "&getLengthRsi;getRsi);"limit "&getCountShowResults&" format Col1 '#,##0.00;#,##0.00;0.00'";1);
HSTACK(getShowResults))
Ⓔ Fórmula en Ticker!J3:
LET asigna nombres .
«getRangeDatasHistory» datos históricos.
«getDay» intervalo de días.
«getCountShowResults» periodos. QUERY: Function count. Cálculo fecha actual TODAY, resta y formato TEXT. «getDatasHistoryOperate» valores descendente, QUERY: Clause order by.
«getPriceClose» precios
«getPriceClosePrevious» precios anterior QUERY: Clause offset.
«getVar» variación. Matriz HSTACK y resta QUERY: Clause select.
«getRsi» Matriz MAP número consecutivos SEQUENCE. «getOffsetNext».
LET «getVarOperate» limitado QUERY: Clause limit y desfase.
«getVarPositiveAvg» media. QUERY: Function avg, en positivo.
«getVarNegativeAvg» media en negativo.
Cálculo RSI.
«getShowResults» resultados.
HSTACK resultados matriz cuadrada.