Files
LAB_LINGKUNGAN/FOLDER/datasahamindonesia.md
2025-05-01 16:51:10 +07:00

20 KiB
Raw Permalink Blame History

Panduan Penulisan Kriteria pada Screener Posted on November 6, 2016 by admin Pada update aplikasi Data Saham Indonesia versi 1.3.03 1.3.05 kami menambah fitur Stock Screener dan Stock Scoring. Artikel ini akan membahas tata cara penulisan kriteria pada Stock Screener dan Stock Scoring. Stock Screener Stock Scoring Kriteria pada screener dinyatakan dalam rumus matematika yang disebut Boolean Expression (BE). Boolean Expression (BE) adalah ekpresi/pernyataan logika yang akan diproses sistem dan akan menghasilkan dua kemungkinan nilai, yaitu: nilai benar (true), atau nilai salah (false). Contoh: 4 == 4 ==> true 4 == 3 + 1 ==> true 4 > 5 ==> false true and false ==> false true or false ==> true 4 == 4 and 4 == 3 + 1 ==> true (catatan: tanda == adalah operator untuk menyatakan persamaan nilai) Proses screener akan menghitung rumus Boolean Expression pada kriteria yang di-input, terhadap seluruh saham yang terdaftar di bursa BEI (saat ini berjumlah 617 saham) dan menampilkan saham-saham yang menghasilkan nilai benar (true). Contoh: prev hourly close <= current hourly close ==> menampilkan saham-saham yang nilai close pada candle hourly sebelumnya lebih kecil atau sama dengan nilai close pada candle hourly saat ini. prev hourly close <= current hourly close AND hourly close >= hourly sma("close", 5) ==> (sama dgn kriteria sebelumnya) DAN close diatas MA5 hourly Rumus pada screener criteria bersifat fleksibel dan dapat berbentuk rumus sederhana seperti: open < close maupun rumus kompleks seperti: hourly high > prev hourly hhv("high", 100) and hourly close > hourly open and index macd_histogram > 0 and high < bollinger_top Boolean Expression dan Arithmetic Expression merupakan turunan dari Expression. Arithmetic Expression adalah suatu ekpresi/pernyataan yang akan menghasilkan satu nilai dalam himpunan bilangan real. Expression sendiri didefinisikan sebagai “apapun yang menghasilkan satu nilai”. Hierarki dari Expression adalah sebagai berikut: Expression : Boolean Expression (BE) Boolean Value : true , false Bracket Expression : ( BE ) Boolean Operation : and, or, not Arithmetic Comparison : >= , <= , > , < , == , != Arithmetic Expression (E) Numeric Expression Arithmetic Operation : * , / , + , Bracket Expression : ( E ) Stock Expression (catatan: pada dokumen ini dan pada criteria composer kami menggunakan notasi E sebagai singkatan untuk Arithmetic Expression) Bagian yang cukup penting dari kriteria screener adalah Stock Expression, yang merupakan turunan dari Arithmetic Expression. Struktur dari Stock Expression adalah sebagai berikut: E: stock_expression: [candle_selector] [timeframe] [target] <stock_attr> E: stock_expression: [candle_selector] [timeframe] [target] <stock_function> E: stock_expression: <stock_fundamental_attr> E: stock_expression: <bid_offer_variables> candle_selector: prev_N, ..., prev_3, prev_2, prev, current default: current Candle Selector timeframe: monthly, weekly, daily, hourly, 15min, 5min, 1min default: daily target: stock, sector, index default: stock stock_attr: open, high, low, close, volume macd, macd_signal, macd_histogram rsi, stoch_k, stoch_d, stochrsi, atr, adx, pdx, ndx, cci, uo, roc, william_r, mfi, cmf up_fractal, down_fractal alligator_jaw, alligator_teeth, alligator_lips, alligator_ao, alligator_ac bollinger_top, bollinger_bottom, bollinger_mean, bollinger_bandwidth, bollinger_percent_b, bollinger_percent_b_avg value, top_broker, foreign, top_broker_hist, foreign_hist dto_stochk, dto_stochd, obv, sar pivot_s1, pivot_s2, pivot_s3, pivot_r1, pivot_r2, pivot_r3 mid_price, tick stock_function: sma(n), sma(subformula,n) ema(n), ema(subformula,n) highest(subformula,n), hhv(subformula,n) lowest(subformula,n), llv(subformula,n) ranking(subformula,n) ranking_per_sector(subformula,n) roc(n) macd(fast_period,slow_period) macd_signal(fast_period,slow_period,signal_period) macd_histogram(fast_period,slow_period,signal_period) sum(subformula,n) vwap(n) cci(n) atr(n) adx(n) pdx(n) ndx(n) stoch_k(lookback_period,k_period) stoch_d(lookback_period,k_period,d_period) bollinger_top(period, multiplier) bollinger_bottom(period, multiplier) bollinger_mean(period, multiplier) bollinger_bandwidth(period, multiplier) bollinger_percent_b(period, multiplier) bollinger_percent_b_avg(period, multiplier) rsi(n) stochrsi(period,dtostoch_period,dtostoch_k_period,dtostoch_d_period) dto_stochk(period,dtostoch_period,dtostoch_k_period,dtostoch_d_period) dto_stochd(period,dtostoch_period,dtostoch_k_period,dtostoch_d_period) mfi(n) cmf(n) Parameter yang memiliki nilai default boleh tidak ditulis (tidak disertakan) dalam penulisan. Dalam hal Stock Expression hanya parameter stock_attr yang wajib ditulis. Contoh: current daily stock close == close ==> true current daily stock close == daily close ==> true current daily stock close == stock close ==> true current daily stock close == current daily close ==> true

