Indikator Teknikal

ZigZag NK Channel: Indikator Berguna untuk MetaTrader 5
MetaTrader5
ZigZag NK Channel: Indikator Berguna untuk MetaTrader 5

Indikator ZigZag NK Channel ini dibina menggunakan tiga titik ekstrem dari indikator ZigZag. Ia membantu trader dalam menganalisis pergerakan harga dengan lebih berkesan. Terdapat dua versi indikator ini: satu dengan indikator ZigZag pada carta (ZigZag_NK_Channel2) dan satu lagi tanpa (ZigZag_NK_Channel). Pilihlah mana yang sesuai dengan gaya trading anda! Parameter input: //+----------------------------------------------+ //| Parameter input indikator                  | //+----------------------------------------------+ input int ExtDepth=12; input int ExtDeviation=5; input int ExtBackstep =3; //+----------------------------------------------+ //| Parameter untuk penciptaan channel           | //+----------------------------------------------+ input int FirstExtrNumb=1;                        // Nombor indeks puncak pertama (0,1,2,3...) input color Upper_color=DeepSkyBlue;              // Warna garisan channel atas input ENUM_LINE_STYLE Upper_style=STYLE_SOLID;      // Gaya garisan channel atas input ENUM_WIDTH Upper_width=w_3;                // Lebar garisan channel atas input color Middle_color=Teal;                    // Warna garisan tengah input ENUM_LINE_STYLE Middle_style=STYLE_DASHDOTDOT; // Gaya garisan tengah input ENUM_WIDTH Middle_width=w_1;               // Lebar garisan tengah input color Lower_color=Magenta;                  // Warna garisan channel bawah input ENUM_LINE_STYLE Lower_style=STYLE_SOLID;      // Gaya garisan channel bawah input ENUM_WIDTH Lower_width=w_3;                // Lebar garisan channel bawah

2011.11.25
X2MA NRTR: Indikator Hebat untuk MetaTrader 5
MetaTrader5
X2MA NRTR: Indikator Hebat untuk MetaTrader 5

Indikator ini menggunakan algoritma NRTR (Nick Rypock Trailing Reverse) untuk membetulkan nilai purata bergerak. Dengan bantuan algoritma ini, trader dapat mendapatkan analisis yang lebih tepat dalam membuat keputusan perdagangan. Sistem Trading GODZILLA, yang meraih tempat ketiga dalam Kejuaraan Perdagangan Automatik 2006, dibangunkan berdasarkan sistem perdagangan breakout dengan menggunakan bacaan dari indikator ini. Terdapat sepuluh versi algoritma pemulusan yang boleh dipilih: SMA - purata bergerak sederhana; EMA - purata bergerak eksponen; SMMA - purata bergerak yang dipulihkan; LWMA - purata bergerak berwajaran linear; JJMA - purata adaptif JMA; JurX - pemulusan ultralinear; ParMA - pemulusan parabola; T3 - pemulusan eksponen berganda Tillson; VIDYA - pemulusan menggunakan algoritma Tushar Chande; AMA - pemulusan menggunakan algoritma Perry Kaufman. Perlu diingat bahawa parameter Phase1 dan Phase2 mempunyai makna yang berbeza untuk setiap algoritma pemulusan. Untuk JMA, ia adalah variabel Phase luar yang berubah dari -100 hingga +100. Untuk T3, ia adalah nisbah pemulusan yang dikalikan dengan 100 untuk visualisasi yang lebih baik, sementara untuk VIDYA, ia adalah tempoh osilator CMO dan untuk AMA, ia adalah tempoh EMA perlahan. Dalam algoritma lain, parameter ini tidak mempengaruhi pemulusan. Untuk AMA, tempoh EMA cepat adalah nilai tetap dan sama dengan 2 secara lalai. Nisbah kuasa juga sama dengan 2 untuk AMA. Indikator ini menggunakan kelas daripada SmoothAlgorithms.mqh (perlu disalin ke terminal_data_folder\MQL5\Include). Penggunaan kelas ini telah diterangkan secara terperinci dalam artikel "Menyamakan Siri Harga untuk Pengiraan Pertengahan Tanpa Menggunakan Penampan Tambahan". Parameter input indikator: //+-----------------------------------+ //|  Parameter input indikator      | //+-----------------------------------+ input Smooth_Method MA_Method1=MODE_SMA;  // Kaedah purata pemulusan pertama input int Length1=12;                     // Kedalaman pemulusan pertama input int Phase1=15;                      // Parameter pemulusan pertama //---- untuk JJMA Phase1 diubah dalam julat -100 ... +100 yang mempengaruhi kualiti proses transisi; //---- untuk VIDIA Phase1 adalah tempoh CMO, untuk AMA ia adalah tempoh purata bergerak perlahan input Smooth_Method MA_Method2=MODE_JJMA; // Kaedah purata pemulusan kedua input int Length2= 5;                     // Kedalaman pemulusan kedua input int Phase2=15;                      // Parameter pemulusan kedua //---- untuk JJMA Phase2 diubah dalam julat -100 ... +100 yang mempengaruhi kualiti proses transisi; //---- untuk VIDIA Phase2 adalah tempoh CMO, untuk AMA ia adalah tempoh purata bergerak perlahan input Applied_price_ IPC=PRICE_CLOSE;     // Harga tetap /* pengiraan indikator dilakukan pada harga ini (1-CLOSE, 2-OPEN, 3-HIGH, 4-LOW,   5-MEDIAN, 6-TYPICAL, 7-WEIGHTED, 8-SIMPLE, 9-QUARTER, 10-TRENDFOLLOW, 11-0.5 * TRENDFOLLOW.) */ input uint Step=30;                       // Saiz osilasi mendatar //---- parameter ini menentukan saiz osilasi yang dianggap mendatar (penetapan digital discretization dalam mata) input uint Max_DEV=55;                    // Penyimpangan terminal harga dari X2MA yang tidak mengubah nilai purata input int Shift=0;                        // Peralihan mendatar indikator dalam bar input int PriceShift=0;                   // Peralihan menegak indikator dalam mata

