Variabel-moving-average-amibroker

Variabel-moving-average-amibroker

Rata-rata rata-rata bergerak
Iiroc-forex-margin-requirements
Online-stock-trading-without-broker


Reliance-money-online-trading-brokerage Ig-market-option-trading Sinyal Mi-forex Online-stock-trading-simulator-game Stock-options-ideas Real-time-forex-news-online

Idealnya, Anda ingin sinyal tersaring menjadi halus dan tidak bergerak. Lag menyebabkan keterlambatan dalam perdagangan Anda, dan peningkatan lag pada indikator Anda biasanya menghasilkan keuntungan yang lebih rendah. Dengan kata lain, pendatang terlambat mendapatkan apa yang tertinggal di meja setelah pesta dimulai. Itulah mengapa investor, bank dan institusi di seluruh dunia meminta Jurik Research Moving Average (JMA). Anda mungkin menerapkannya seperti halnya rata-rata pergerakan populer lainnya. Namun, JMA memperbaiki timing dan kehalusan akan membuat Anda takjub. Garis abu-abu bergerigi pada grafik mensimulasikan aksi harga yang dimulai pada kisaran perdagangan rendah, kemudian berlanjut ke kisaran perdagangan yang lebih tinggi. Karena tidak ada yang suka menunggu di sela-sela, filter pengurangan kebisingan yang sempurna (green line) akan bergerak dengan lancar di sepanjang pusat rentang perdagangan pertama dan kemudian beralih ke pusat kisaran perdagangan baru segera. Menguji pengujian ide trading Anda One Hal yang paling berguna yang dapat Anda lakukan di jendela analisis adalah menguji kembali strategi trading Anda pada data historis. Hal ini dapat memberi Anda wawasan berharga tentang kekuatan dan kelemahan sistem Anda sebelum menginvestasikan uang sungguhan. Fitur AmiBroker tunggal ini bisa menghemat banyak uang untuk Anda. Menulis aturan trading Anda Pertama-tama Anda harus memiliki peraturan objektif (atau mekanis) untuk masuk dan keluar dari pasar. Langkah ini adalah dasar strategi Anda dan Anda perlu memikirkannya sendiri karena sistem harus sesuai dengan toleransi risiko, ukuran portofolio, teknik pengelolaan uang, dan banyak faktor individual lainnya. Setelah Anda memiliki aturan trading sendiri, Anda harus menuliskannya sebagai aturan beli dan jual di AmiBroker Formula Lanugage (ditambah short dan cover jika Anda ingin menguji juga short trading). Dalam bab ini kita akan mempertimbangkan sistem cross average moving average yang sangat mendasar. Sistem ini akan membeli stockscontracts ketika harga penutupan naik di atas moving average 45 hari eksponensial dan akan menjual stockscontracts ketika harga penutupan turun di bawah rata-rata pergerakan eksponensial 45 hari. Rata-rata pergerakan eksponensial dapat dihitung di AFL menggunakan fungsi bawaannya EMA. Yang perlu Anda lakukan adalah menentukan array masukan dan periode rata-rata, sehingga rata-rata moving average 45-hari dari harga penutupan dapat diperoleh dengan pernyataan berikut: Pengenal dekat mengacu pada array built-in yang menahan harga penutupan simbol yang dianalisis saat ini. . Untuk menguji apakah harga penutupan di atas rata-rata bergerak eksponensial, kita akan menggunakan fungsi silang bawaan: beli cross (close, ema (close, 45)) Pernyataan di atas mendefinisikan aturan perdagangan beli. Ini memberi quot1quot atau quottruequot saat harga penutupan mendekati di atas ema (close, 45). Kemudian kita bisa menulis aturan jual yang akan memberi quote saat situasi berlawanan terjadi - harga persilangan dekat di bawah ema (close, 45): sell cross (ema (close, 45), close) Perlu diketahui bahwa kita menggunakan fungsi cross yang sama tapi Urutan argumen yang berlawanan. Jadi rumus lengkap untuk perdagangan panjang akan terlihat seperti ini: beli cross (close, ema (close, 45)) jual cross (ema (close, 45), close) CATATAN: Untuk membuat formula baru silahkan buka Formula Editor menggunakan Analysis-gtFormula Editor Menu, ketik rumusnya dan pilih Tools-gtSend to Analysis menu di Formula editor Untuk melakukan back-test sistem anda cukup klik tombol Back test di jendela automatic analysis. Pastikan Anda telah mengetikkan rumus yang berisi paling sedikit aturan jual beli dan jual (seperti yang ditunjukkan di atas). Bila rumusnya benar, AmiBroker mulai menganalisis simbol Anda sesuai dengan peraturan perdagangan Anda dan menghasilkan daftar perdagangan simulasi. Seluruh prosesnya sangat cepat - Anda bisa kembali menguji ribuan simbol dalam hitungan menit. Jendela kemajuan akan menunjukkan perkiraan waktu penyelesaian. Jika Anda ingin menghentikan prosesnya Anda bisa mengklik tombol Cancel di progress window. Ketika proses selesai daftar perdagangan simulasi ditunjukkan di bagian bawah jendela analisis otomatis. (Panel Hasil). Anda bisa memeriksa kapan sinyal beli dan jual terjadi hanya dengan mengklik ganda pada trade di panel Results. Ini akan memberi Anda sinyal mentah atau tanpa filter untuk setiap batang saat kondisi beli dan jual terpenuhi. Jika Anda hanya ingin melihat panah perdagangan tunggal (pembukaan dan penutupan perdagangan yang dipilih saat ini), Anda harus mengklik dua kali garis sambil menahan tombol SHIFT yang ditekan. Atau Anda bisa memilih jenis tampilan dengan memilih item yang sesuai dari menu konteks yang muncul saat Anda klik pada panel hasil dengan tombol mouse sebelah kanan. Selain daftar hasil, Anda bisa mendapatkan statistik yang sangat terperinci mengenai kinerja sistem Anda dengan mengklik tombol Report. Untuk mengetahui lebih lanjut tentang statistik laporan, periksa deskripsi jendela laporan. Mengubah pengaturan pengujian kembali Anda Mesin pengujian ulang di AmiBroker menggunakan beberapa nilai yang telah ditetapkan untuk menjalankan tugasnya termasuk ukuran portofolio, periodisitas (setiap bulan sepekan sekali), jumlah komisi, tingkat suku bunga, kerugian maksimum dan target keuntungan, jenis perdagangan, harga ladang dan sebagainya. di. Semua pengaturan ini bisa diubah oleh pengguna menggunakan setting window. Setelah mengubah pengaturan ingatlah untuk menjalankan pengujian kembali jika Anda ingin hasilnya disinkronkan dengan pengaturannya. Sebagai contoh, untuk kembali menguji pada bar mingguan bukan sehari-hari klik saja pada tombol Settings pilih Weekly from Periodicity combo box dan klik OK. Lalu jalankan analisis Anda dengan mengklik Back test. Nama variabel yang dilindungi Tabel berikut menunjukkan nama variabel reserved yang digunakan oleh Automatic Analyzer. Makna dan contoh penggunaannya akan diberikan kemudian dalam bab ini. Memungkinkan pengendalian jumlah dolar atau persentase portofolio yang diinvestasikan ke dalam perdagangan (lihat penjelasan di bawah) Analisis Otomatis (baru dalam 3.9) Sampai saat ini kami telah membahas penggunaan tester belakang yang cukup sederhana. AmiBroker, bagaimanapun, mendukung metode dan konsep yang jauh lebih canggih yang akan dibahas nanti di bab ini. Harap dicatat bahwa pengguna pemula pertama-tama harus bermain sedikit dengan topik yang lebih mudah dijelaskan di atas sebelum melanjutkan. Jadi, saat Anda siap, mohon lihat fitur penguji belakang berikut ini: a) host scripting AFL untuk penulis rumus lanjutan b) dukungan yang disempurnakan untuk perdagangan pendek c) cara untuk mengendalikan harga eksekusi pesanan dari Script d) berbagai jenis berhenti di back tester e) ukuran posisi f) ukuran lot bulat dan ukuran centang g) akun margin h) backtesting futures Hosting script AFL adalah topik lanjutan yang tercakup dalam dokumen terpisah yang tersedia di sini dan saya tidak akan membahas Itu dalam dokumen ini Sisa fitur jauh lebih mudah dimengerti. Pada versi sebelumnya dari AmiBroker, jika Anda ingin sistem back-test menggunakan perdagangan panjang dan pendek, Anda hanya bisa mensimulasikan strategi stop-and-reverse. Bila posisi long ditutup maka posisi short baru dibuka dengan segera. Itu karena membeli dan menjual variabel reserved digunakan untuk kedua jenis perdagangan. Sekarang (dengan versi 3.59 atau lebih tinggi) ada variabel reserved terpisah untuk pembukaan dan penutupan perdagangan jangka panjang dan pendek: buy - quottruequot atau 1 value membuka trade sell sell - quottruequot atau 1 value menutup trade long short - quottruequot atau 1 value membuka short trade cover. - quottruequot atau 1 value menutup short trading Som untuk melakukan back-test short trade Anda perlu menetapkan variabel short dan cover. Jika Anda menggunakan sistem stop-and-reverse (selalu ada di pasaran) cukup tetapkan jual ke short dan beli untuk menutupi short selling cover buy Ini mensimulasikan cara kerja versi pra-3.59. Tapi sekarang AmiBroker memungkinkan Anda memiliki peraturan perdagangan terpisah untuk jangka panjang dan untuk berjalan singkat seperti yang ditunjukkan pada contoh sederhana ini: peraturan masuk dan keluar perdagangan yang panjang: beli salib (cci (), 100) menjual potongan silang (100, cci ()) Aturan masuk dan keluar perdagangan: cross cross pendek (-100, cci ()) mencakup cross (cci (), -100) Perhatikan bahwa dalam contoh ini jika CCI berada di antara -100 dan 100 Anda berada di luar pasar. Mengontrol harga perdagangan AmiBroker sekarang menyediakan 4 variabel reserved baru untuk menentukan harga di mana buy, sell, short dan cover orders dieksekusi. Array ini memiliki nama berikut: buyprice, sellprice, shortprice dan coverprice. Aplikasi utama dari variabel-variabel ini adalah mengendalikan harga perdagangan: BuyPrice IIF (dayofweek () 1, HIGH, CLOSE) pada hari senin membeli di level tinggi, jika tidak membeli di dekat Jadi, Anda dapat menulis berikut untuk mensimulasikan perintah stop-order: BuyStop. Rumus untuk membeli stop level SellStop. Rumus untuk sell stop level jika setiap saat di siang hari harga naik di atas tingkat buystop (highgtbuystop) order beli berlangsung (pada buystop atau low mana yang lebih tinggi) Buy Cross (High, BuyStop) jika harga siang hari di bawah harga di bawah level sellprice (Sellstop rendah) order jual berlangsung (di sellstop atau high mana yang lebih rendah) Sell Cross (SellPrice, SellStop) BuyPrice max (BuyStop, Low) pastikan harga beli tidak kurang dari SellPrice Rendah min (SellStop, High) pastikan Harga jual tidak lebih besar dari Tinggi Harap dicatat bahwa AmiBroker mengatur variabel pilihan, variabel harga jual, harga pendek dan variabel coverprice dengan nilai yang ditentukan di jendela pengaturan sistem (ditunjukkan di bawah), sehingga Anda dapat melakukannya namun tidak perlu menentukannya dalam formula Anda. Jika Anda tidak mendefinisikan mereka AmiBroker bekerja seperti pada versi lama. Selama pengujian ulang, AmiBroker akan memeriksa apakah nilai yang Anda berikan pada buyprice, harga jual, harga pendek, harga penutupan sesuai dengan kisaran rendah yang diberikan pada bar yang diberikan. Jika tidak, AmiBroker akan menyesuaikannya dengan harga tinggi (jika harga array lebih tinggi dari harga tinggi) atau dengan harga rendah (jika nilai harga array lebih rendah dari yang rendah) Target keuntungan berhenti Seperti yang dapat Anda lihat pada gambar di atas, pengaturan baru untuk Target keuntungan berhenti tersedia di jendela pengaturan sistem. Target penghentian laba dijalankan saat harga tinggi untuk hari tertentu melebihi tingkat stop yang dapat diberikan sebagai persentase atau kenaikan poin dari harga beli. Secara default, penghentian dijalankan dengan harga yang Anda definisikan sebagai array harga jual (untuk perdagangan jangka panjang) atau kisaran harga penutupan (untuk perdagangan singkat). Perilaku ini bisa diubah dengan menggunakan fitur quotExit pada stopquot. QuotExit pada fitur stopquot Jika Anda menandai quotExit pada kotak stopquot pada pengaturan, stop akan dijalankan pada level stop yang tepat, yaitu jika Anda menentukan target keuntungan berhenti pada 10 stop dan harga beli 50 stop order akan dieksekusi pada 55 bahkan jika Array harga jual Anda mengandung nilai yang berbeda (misalnya harga penutupan 56). Kerugian maksimum berhenti bekerja dengan cara yang sama - mereka dijalankan saat harga rendah untuk hari tertentu turun di bawah tingkat stop yang dapat diberikan sebagai persentase atau kenaikan poin dari harga beli Jenis pemberhentian ini digunakan untuk melindungi keuntungan karena Lacak perdagangan Anda sehingga setiap kali nilai posisi mencapai tingkat tinggi yang baru, trailing stop ditempatkan pada tingkat yang lebih tinggi. Bila profit turun di bawah level trailing stop posisi ditutup. Mekanisme ini diilustrasikan pada gambar di bawah (10 trailing stop ditunjukkan): contoh implementasi tingkat rendah dari pemberhentian Target Laba di AFL: Beli Cross (MACD (), Sinyal ()) untuk (i 0 i lt BarCount i) Jika (priceatbuy 0 Buy i) priceatbuy BuyPrice i if (priceatbuy gt 0 SellPrice i gt 1.1 priceatbuy) Jual i 1 SellPrice i 1.1 priceatbuy priceatbuy 0 lain Jual i 0 Ini adalah fitur baru di versi 3.9. Ukuran posisi di backtester diimplementasikan dengan menggunakan variabel reserved baru PositionSize ltsize arraygt Sekarang Anda dapat mengendalikan jumlah dolar atau persentase portofolio yang diinvestasikan ke dalam jumlah positif perdagangan menentukan jumlah (dolar) yang diinvestasikan ke dalam perdagangan misalnya: PositionSize 1000 menginvestasikan 1000 dalam setiap nomor negatif perdagangan -100 ..- 1 mendefinisikan persentase: -100 memberikan 100 dari ukuran portofolio saat ini, -33 memberikan 33 ekuitas yang tersedia misalnya: PositionSize -50 selalu menginvestasikan hanya setengah dari ukuran ekuitas dinamis saat ini contoh: PositionSize - 100 RSI () karena RSI bervariasi dari 0,.100, ini akan menghasilkan posisi tergantung pada nilai RSI - rendahnya nilai RSI akan menghasilkan persentase investasi yang lebih tinggi. Jika kurang dari 100 uang yang tersedia diinvestasikan maka jumlah sisanya akan menghasilkan tingkat bunga Seperti yang didefinisikan dalam pengaturan. Ada juga kotak centang baru di jendela pengaturan AA: ukuran penguraian posisi kuota - ini mengontrol bagaimana backtester menangani situasi saat ukuran posisi yang diminta (melalui variabel PositionSize) melebihi uang yang tersedia: saat bendera ini diperiksa posisi dimasukkan dengan ukuran yang telah dipangkas ke Tersedia uang jika tidak dicentang posisi tidak masuk. Untuk melihat ukuran posisi sebenarnya, gunakan mode laporan baru di jendela setelan AA: daftar Perdagangan dengan harga dan pos. Sizequot Untuk akhirnya, berikut adalah contoh teknik penentuan posisi berbasis Tharps ATR yang dikodekan di AFL: Beli formula pembelian ltyour heregt Jual 0 jual hanya dengan berhenti TrailStopAmount 2 ATR (20) Modal 100000 PENTING: Set juga di Settings: Initial Resiko Ekuitas 0.01 Posisi Personalisasi (RiskTrailStopAmount) BuyPrice ApplyStop (2, 2, TrailStopAmount, 1) Teknik ini dapat diringkas sebagai berikut: Ekuitas total per simbol adalah 100.000, kami menetapkan tingkat risiko pada 1 dari total ekuitas. Tingkat risiko didefinisikan sebagai berikut: jika trailing stop pada 50 saham berada di, katakanlah, 45 (nilai dua ATR terhadap posisi), 5 kerugian dibagi menjadi 1000 risiko untuk memberikan 200 saham untuk membeli. Jadi, risiko kerugiannya adalah 1000 tapi risiko alokasi adalah 200 saham x 50share atau 10.000. Jadi, kami mengalokasikan 10 dari ekuitas untuk pembelian tetapi hanya mempertaruhkan 1000. (Diedit kutipan dari mailing list AmiBroker) Ukuran lot bulat dan ukuran kutu Berbagai instrumen diperdagangkan dengan berbagai unit quottradingquot atau quotblocksquot. Misalnya Anda bisa membeli pecahan jumlah unit reksadana, tapi Anda tidak bisa membeli pecahan jumlah saham. Terkadang Anda harus membeli di 10s atau 100s lot. AmiBroker sekarang memungkinkan Anda untuk menentukan ukuran blok pada tingkat global dan per simbol. Anda dapat menentukan ukuran lot per simbol dalam halaman Symbol-gtInformation (gambar 3). Nilai nol berarti simbol tidak memiliki ukuran bulat khusus dan akan menggunakan ukuran kuadrat kuartet bulat (pengaturan global) dari halaman pengaturan Analisis Otomatis (gambar 1). Jika ukuran default diatur juga ke nol berarti jumlah pecahan dari kontrak saham diperbolehkan. Anda juga dapat mengontrol ukuran lot bulat secara langsung dari formula AFL Anda dengan menggunakan variabel reserved RoundLotSize, misalnya: Pengaturan ini mengendalikan pergerakan harga minimum dari simbol yang diberikan. Anda dapat menentukannya di tingkat global dan per simbol. Seperti ukuran putaran lot, Anda dapat menentukan ukuran kuncian per simbol di halaman Symbol-gtInformation (gambar 3). Nilai nol menginstruksikan AmiBroker untuk menggunakan ukuran kuota tick kuadrat yang ditentukan di halaman Pengaturan (gambar 1) jendela Analisis Otomatis. Jika ukuran kutu default juga disetel ke nol berarti tidak ada pergerakan harga minimum. Anda dapat mengatur dan mengambil ukuran kutu juga dari formula AFL menggunakan variabel TickSize reserved, misalnya: Perhatikan bahwa pengaturan ukuran centang hanya mempengaruhi perdagangan HANYA yang dikeluarkan oleh stopkontak terpasang dan dan ApplyStop (). Backtester mengasumsikan bahwa data harga mengikuti persyaratan ukuran tick dan tidak mengubah array harga yang dipasok oleh pengguna. Jadi, menentukan ukuran kutu masuk akal hanya jika Anda menggunakan penghentian built-in sehingga titik keluar dihasilkan pada tingkat harga quotetowedquot daripada yang dihitung. Misalnya di Jepang - Anda tidak dapat memiliki bagian fraksional dari yen sehingga Anda harus menentukan ticksize global menjadi 1, jadi berhenti berhenti beroperasi pada tingkat integer. Setelan margin akun menentukan persyaratan persentase margin untuk keseluruhan akun. Nilai default dari margin Account adalah 100. Ini berarti bahwa Anda harus menyediakan 100 dana untuk memasuki perdagangan, dan inilah cara bagaimana backtester bekerja di versi sebelumnya. Tapi sekarang Anda bisa mensimulasikan akun margin. Bila Anda membeli dengan margin Anda hanya meminjam uang dari broker Anda untuk membeli saham. Dengan peraturan saat ini Anda dapat memasang 50 dari harga pembelian saham yang ingin Anda beli dan meminjam separuh lainnya dari broker Anda. Untuk mensimulasikan ini masuk saja 50 di bidang margin Account (lihat gambar 1). Jika ekuitas awal Anda ditetapkan ke 10000 daya beli Anda akan menjadi 20000 dan Anda akan dapat memasuki posisi yang lebih besar. Perlu diketahui bahwa pengaturan ini menetapkan margin untuk keseluruhan akun dan TIDAK terkait dengan perdagangan berjangka sama sekali. Dengan kata lain Anda bisa menukar saham dengan margin account. QuotReverse entry signal memaksa exitquot check box ke pengaturan Backtester. Bila ON (pengaturan default) - backtester bekerja seperti pada versi sebelumnya dan menutup posisi sudah terbuka jika sinyal masuk baru di arah sebaliknya ditemui. Jika saklar ini OFF - meskipun sinyal balik terjadi, backtester mempertahankan perdagangan terbuka saat ini dan tidak menutup posisi sampai sinyal keluar (sell atau cover) tetap keluar. Dengan kata lain saat saklar ini MATI backtester mengabaikan sinyal pendek selama perdagangan panjang dan mengabaikan sinyal Beli selama perdagangan singkat. QuotAllow bar yang sama keluar (single bar trade) quot pilihan ke Pengaturan Bila ON (pengaturan default) - masuk dan keluar pada bar yang sama diperbolehkan (seperti pada versi sebelumnya) jika OFF - exit bisa terjadi mulai dari Bar berikutnya saja (ini berlaku untuk sinyal reguler, ada pengaturan terpisah untuk pintu keluar yang dihasilkan oleh ApplyStop). Switching to OFF memungkinkan untuk mereproduksi perilaku backtester MS yang tidak mampu menangani hari yang sama. QuotActivate stop soonquotThis setting memecahkan masalah sistem pengujian yang memasuki perdagangan di pasar terbuka. Pada versi sebelum 4.09 backtester diasumsikan bahwa Anda memasuki perdagangan di pasar sehingga berhenti terpasang diaktifkan dari hari berikutnya. Masalahnya adalah ketika Anda sebenarnya mendefinisikan harga terbuka sebagai harga masuk perdagangan - maka fluktuasi harga hari yang sama tidak memicu pemberhentian. Ada beberapa workarounds diterbitkan berdasarkan kode AFL tapi sekarang Anda tidak perlu menggunakannya. Cukup jika Anda berdagang terbuka Anda harus menandai stop quotActivate stopquote segera (gambar 1). Anda mungkin bertanya mengapa tidak hanya memeriksa array buyprice atau shortprice jika sama dengan harga terbuka. Unfortunatelly ini biasa bekerja. Mengapa Cukup karena ada doji hari ketika harga terbuka sama dengan penutupan dan kemudian backtester tidak akan pernah tahu apakah perdagangan masuk di pasar terbuka atau dekat. Jadi kita benar-benar butuh setting yang terpisah. QuotUse QuickAFLquotQuickAFL (tm) adalah fitur yang memungkinkan perhitungan AFL lebih cepat dalam kondisi tertentu. Awalnya (sejak 2003) hanya tersedia untuk indikator, seperti versi 5.14 tersedia dalam Automatic Analysis juga. Awalnya idenya adalah untuk memungkinkan redundansi grafik lebih cepat melalui perhitungan formula AFL hanya untuk bagian yang terlihat pada grafik. Dengan cara yang sama, jendela analisis otomatis dapat menggunakan subset dari kutipan yang tersedia untuk menghitung AFL, jika dipilih parameter 8220range8221 kurang dari 8220All quotationsquot. Penjelasan terperinci tentang bagaimana QuickAFL bekerja dan bagaimana cara mengendalikannya, ada dalam artikel Basis Pengetahuan ini: amibrokerkb20080703quickafl Perhatikan bahwa opsi ini bekerja tidak hanya di backtester, tetapi juga dalam pengoptimalan, eksplorasi dan pemindaian.AFL adalah bahasa pemrograman khusus yang digunakan untuk menentukan Dan membuat indikator khusus, pemindaian, eksplorasi, tes balik dan tafsir guru. Elemen leksikal Bab ini menjelaskan berbagai jenis unit kata (token) yang dikenal oleh penerjemah bahasa AFL. Whitespace Whitespace adalah nama kolektif yang diberikan ke spasi (kosong), tab, karakter baris baru dan komentar. Ruang putih dapat berfungsi untuk menunjukkan di mana token mulai dan diakhiri, namun di luar fungsi ini, setiap spasi berlebih dibuang. Komentar adalah potongan teks yang digunakan untuk menganotasi sebuah program. Komentar untuk pemrogram hanya menggunakan mereka dilucuti dari kode sumber sebelum parsing. Dua cara untuk menggambarkan komentar: komentar seperti C dan komentar seperti C. Komentar C-like adalah urutan karakter yang ditempatkan setelah pasangan simbol. Komentar berakhir pada kejadian pertama pasangan setelah awal. Seluruh urutan, termasuk empat simbol pembatas komentar, digantikan oleh satu spasi. Komentar seperti C adalah komentar satu baris yang dimulai dengan menggunakan dua garis miring yang berdekatan () pada posisi mana pun di dalam garis dan berlanjut sampai baris berikutnya berikutnya. AFL tidak mengizinkan komentar bersarang. AFL mengenali lima kelas token: pengidentifikasi konstanta string-literal operator punctuators (juga dikenal sebagai pemisah) Identifier adalah nama yang sewenang-wenang dari setiap panjang yang diberikan pada fungsi dan variabel. Pengenal dapat berisi huruf (a-z, A-Z), karakter underscore (kuotot), dan digit (0-9). Karakter pertama harus berupa surat. Pengidentifikasi AFL TIDAK sensitif huruf. Konstanta adalah token yang mewakili nilai numerik atau karakter tetap. Konstanta numerik terdiri dari bilangan bulat desimal dan opsional: titik desimal dan pecahan desimal. Konstanta numerik negatif memiliki unary minus (-) yang diawali. Konstanta string, juga dikenal sebagai string literal. Membentuk kategori khusus konstanta yang digunakan untuk menangani urutan karakter yang tetap dan ditulis sebagai urutan dari sejumlah karakter yang dikelilingi oleh tanda kutip ganda: quot Ini secara harfiah adalah stringquot String null (kosong) ditulis dengan kuotot. Karakter di dalam tanda kutip ganda dapat mencakup urutan escape (quotnquot - urutan pelarian baris baru). Ekspresi Konstan adalah ungkapan yang selalu mengevaluasi konstanta. Mereka dievaluasi sama seperti ekspresi reguler. Punctuator (juga dikenal sebagai separator) di AFL adalah salah satu karakter berikut: (). . Tanda kurung (terbuka (dan dekat)) ekspresi kelompok, mengisolasi ekspresi kondisional dan menunjukkan pemanggilan fungsi dan parameter fungsi: dc (ab) menggantikan preseden normal a (b DAN c) OR (d DAN e) ekspresi kondisional func () fungsi tidak memanggil argumen Koma (,) memisahkan elemen dari daftar argumen fungsi Titik koma () adalah terminator pernyataan. Setiap ekspresi AFL legal yang diikuti oleh titik koma ditafsirkan sebagai sebuah pernyataan, yang dikenal sebagai pernyataan ekspresi. Ekspresi dievaluasi dan nilainya dibuang (kecuali Komentar Guru di mana nilai string ditulis ke jendela output) Titik (.) Adalah operator akses anggota. Ini digunakan untuk memanggil metode objek COM. Jika variabel myobj memegang objek, dengan menggunakan operator dot kita dapat memanggil metode (fungsi) objek myobj: Tanda sama () memisahkan deklarasi variabel dari daftar inisialisasi: x 5 Ini juga menunjukkan nilai default untuk parameter (lihat built-in Deskripsi fungsi): macd (fast 12 slow 26) nilai default untuk argumen cepat dan lambat) Struktur bahasa Setiap formula di AFL mengandung satu atau lebih pernyataan ekspresi. Setiap pernyataan HARUS diakhiri dengan titik koma (). Dengan cara ini Anda bisa memecah ekspresi panjang menjadi beberapa garis fisik (untuk mendapatkan kejelasan) dan AmiBroker akan tetap memperlakukannya seperti sebuah pernyataan tunggal sampai mengakhiri titik koma. Contoh: Identifier Identifier pada AFL digunakan untuk mengidentifikasi variabel dan fungsi. Ada beberapa pengenal yang telah ditentukan yang merujuk pada susunan dan fungsi built-in. Yang paling penting adalah pengenal array harga. Mereka mengidentifikasi bidang harga spesifik yang harus dioperasikan oleh formula. Pengenal array harga yang valid terbuka. Tinggi. rendah . Dekat Volume. Openint. Rata-rata. Pengenal array harga dapat disingkat seperti ditunjukkan pada tabel berikut. Perhatikan bahwa ini bukan kasus khusus. Simpan nilai operand kedua pada objek yang ditentukan oleh operan pertama (8220simple assignment8221). Operator tugas memberi nilai pada sebuah variabel: di mana hasilnya adalah variabel identifier dan expression adalah ekspresi numerik, array atau teks. Karena operator berperilaku seperti operator lain, ungkapan yang menggunakannya memiliki nilai selain menetapkan nilai tersebut ke dalam variabel. Ini berarti bahwa Anda dapat menugaskan operator penugasan sebagai berikut: j k l 0 j, k, dan l sama dengan nol setelah pernyataan contoh dijalankan. Perhatian: tolong jangan membingungkan operator penugasan () dengan pemeriksaan kesetaraan () Ini adalah dua operator yang berbeda dan Anda tidak boleh menggunakan tugas () untuk memeriksa persamaan. Jika (Nama () quotMSFTquot) SALAH. - Operator penugasan variabel digunakan sebagai pengganti cek kesetaraan if (Name () quotMSFTquot) CORRECT - operator kesetaraan yang digunakan dengan benar Ini adalah salah satu kesalahan pengkodean umum yang tercantum di sini. Operator aritmatika Rumus dapat berisi operator matematis berikut: Mendapat atribut bitwise inklusif dari operan pertama dan kedua menyimpan hasilnya pada objek yang ditentukan oleh operator tipe operan pertama () operator Tipe operator digunakan dengan cara berikut: typeof (operand) Tipe operator mengembalikan sebuah string yang menunjukkan jenis operand yang tidak terevaluasi. Operand adalah string, variabel, fungsi identifier, atau objek dimana tipe tersebut akan dikembalikan. Saat memberikan identifier, seharusnya disediakan sendiri, tanpa operator aritmatika, tanpa argumen tambahan dan tanpa kawat gigi. Jika Anda ingin memeriksa jenis nilai yang dikembalikan oleh fungsinya, Anda harus terlebih dahulu menetapkan nilai pengembalian ke variabel dan kemudian menggunakan typeof (variabel). Nilai pengembalian yang mungkin adalah: quotundefinedquot - identifier tidak didefinisikan quotnumberquot - operand mewakili sebuah bilangan (skalar) quotarrayquot - operand mewakili sebuah array quotstringquot - operand merupakan sebuah string quotfunctionquot - operand adalah fungsi pengenal fungsi penjamin fungsi - operand adalah user- Fungsi yang didefinisikan quotobjectquot - operand mewakili objek COM quotmemberquot - operand mewakili fungsi anggota atau properti objek COM quothandlequot - operand merupakan Windows handle quotunknownquot - tipe operand yang tidak diketahui (tidak boleh terjadi) jenis operator memungkinkan antara lain untuk mendeteksi variabel yang tidak terdefinisi dalam berikut Way if (typeof (somevar) undefined) ketika somevar tidak terdefinisi kode di sini akan mengeksekusi Contoh berikut kode COMMENTARY menunjukkan output dari typeof () pada beberapa situasi umum: x MACD () y LastValue (x) function testfun () return 1 Printf (typeof (test) n) printf variabel yang tidak terdefinisi (typeof (1) n) menyala (Printf (typeof (checking) n) string printf (tipeof (x) n) variabel array printf (tipeof (y) n) variabel skalar printf (tipeof (MACD) n) identifier fungsi printf (tipeof (testfun) n) Pengenal fungsi pengguna Operator didahulukan dan tanda kurung AFL mendukung tanda kurung dalam formula. Tanda kurung dapat digunakan untuk mengendalikan precedence operasi (urutan di mana operator dihitung). AmiBroker selalu melakukan operasi di dalam tanda kurung terdalam terlebih dahulu. Bila tanda kurung tidak digunakan, yang menjadi prioritas adalah sebagai berikut (prioritas lebih tinggi yang tercantum pertama): (tanpa tanda kurung) akan dihitung oleh AmiBroker sebagai quotL 2quot plus quotHquot, karena divisi memiliki preseden yang lebih tinggi. Ini akan menghasilkan nilai yang jauh berbeda dari beberapa kata tentang operator incrementdecrement. Ada dua macam dari mereka: postfix dan awalan. Operator unary (dan -) disebut operator kenaikan atau pengurangan 8220prefix8221 saat penambahan atau penurunan operator muncul sebelum operan. Peningkatan dan penurunan postfix memiliki preseden yang lebih tinggi daripada operator increment increment dan decrement. Ketika operator muncul sebelum operannya, operan bertambah atau dikurangi dan nilainya yang baru adalah hasil ekspresinya. J i i akan bertambah terlebih dahulu dan hasilnya (nomor 6) akan ditugaskan ke j. Hasil dari kenaikan postfix atau operasi pengurangan adalah nilai ekspresi postfix sebelum operator increment atau decrement diterapkan. Jenis hasilnya sama dengan ekspresi postfix tapi bukan lagi nilai l. Setelah hasilnya didapat, nilai operan bertambah (atau decremented). Jij akan diberi nilai 5 (sebelum incrementation) dan kemudian saya akan bertambah menjadi 6. Mengakses elemen array: - operator subscript Pengenal array diikuti oleh ekspresi dalam tanda kurung siku () adalah representasi subscript dari elemen array obyek. Ini mewakili nilai elemen ekspresi elemen. Konstanta BarCount memberikan jumlah bar dalam array (seperti Close, High, Low, Open, Volume, dll). Elemen elemen diberi nomor dari 0 (nol) ke BarCount-1. BarCount TIDAK berubah selama formula Anda melanjutkan eksekusi, namun mungkin akan berubah antara eksekusi saat bar baru ditambahkan, faktor zoom berubah atau simbol diubah. Untuk mendapatkan bar pertama Anda bisa menggunakan array 0, untuk mendapatkan bar terakhir dari array Anda dapat menggunakan array BarCount - 1 Close 5 Merupakan elemen keenam (bar) dari array jarak dekat. Tutup 0 Merupakan bar pertama yang tersedia dari array jarak dekat. High BarCount - 1 Merupakan bar terakhir array Tinggi. Matriks dan operator Matriks Matriks adalah array dua dimensi angka. Untuk membuat matriks menggunakan: myvarname Matrix (baris, cols, initvalue) Untuk mengakses elemen matriks, gunakan: myvarname row col dimana baris adalah indeks baris (0. jumlah baris-1) dan col adalah indeks kolom (angka 0. Dari kolom-1) Matriks dan elemennya mendukung semua operasi aritmatika dan logika skalar (elementer). Semua operator standar ini dilakukan pada elemen matriks. Untuk alasan itu misalnya untuk menambahkan dua matriks mereka harus ukuran yang sama (jumlah baris dan kolom harus sama). Jika mereka tidak sama terserah kepada Anda bagaimana melakukan perhitungan pada setiap elemen melalui loop. Jadi Anda bisa misalnya menambahkan, mengurangi, mengalikan, membagi dua matriks jika memiliki dimensi yang sama dengan satu panggilan. X Matriks (5. 6. 9) matriks 5 baris 6 kolom, nilai awal 9 y Matriks (5. 6. 10) matriks 5 baris 6 kolom, nilai awal 10 zy - x akan memberi Anda matriks 5 baris dan 6 kolom diisi dengan Elemen memegang nilai 1 (beda antara 10 dan 9). Semua operasi tersebut dilakukan ELEMENT-WISE. Anda juga dapat menerapkan operasi aritmatika dan logika pada nilai matriks dan skalar. Ini akan melakukan operasi elemen-bijaksana pada setiap elemen matriks sumber dan diberi nilai skalar. M Matriks (10. 10. 0) m akan menjadi matriks 10x10 yang diisi dengan z z z z z z sekarang juga matriks untuk (i 0 i lt 10 i) z i 4 i mengisi z dengan beberapa nilai lainnya, perhatikan bahwa m akan tetap tidak terpengaruh. Untuk (i 0 i lt 10 i) TRACEF (gg, g, gn i, mi 1, mi 4, zi 4) tambahan skalar (unsur bijak) z 3 m 5 untuk (i 0 i lt 10 i) TRACEF (gg , G, gn i, mi 1, mi 4, zi 4) Ada satu operator khusus yang hanya bekerja pada matriks - ini adalah produk matriks. Operator untuk produk matriks adalah (tanda pada). Produk matriks adalah cara aljabar linier untuk memperbanyak matriks. Jika Anda menulis CAB, ini mengalikan matriks A (n, k) dengan matriks B (k, m) untuk menghasilkan matriks C (n, m) sehingga jumlah kolom pada matriks A harus sama dengan jumlah baris pada matriks B. Untuk info lebih lanjut lihat: en.wikipedia.orgwikiMatrixmultiplication Presisi operator produk matriks sama dengan (sehingga memiliki kemiringan lebih tinggi daripada penambahan dan pengurangan). Matriks Matriks (1. 3) B (3. 2) matriks A 1, 4, 6 matriks B 2, 3 5, 8 7, 9 A 0 0 1 A 0 1 4 A 0 2 6 B 0 0 2 B 0 1 3 B 1 0 5 B 1 1 8 B 2 0 7 B 2 1 9 TRACEF (g g X 0 0, X 0 1) Pernyataan majemuk (Blok) Pernyataan majemuk terdiri dari pernyataan nol atau lebih yang dilingkupi kurung kurawal ( ). Pernyataan majemuk dapat digunakan di manapun pernyataan diharapkan. Pernyataan majemuk biasanya disebut 8220blocks.8221 (ini dipinjam dari bahasa C, pengguna bahasa pemrograman lain digunakan untuk menggunakan BEGIN for) if (Jumlah di 100) TRACE (Jumlah di atas 100) Saldo Saldo Jumlah lainnya Saldo Saldo - Jumlah Built- Dalam Fungsi Selain operator matematika, AmiBroker berisi lebih dari 70 fungsi built-in yang melakukan operasi matematika. Rumus berikut terdiri dari satu fungsi yang memberikan akar kuadrat dari harga penutupan: Rumus berikut terdiri dari satu fungsi yang memberikan indikator RSI 14-periode: Rumus berikut terdiri dari dua fungsi. Hasilnya adalah perbedaan antara indikator MACD dan moving average eksponensial 9 periode MACD: Semua pemanggilan fungsi harus terdiri dari fungsi identifier (nama) diikuti oleh sepasang tanda kurung. Seperti yang telah dijelaskan dalam contoh sebelumnya, sebuah fungsi dapat dicantumkan dalam suatu fungsi. Fungsi nested dapat berfungsi sebagai fungsi utama array data parameter. Contoh berikut menunjukkan fungsi yang bersarang di dalam fungsi: Contoh pertama menghitung rata-rata pergerakan sederhana 10 periode dari Indeks Kekuatan Relatif 15-periode (RSI). Contoh kedua menghitung rata-rata pergerakan eksponensial 20-periode RSI 15-periode, dan kemudian menghitung rata-rata pergerakan sederhana 10 periode dari rata-rata pergerakan ini. Fungsi bersyarat IIF () Fungsi iif () digunakan untuk membuat tugas bersyarat. Ini berisi tiga parameter seperti yang ditunjukkan pada contoh berikut. Pernyataan quotiifquot di atas berbunyi (dalam bahasa Inggris) sebagai berikut: Jika penutupan hari ini lebih besar dari rata-rata moving average 10 hari yang mendekati hari ini, berikan RSI 9 hari ke variabel dynamicrsi, jika tidak, tetapkan RSI 14 hari. Rumus berikutnya menentukan volume positif148 untuk variabel volresult jika mendekati lebih besar dari harga rata-rata. Jika tidak, kuotasi volume diberikan. Jika Anda hanya menginginkan sebuah ungkapan dievaluasi sebagai benar atau salah, itu bisa dilakukan tanpa menggunakan fungsi iif (). Rumus berikut akan menghasilkan 1 (true) atau 0 (false): Hal yang sama dilakukan dengan iif () memberikan hasil yang sama, namun rumusnya lebih panjang. Harap dicatat bahwa IIF adalah fungsi - sehingga hasil evaluasi dikembalikan oleh fungsi itu dan harus diberikan ke beberapa variabel. Saya selalu mengevaluasi TRUEPART dan FALSEPART, meskipun hanya mengembalikan satu dari keduanya. Karena itu, Anda harus memperhatikan efek samping yang tidak diinginkan. Fungsi IIF BUKAN pernyataan flow-control. Jika Anda membutuhkan kontrol arus (eksekusi kondisional beberapa bagian kode), Anda harus mencari pernyataan kondisional jika-lain yang dijelaskan nanti dalam dokumen ini. Contoh berikut menunjukkan satu kesalahan umum yang dibuat dengan fungsi IIF: IIf (kondisi, hasil 7. hasil 9) INI TIDAK BENAR Penggunaan yang benar adalah: hasil IIf (kondisi, 7. 9) 7 atau 9 dikembalikan dan diberikan ke variabel hasil tergantung pada Kondisi Untuk mempersingkat, menyederhanakan, meningkatkan, dan membuat rumusan formula yang rumit menjadi lebih mudah, Anda mungkin ingin menggunakan variabel. Sebenarnya dengan menggunakan variabel Anda bisa secara signifikan meningkatkan kecepatan perhitungan rumus. Jadi sangat disarankan untuk menggunakan variabel dan tidak ada batasan jumlah variabel yang dapat Anda definisikan. Variabel adalah identifier yang ditugaskan pada ekspresi atau konstanta. Jumlah variabel yang digunakan dalam formula tidak terbatas. Variabel harus diberikan sebelum variabel digunakan dalam rumus. Variabel tidak dapat ditetapkan dalam pemanggilan fungsi. Nama variabel yang ditentukan pengguna (identifiers) tidak dapat menduplikat nama yang sudah digunakan oleh fungsi (misalnya ma, rsi, cci, iif, dll.) Atau pengenal array yang telah ditentukan sebelumnya (misalnya terbuka, tinggi, rendah, dekat, sederhana, o, c, l, H, s, a). Variabel reserved AmiBroker menggunakan beberapa nama variabel reserved dalam rumusnya, misalnya di jendela Auto-Analysis Anda harus menetapkan nilai ke 2 variabel yang dinamai buy atau sell untuk menentukan kondisi di mana kondisi quotellquot dan quotellquot. Misalnya (sistem yang membeli ketika MACD naik di atas 0 baris, dan menjual saat MACD turun di bawah garis 0) AmiBroker menggunakan nama variabel reserved berikut ini. Harap dicatat bahwa variabel yang ditandai sebagai usang TIDAK boleh digunakan dalam pengkodean baru. Hanya tersisa untuk kompatibilitas ke belakang dan formula baru harus menggunakan fungsi modern seperti Plot () untuk merencanakan indikator dan AddColumn () untuk menentukan kolom eksplorasi. Grafik N warna (usang) mendefinisikan indeks warna garis grafik N (indeks warna terkait dengan palet saat ini - lihat PreferensiColor) colorCustom1 0 colorCustom2 1 colorCustom3 2 colorCustom4 3 colorCustom5 4 colorCustom6 5 colorCustom7 6 colorCustom8 7 colorCustom9 8 colorCustom10 9 colorCustom11 10 ColorCustom12 11 colorCustom13 12 colorCustom14 13 colorCustom15 14 colorCustom16 15 colorBlack 16 warnaBrown 17 colorDarkOliveGreen 18 colorDarkGreen 19 colorDarkTeal 20 colorDarkBlue 21 colorIndigo 22 colorDarkGrey 23 colorDarkRed 24 colorOrange 25 colorDarkYellow 26 colorGreen 27 colorTeal 28 colorBlue 29 colorBlueGrey 30 colorGrey40 31 colorRed 32 colorLightOrange 33 colorLime 34 colorSeaGreen 35 ColorAqua 35 colorLightBlue 37 colorViolet 38 colorGrey50 39 colorPink 40 colorGold 41 warnaYellow 42 warnaBrightGreen 43 warnaTurquoise 44 warnaSkyblue 45 colorPlum 46 colorLightGrey 47 warnaRose 48 warnaTan 49 colorLightYellow 50 col OrPaleGreen 51 colorPaleTurquoise 52 colorPaleBlue 53 colorLavender 54 colorWhite 55 graph N barcolor (usang) mendefinisikan array yang memegang indeks palet untuk setiap batang grafik digambar N style (usang) mendefinisikan gaya grafik N. Style didefinisikan sebagai kombinasi (jumlah) dari satu atau lebih flag berikut: styleLine 1 - normal (garis) grafik (default) styleHistogram 2 - histogram chart styleThick 4 - gaya lemak (tebal )Dot 8 - termasuk titik gayaNoLine 16 - tidak ada gaya garisLog 32 - gaya skala semi logaritmik Gaya 64 - candlestick chartBar 128 - gaya bagan bar tradisionalNoDraw 256 - tidak ada gambar (hanya menampilkan skala sumbu) styleStaircase 512 - tangga (persegi) chart styleSwingDots 1024 - titik tengah untuk tangga gaya tanggaNoRescale 2048 - tidak ada gaya rescaleNoLabel 4096 - tidak ada label nilai stylePointAndFigure 8192 - titik dan gambar (baru di 4.20): styleArea 16384 - area chart (histogram ekstra luas) styleOwnScale 32768 - plot menggunakan gaya penskalaan independenLeftAxisScale 65536 - plot menggunakan skala sumbu kiri (independen dari sumbu kanan) Tidak semua kombinasi flagal masuk akal, misalnya (641) (garis candlestick) akan menghasilkan candlestick chart (style64) Catatan pada chart candlestickbar: gaya ini digunakan dalam Secara langsung O, H, L array selain grafik N. Rumus chart harga candlestick biasa adalah graph0close graph0style64. Tetapi jika Anda ingin menarik sesuatu yang lain dari harga mendekati Anda harus menetapkan nilai baru ke array O, H, L yang telah ditentukan sebelumnya. Grafik N barcolor (usang) mendefinisikan susunan indeks warna untuk batang dan kandil pada grafik N ine (indeks warna terkait dengan palet saat ini - lihat PreferensiColor)
Jepang-candlesticks-amazon
Online-stock-trading-game-malaysia