Tetapi ketika parameter ditulis, maka urutan penulisan harus sesuai dengan struktur yang sudah ditetapkan diatas. Contoh: stock daily close ==> error daily current close ==> error current daily close ==> OK Parameter target terdiri dari 3 nilai yaitu: stock, sector, index stock : menyatakan target yang dipilih adalah chart dari saham yang bersangkutan, misal untuk saham TLKM dan BMRI : target stock akan memilih chart saham TLKM dan BMRI. sector : menyatakan target yang dipilih adalah chart dari index sectoral, misal untuk saham TLKM dan BMRI : target sector akan memilih chart dari index INFRA dan FINANCE. index : menyatakan target yang dipilih adalah chart index composite dari saham yang bersangkutan, misal untuk saham TLKM dan BMRI : target index akan memilih chart COMPOSITE (^JKSE) Berikut definisi stock_attr: open, high, low, close, volume : nilai open, high, low, close, volume dari chart candlestick saham macd, macd_signal, macd_histogram : nilai dari chart MACD(12,26,9) , macd_histogram = macd macd_signal rsi : nilai dari chart RSI(14) stoch_k, stoch_d : nilai dari chart Stochastic(15,3,3) stochrsi : nilai dari chart StochRSI(9,6) atr : nilai dari chart ATR(14) adx, pdx, ndx : nilai dari chart ADX(14) cci : nilai dari chart CCI(14) uo : nilai dari chart UO(7,14,28) roc : nilai dari chart ROC(12) william_r : nilai dari chart WilliamsR(14) mfi : nilai dari chart MFI(14) cmf : nilai dari chart CMF(21) alligator_jaw, alligator_teeth, alligator_lips, alligator_ao, alligator_ac : nilai dari chart Alligator(13,8,5) bollinger_top, bollinger_bottom, bollinger_mean, bollinger_bandwidth, bollinger_percent_b, bollinger_percent_b_avg : nilai dari chart Bollinger(20,2) value : total nilai transaksi saham top_broker : akumulasi dari transaksi top broker (current top_broker = prev top_broker + current top_broker_hist) foreign : akumulasi dari transaksi foreign (current foreign = prev foreign + current foreign_hist) top_broker_hist : nilai dari chart histogram transaksi top broker (dalam satuan lembar saham) foreign_hist : nilai dari chart histogram transaksi foreign (dalam satuan lembar saham) dto_stochk, dto_stochd : nilai dari chart DTOStoch(8,5,3) obv : sar : nilai dari chart SAR(0.02,0.2) pivot_s1, pivot_s2, pivot_s3, pivot_r1, pivot_r2, pivot_r3 : mid_price : mid_price = (high + low) / 2 tick : nilai fraksi harga saham (harga < 200 : 1 ; harga 200-500 : 2 ; harga 500-2000 : 5 ; harga 2000-5000 : 10; harga > 5000 : 25) vwap : vwap = (high + low + close) / 3 top_broker_hist = [5 top net buyer] [5 top net seller] stock_function merupakan fungsi dari stock_attr, berikut definisi stock_function: sma("<stock_attr>",N) : simple moving average dari suatu stock_attr sejumlah N bar Contoh: sma("close", 5) ==> MA5 dari nilai close daily hourly sma("volume", 20) ==> MA20 dari nilai volume hourly ema("<stock_attr>",N) : exponential moving average dari suatu stock_attr sejumlah N bar Contoh: ema("close", 5) ==> EMA5 dari nilai close daily hourly ema("volume", 20) ==> EMA20 dari nilai volume hourly highest("<stock_attr>",N) : hhv("<stock_attr>",N) : highest value/nilai tertinggi dari suatu stock_attr sejumlah N bar Contoh: daily hhv("high", 5) ==> 5 day highest high daily hourly hhv("close", 5) ==> 5 hour highest close hourly lowest("<stock_attr>",N) : llv("<stock_attr>",N) : lowest value/nilai terendah dari suatu stock_attr sejumlah N bar Contoh: daily llv("low", 5) ==> 5 day lowest low daily hourly llv("close", 5) ==> 5 hour lowest close hourly ranking("<stock_attr>",N) : ranking nilai stock_attr dari seluruh saham, dengan ranking 1 adalah nilai tertinggi dari stock_attr, jika diinginkan urutan dari terendah ke tertinggi kalikan stock_attr dengan -1 Contoh: ranking("value") <= 10 ==> filter saham-saham top 10 value ranking("roc") <= 10 ==> filter saham-saham yang memiliki 10 nilai ROC tertinggi ranking("roc * -1") <= 10 ==> filter saham-saham yang memiliki 10 nilai ROC terendah roc(period) : nilai dari chart Rate of Change (ROC) Contoh: roc(12) ==> nilai roc(12) macd(fast_period,slow_period) : macd_signal(fast_period,slow_period,signal_period) : macd_histogram(fast_period,slow_period,signal_period) : nilai dari chart macd, macd_signal, dan macd_histogram Contoh: macd(12, 26) ==> nilai macd(12, 26) macd_signal(12, 26, 9) ==> nilai macd signal(12, 26, 9) macd_histogram(12, 26, 9) ==> nilai macd histogram(12, 26, 9) sum("<stock_attr>",N) : jumlah dari stock_attr sejumlah N bar Contoh: sum("foreign", 5) ==> jumlah foreign accumulation 5 hari terakhir vwap(N) : nilai dari chart indikator Volume-Weighted Average Price (VWAP) Formula: vwap(N) = sum("volume * (high + low + close) / 3", N) / sum("volume", N) Contoh: vwap(5) nilai vwap dengan periode 5 hari terakhir atr(period) : nilai dari chart Average True Range (ATR) Contoh: atr(14) ==> nilai garis atr(14) adx(period) : nilai dari chart Average Directional Index (ADX) Contoh: adx(14) ==> nilai garis adx(14) pdx(14) ==> nilai garis DI+ pada indikator adx(14) ndx(14) ==> nilai garis DI- pada indikator adx(14) cci(period) : nilai dari chart Commodity Channel Index (CCI) Contoh: cci(20) ==> nilai cci(20) stoch_k(lookback_period,k_period) : stoch_d(lookback_period,k_period,d_period) : nilai dari chart Stochastic Oscillator Contoh: stock_k(15, 3) ==> nilai Stochastic %K(15, 3) stock_d(15, 3, 3) ==> nilai Stochastic %D(15, 3, 3) bollinger_top(period, multiplier) : bollinger_bottom(period, multiplier) : bollinger_mean(period, multiplier) : bollinger_bandwidth(period, multiplier) : bollinger_percent_b(period, multiplier) : bollinger_percent_b_avg(period, multiplier) : nilai dari chart Bollinger Bands Contoh: bollinger_top(20, 2) ==> nilai Bollinger Band top line(20, 2) bollinger_bottom(20, 2) ==> nilai Bollinger Band bottom line(20, 2) rsi(n) : nilai dari chart indikator Relative Strength Index (RSI) Contoh: rsi(14) ==> nilai garis indikator rsi(14) stochrsi(period,dtostoch_period,dtostoch_k_period,dtostoch_d_period) dto_stochk(period,dtostoch_period,dtostoch_k_period,dtostoch_d_period) dto_stochd(period,dtostoch_period,dtostoch_k_period,dtostoch_d_period) : nilai dari chart indikator StochRSI Contoh: stochrsi(14, 8, 5, 3) ==> nilai garis indikator stochrsi(14, 8, 5, 3) dto_stochk(14, 8, 5, 3) ==> nilai garis %K indikator stochrsi(14, 8, 5, 3) dto_stochd(14, 8, 5, 3) ==> nilai garis %D indikator stochrsi(14, 8, 5, 3) stock_fundamental_attr: debt_equity, ebitda, ebitda_anl, eps, eps_anl ev_ebitda, ev_ebitda_anl, market_cap, netprofit, netprofit_anl pbv, pbv_anl, per, per_anl, revenue, revenue_anl roa, roa_anl, roe, roe_anl debt_equity : Debt to Equity Ratio ebitda : Earnings Before Interest, Taxes, Depreciation and Amortization (lastest financial report) ebitda_anl : Earnings Before Interest, Taxes, Depreciation and Amortization (annualized) eps : Earning Per Share (lastest financial report) eps_anl : Earning Per Share (annualized) ev_ebitda : Enterprise Multiple (lastest financial report) ev_ebitda_anl : Enterprise Multiple (annualized) market_cap : Market Capitalization netprofit : Net Profit (lastest financial report) netprofit_anl : Net Profit (annualized) pbv : Price-to-Book Ratio (lastest financial report) pbv_anl : Price-to-Book Ratio (annualized) per : Price-Earnings Ratio (lastest financial report) per_anl : Price-Earnings Ratio (annualized) revenue : Revenue (lastest financial report) revenue_anl : Revenue (annualized) roa : Return on assets (lastest financial report) roa_anl : Return on assets (annualized) roe : Return on Equity (lastest financial report) roe_anl : Return on Equity (annualized) bid_offer_variables: top1_bid_volume, top1_bid_count, top1_offer_volume, top1_offer_count top3_bid_volume, top3_bid_count, top3_offer_volume, top3_offer_count top5_bid_volume, top5_bid_count, top5_offer_volume, top5_offer_count top10_bid_volume, top10_bid_count, top10_offer_volume, top10_offer_count all_bid_volume, all_bid_count, all_offer_volume, all_offer_count Bid Offer Variables top1_bid_volume : total volume pada bid di harga terbaik (lembar) top1_bid_count : jumlah order pada bid di harga terbaik top1_offer_volume : total volume pada offer di harga terbaik (lembar) top1_offer_count : jumlah order offer di harga terbaik top3_bid_volume : total volume pada bid di 3 harga terbaik (lembar) top3_bid_count : jumlah order pada bid di 3 harga terbaik top3_offer_volume : total volume pada offer di 3 harga terbaik (lembar) top3_offer_count : jumlah order offer di 3 harga terbaik top5_bid_volume : total volume pada bid di 5 harga terbaik (lembar) top5_bid_count : jumlah order pada bid di 5 harga terbaik top5_offer_volume : total volume pada offer di 5 harga terbaik (lembar) top5_offer_count : jumlah order offer di 5 harga terbaik top10_bid_volume : total volume pada bid di 10 harga terbaik (lembar) top10_bid_count : jumlah order pada bid di 10 harga terbaik top10_offer_volume : total volume pada offer di 10 harga terbaik (lembar) top10_offer_count : jumlah order offer di 10 harga terbaik all_bid_volume : total volume pada bid di semua harga (lembar) all_bid_count : jumlah order pada bid di semua harga all_offer_volume : total volume pada offer di semua harga (lembar) all_offer_count : jumlah order offer di semua harga bid_volume(n) : volume pada bid di harga terbaik ke-n, dimana n: 1,2,3,… bid_count(n) : jumlah order pada bid di harga terbaik ke-n, dimana n: 1,2,3,… offer_volume(n) : volume pada offer di harga terbaik ke-n, dimana n: 1,2,3,… offer_count(n) : jumlah order pada offer di harga terbaik ke-n, dimana n: 1,2,3,… sum_bid_volume(n) : total volume pada bid di n harga terbaik sum_bid_count(n) : jumlah order pada bid di n harga terbaik sum_offer_volume(n) : total volume pada offer di n harga terbaik sum_offer_count(n) : jumlah order pada offer di n harga terbaik Beberapa variable lain yang bisa di coba antara lain: (note untuk memeriksa nilai variable, atau mengetes formula bisa menggunakan menu “Formula Evaluator”) best_bid_price : harga bid (penawaran beli) tertinggi/terbaik saham best_offer_price : harga offer (penawaran jual) terendah/terbaik saham top1_bid_volume : total volume pada bid di harga terbaik (lembar) top1_bid_count : jumlah order pada bid di harga terbaik top3_bid_volume : total volume pada bid di 3 harga terbaik (lembar) top3_bid_count : jumlah order pada bid di 3 harga terbaik top5_bid_volume : total volume pada bid di 5 harga terbaik (lembar) top5_bid_count : jumlah order pada bid di 5 harga terbaik top10_bid_volume : total volume pada bid di 10 harga terbaik (lembar) top10_bid_count : jumlah order pada bid di 10 harga terbaik all_bid_volume : total volume pada bid di semua harga (lembar) all_bid_count : jumlah order pada bid di semua harga top1_offer_volume : total volume pada offer di harga terbaik (lembar) top1_offer_count : jumlah order pada offer di harga terbaik top3_offer_volume : total volume pada offer di 3 harga terbaik (lembar) top3_offer_count : jumlah order pada offer di 3 harga terbaik top5_offer_volume : total volume pada offer di 5 harga terbaik (lembar) top5_offer_count : jumlah order pada offer di 5 harga terbaik top10_offer_volume : total volume pada offer di 10 harga terbaik (lembar) top10_offer_count : jumlah order pada offer di 10 harga terbaik all_offer_volume : total volume pada offer di semua harga (lembar) all_offer_count : jumlah order pada offer di semua harga blot : volume transaksi yang terjadi pada harga bid (terjadi ha-ki) dalam satuan lot slot : volume transaksi yang terjadi pada harga offer (terjadi ha-ka) dalam satuan lot bvol : volume transaksi yang terjadi pada harga bid (terjadi ha-ki) dalam satuan lembar svol : volume transaksi yang terjadi pada harga offer (terjadi ha-ka) dalam satuan lembar bfreq : frequensi transaksi yang terjadi pada harga bid (terjadi ha-ki) sfreq : frequensi transaksi yang terjadi pada harga offer (terjadi ha-ka) all_buy_volume : sama dengan bvol all_sell_volume : sama dengan svol all_buy_freq : sama dengan bfreq all_sell_freq : sama dengan sfreq broker_buyer_count : jumlah broker yang melakukan pembelian broker_seller_count : jumlah broker yang melakukan penjualan net_broker_buyer_count : jumlah broker yang melakukan pembelian bersih net_broker_seller_count : jumlah broker yang melakukan penjualan bersih top1_net_broker_buyer_volume : total volume saham pembelian bersih 1 broker teratas dalam lembar top1_net_broker_buyer_value : nilai transaksi saham pembelian bersih 1 broker teratas top1_net_broker_buyer_avg_price : harga rata-rata saham pembelian bersih 1 broker teratas top3_net_broker_buyer_volume : total volume saham pembelian bersih 3 broker teratas dalam lembar top3_net_broker_buyer_value : nilai transaksi saham pembelian bersih 3 broker teratas top3_net_broker_buyer_avg_price : harga rata-rata saham pembelian bersih 3 broker teratas top5_net_broker_buyer_volume : total volume saham pembelian bersih 5 broker teratas dalam lembar top5_net_broker_buyer_value : nilai transaksi saham pembelian bersih 5 broker teratas top5_net_broker_buyer_avg_price : harga rata-rata saham pembelian bersih 5 broker teratas top10_net_broker_buyer_volume : total volume saham pembelian bersih 10 broker teratas dalam lembar top10_net_broker_buyer_value : nilai transaksi saham pembelian bersih 10 broker teratas top10_net_broker_buyer_avg_price : harga rata-rata saham pembelian bersih 10 broker teratas top1_net_broker_seller_volume : total volume saham penjualan bersih 1 broker teratas dalam lembar top1_net_broker_seller_value : nilai transaksi saham penjualan bersih 1 broker teratas top1_net_broker_seller_avg_price : harga rata-rata saham penjualan bersih 1 broker teratas top3_net_broker_seller_volume : total volume saham penjualan bersih 3 broker teratas dalam lembar top3_net_broker_seller_value : nilai transaksi saham penjualan bersih 3 broker teratas top3_net_broker_seller_avg_price : harga rata-rata saham penjualan bersih 3 broker teratas top5_net_broker_seller_volume : total volume saham penjualan bersih 5 broker teratas dalam lembar top5_net_broker_seller_value : nilai transaksi saham penjualan bersih 5 broker teratas top5_net_broker_seller_avg_price : harga rata-rata saham penjualan bersih 5 broker teratas top10_net_broker_seller_volume : total volume saham penjualan bersih 10 broker teratas dalam lembar top10_net_broker_seller_value : nilai transaksi saham penjualan bersih 10 broker teratas top10_net_broker_seller_avg_price : harga rata-rata saham penjualan bersih 10 broker teratas *sebagai pelengkap terdapat juga variable transaksi broker yang belum net (tanpa menggunakan kata net) sbb: top1_broker_buyer_volume, top3_broker_buyer_volume, top5_broker_buyer_volume, top10_broker_buyer_volume, top1_broker_seller_volume, top3_broker_seller_volume, top5_broker_seller_volume, top10_broker_seller_volume, Contoh-contoh formula screener: higher high higher low : prev high < high and prev low < low inside bar : prev high > high and prev low < low golden cross MA 5-20 (garis MA 5 memotong keatas MA 20) : prev sma(5) < prev sma(20) and sma(5) > sma(20) MACD naik : prev macd < macd and macd > 0 three white soldier : prev_2 close > prev_2 open and prev close > prev open and close > open daftar 10 saham tertinggi akumulasi berdasarkan nilai top-5-net-broker-accumulation : ranking("top_broker_hist * daily_price_avg") <= 10