2011.11.24
XXDPO: Indikator Hebat untuk MetaTrader 5
MetaTrader5
XXDPO: Indikator Hebat untuk MetaTrader 5

Detrended Price Oscillator (DPO) adalah indikator teknikal yang membantu kita memahami keadaan pasaran sama ada terlebih beli atau terlalu jual. Ia juga berguna untuk mendapatkan isyarat beli atau jual.Indikator ini menyusun trend dengan memberi tumpuan kepada kitaran pergerakan harga yang asas. Dengan menggunakan purata bergerak, ia bertukar menjadi garis, dan perubahan harga di atas dan di bawah garis tersebut menjadi osilator trend.DPO digunakan untuk menyerlahkan kitaran jangka pendek, kerana analisis komponen jangka pendek daripada kitaran jangka panjang boleh membantu kita menentukan titik pembalikan utama. Indikator ini tidak mengambil kira kitaran harga jangka panjang, menjadikan kitaran jangka pendek lebih ketara.Pengiraan:Versi DPO ini dikira dengan cara berikut:XXDPO = XMA(Harga[bar] - XMA(Harga[bar], SMOOTH_Period), DPO_Period)di mana:XMA - algoritma pelicinan;Harga[] - harga semasa aset kewangan;SMOOTH_Period - tempoh pelicinan akhir indikator;DPO_Period - tempoh pelicinan DPO;bar - indeks bar.Bekerja dengan isyarat dagangan:Jika DPO berada di atas garis sifar (iaitu, harga berada di atas purata bergerak), ini adalah isyarat bullish. Sebaliknya, jika DPO berada di bawah garis sifar (iaitu, harga berada di bawah purata bergerak), ia adalah isyarat bearish.Titik pembalikan kitaran jangka panjang (divergensi):Jika carta membentuk puncak yang lebih tinggi atau kemurungan yang lebih dalam, kita perlu menunggu untuk harga berbalik ke atas/bawah;jika puncak atau dasar lebih rendah/tinggi daripada yang sebelumnya, harga akan jatuh.Terdapat dua cara untuk mentafsirkan isyarat beli/jual.Kita perlu membeli apabila:DPO melintasi garis sifar ke atas;DPO berada di kawasan terlebih jual yang disahkan oleh rendah sebelumnya dan pada masa yang sama garis atas saluran dilanggar oleh DPO dan harga yang membataskan pergerakan harga menurun.Kita perlu menjual apabila:DPO melintasi garis sifar ke bawah;DPO berada di kawasan terlebih beli yang disahkan oleh maksimum sebelumnya dan pada masa yang sama kedua-dua DPO dan harga melanggar garis sokongan trend menaik.Indikator ini jarang digunakan untuk mendapatkan isyarat dagangan. Perlu diingat bahawa indikator ini boleh berkesan hanya apabila digunakan bersama indikator lain. Namun, ia merupakan alat yang berguna untuk mengenal pasti kitaran bagi menetapkan lebar optimum bagi tetingkap indikator lain.Indikator ini membolehkan kita memilih algoritma pelicinan dan purataan daripada sepuluh versi yang berbeza:SMA - purata bergerak sederhana;EMA - purata bergerak eksponen;SMMA - purata bergerak pelicinan;LWMA - purata bergerak berbobot linear;JJMA - purata adaptif JMA;JurX - pelicinan ultralinear;ParMA - pelicinan parabola;T3 - pelicinan berganda eksponen Tillson;VIDYA - pelicinan menggunakan algoritma Tushar Chande;AMA - pelicinan menggunakan algoritma Perry Kaufman.Perlu diingat bahawa parameter Phase1 dan Phase2 mempunyai makna yang berbeza untuk setiap algoritma pelicinan. Bagi JMA, ia adalah variabel Phase luar yang berubah dari -100 hingga +100. Untuk T3, ia adalah nisbah pelicinan yang didarabkan dengan 100 untuk visualisasi yang lebih baik, sementara bagi VIDYA ia adalah tempoh osilator CMO dan bagi AMA ia adalah tempoh EMA perlahan. Dalam algoritma lain, parameter ini tidak mempengaruhi pelicinan. Bagi AMA, tempoh EMA cepat adalah nilai tetap dan sama dengan 2 secara lalai. Nisbah kuasa juga sama dengan 2 untuk AMA.Indikator ini menggunakan kelas perpustakaan SmoothAlgorithms.mqh (perlu disalin ke terminal_data_folder\MQL5\Include). Penggunaan kelas ini telah diterangkan dengan terperinci dalam artikel "Averaging Price Series for Intermediate Calculations Without Using Additional Buffers".

