[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.

Комментарии •