Mencari Local Maxima dan Minima Harga Saham

By | August 30, 2022
Print Friendly, PDF & Email
599 Views

Mencari Local Maxima dan Minima Harga Saham – Mencari harga saham yang terbaik untuk keputusan beli dan jual ternyata gampang-gampang susah. Salah satu indikator yang sering digunakan untuk menentukan harga saham tersebut dalam kondisi jenuh jual/beli yaitu indikator RSI. Namun demikian, kita bisa kok menggunakan pengolahan sinyal digital untuk mencari local maxima dan minima harga saham

Local maxima dan minima merupakan kondisi peak pada area tertentu sehingga terlihat lebih clear dilihat oleh trader. Cara Mencari Local Maxima dan Minima Harga Saham cukup mudah kok karena ada banyak package yang bisa kita gunakan, seperti di package quantmod dengan function nya yaitu quantmod::findPeaks, namun hasilnya kok tidak akurat.

Berikut tampilan peak dari pengolahan package quandmod

library(quantmod)
library(dplyr)
library(lubridate)
library(ggplot2)
library(ggpubr)
library(grid)
library(tidyquant)
library(data.table)
library(gt)
library(plotly)


subtitle<-function(text){
    a = list(text = text,
             #font = f,
             xref = "paper",
             yref = "paper",
             yanchor = "top",
             xanchor = "left",
             align = "left",
             x = 0.5,
             y = 1,
             showarrow = FALSE)
    return(a)
}


pSignal = stock.emiten$Close #diambil dari CSV
#cara ke 1
#https://stats.stackexchange.com/questions/22974/how-to-find-local-peaks-valleys-in-a-series-of-data
p = quantmod::findPeaks(pSignal)
plot_ly(x = stock.emiten$Date,y = stock.emiten$Close, 
        type = 'scatter',mode='lines',
        name = 'Close') %>%
  add_trace(x = stock.emiten$Date[p],
            y = (pSignal[p]),
            type = 'scatter',
            name = 'maxima',
            mode='markers') %>%
    layout(annotations = subtitle(paste("emiten : ",emiten,sep="")))

Selain pakai quandmod, kita bisa menggunakan spatialEco melalui kode berikut

library(spatialEco)
lmm <- local.min.max(pSignal, dev=mean, add.points=TRUE, main="Local Minima and Maxima")

sudah bagus sih, cuman x labelnya kurang bagus karena tidak bisa menggunakan format date seperti di plotly, setelah lihat2 kodenya di https://www.rdocumentation.org/packages/spatialEco/versions/1.3-7/topics/local.min.max. kita malah bisa membuat function sendiri dengan mengambil kode diatas

hitung.minima<-function(stock.emiten){
    pSignal = stock.emiten$Close
    x <- stats::na.omit(pSignal)
    r <- rle(x) 
    minima <- which(rep(x=diff(sign(diff(c(-Inf, r$values, -Inf)))) == 2, times=r$lengths))
    return(minima)
}
hitung.maxima<-function(stock.emiten){
    pSignal = stock.emiten$Close
    x <- stats::na.omit(pSignal)
    r <- rle(x) 
    maxima <- which(rep(x=diff(sign(diff(c(-Inf, r$values, -Inf)))) == -2, times=r$lengths)) 
    return (maxima)
}

dengan menggunakan kode diatas, kita bisa membuat plotly lebih bagus lagi

minima = hitung.minima(stock.emiten)
maxima = hitung.maxima(stock.emiten)


fig.maxima.minima = plot_ly(x = stock.emiten$Date,y = stock.emiten$Close, type = 'scatter', mode = 'lines',name="Close") %>%
    add_trace(x = stock.emiten$Date,
              y = stock.emiten$Close,
              name = "Close",
              type = 'scatter',
              mode = "markers") %>%
    add_trace(x = stock.emiten$Date[minima],
              y = stock.emiten$Close[minima],
              name = "minima",
              type = 'scatter',
              mode = "markers") %>%
    add_trace(x = stock.emiten$Date[maxima],
              y = stock.emiten$Close[maxima],
              name = "maxima",
              type = 'scatter',
              mode = "markers") %>%
    layout(annotations = subtitle(paste("emiten : ",emiten,sep="")))

fig.maxima.minima

akan nampak sekali, grafik Close Price pada emiten SOSS membentuk POLA U dan akan kembali ke titik awal lagi, sekitar di harga Rp. 400an/lembar. Periode Juli – Agustus 2022 pada titik rendah 28 juli 2022 di harga Rp. 250/lembar. Kita bisa melihat emiten MPMX pada periode yang sama memiliki trend kenaikan harian

See also  Dekomposisi Runtun Waktu - Time Series Transaksi Saham

 

Dengan Mencari Local Maxima dan Minima Harga Saham akan terlihat jelas pergerakan harga saham.

Leave a Reply