2011.11.23
Periode Kitaran: Indikator Berguna untuk MetaTrader 5
MetaTrader5
Periode Kitaran: Indikator Berguna untuk MetaTrader 5

Penulis sebenar: Witold Wozniak Indikator ini direka untuk mengukur perubahan harga aset kewangan dalam satu kitaran. Indikator ini menyimpan nilai kitaran pasaran semasa dalam buffer indikatornya yang tidak akan stabil atas sebab yang jelas. Ia dicipta untuk digunakan bersama osilator bagi menyesuaikan diri dengan kitaran pasaran yang sentiasa berubah dan mengubahnya menjadi kitaran yang lebih adaptif. Indikator ini diinspirasikan oleh artikel John Ehlers "Menggunakan Transformasi Fisher" yang diterbitkan pada November 2002 dalam majalah "Analisis Teknikal Saham & Komoditi".   Pengendali CyclePeriod perlu diisytiharkan pada tahap global untuk membolehkan indikator ini digunakan dalam kod indikator lain (contohnya, dalam osilator RVI): //---- pengisytiharan pembolehubah integer untuk pengendali indikator int CP_Handle; Seterusnya, pengendali CyclePeriod mesti diterima dalam blok penginisialisasian indikator RVI: //---- mendapatkan pengendali indikator CyclePeriod    CP_Handle=iCustom(NULL,0,"CyclePeriod",Alpha);    if(CP_Handle==INVALID_HANDLE)      {       Print(" Gagal mendapatkan pengendali indikator CyclePeriod");       return(1);      } Sekarang, kita mempunyai pembolehubah Alpha yang merupakan parameter input dari indikator yang digunakan dan nisbah purata tempoh. Pembolehubah ini perlu ditransformasikan kepada pembolehubah input indikator yang dibangunkan. //+----------------------------------------------+ //| Parameter input indikator                  | //+----------------------------------------------+ input double Alpha=0.07; // Nisbah pelicinan indikator Pembolehubah input Length sebelum ini perlu dikeluarkan dari senarai parameter input dan ditransformasikan kepada pembolehubah tempatan dalam fungsi OnCalculate(). Saiz array yang digunakan untuk pelicinan indikator ditetapkan oleh nilai parameter Length: //---- Pengagihan memori untuk array pembolehubah      ArrayResize(Count,Length);    ArrayResize(Value1,Length);    ArrayResize(Value2,Length); Nilai parameter ini kini berubah. Oleh itu, adalah lebih baik untuk menetapkan saiz array ini tidak kurang daripada nilai tinggi yang diandaikan untuk pembolehubah ini. Semasa menganalisis carta indikator, kita dapat melihat bahawa nilai ini tidak melebihi 100. Oleh itu, saiz array akan mempunyai nilai yang sama: //---- Pengagihan memori untuk array pembolehubah      ArrayResize(Count,MAXPERIOD);    ArrayResize(Value1,MAXPERIOD);    ArrayResize(Value2,MAXPERIOD); Seterusnya, nilai tempoh untuk bar semasa dalam blok OnCalculate() mesti diambil dari buffer indikator CyclePeriod untuk digunakan sebagai ganti nilai parameter input Length yang dahulu. //---- gelung pengiraan indikator utama    for(bar=first; bar<rates_total && !IsStopped(); bar++)      {       //---- salin data baru yang muncul ke dalam array       if(CopyBuffer(CP_Handle,0,rates_total-1-bar,4,period)<=0) return(RESET);       Length=int(MathFloor((4.0*period[0]+3.0*period[1]+2.0*period[2]+period[3])/20.0));       if(bar<Length) Length=bar; // memotong pelicinan kepada bilangan bar yang sebenar Dalam kes ini, empat nilai terakhir diambil dari buffer indikator CyclePeriod dan pelicinan berat secara linear dilakukan, selepas itu nilai yang diperoleh digunakan sebagai tempoh pelicinan Length. Akhirnya, baris di akhir kod indikator perlu diubah:       if(bar<rates_total-1) Recount_ArrayZeroPos(Count,MAXPERIOD); Hasilnya, kita telah memperoleh osilator RVI Adaptif:

2011.11.23
Pertama Sebelumnya 250 251 252 253 254 255 256 257 258 259 260 Seterusnya Terakhir