Anggaran masa bacaan: 7 min

PrescienTrader merangkumi fungsi multi-timeframe yang berintegrasi dengan fungsi analisis dan ujian semula AmiBroker yang hebat. Ini juga termasuk skrip AFL yang menunjukkan bagaimana menggunakan fungsi analisis. Fungsi analisis memerlukan langganan PrescientAPI Professional.

Video berikut menunjukkan cara menyediakan dan menjalankan penerokaan. Sila tonton videonya, kemudian kembali ke artikel ini untuk meneruskan tutorial.

Thumbnail

Penerokaan

Semasa anda menjalankan penerokaan menggunakan skrip PrescienTrader Backtesting yang disertakan, AmiBroker mengimbas senarai instrumen yang ditentukan dan julat tarikh yang anda tentukan. Ini menghasilkan baris untuk setiap kombinasi instrumen dan tarikh. Dalam contoh di atas, kami hanya menganalisis satu instrumen (CHF / JPY) untuk julat tarikh 1 Oktober hingga 31 Disember 2018.

Skrip menghasilkan lajur penerokaan berikut:

  • Simbol Pemetik
  • Masa tarikh
  • Buka, Tinggi, Rendah, Tutup, Isipadu, Minat Terbuka
  • Disimpan - Lajur ini disorot dengan warna kuning untuk setiap baris menggunakan tetapan parameter yang disimpan. Apabila anda menyimpan parameter di PrescienTrader, parameter tersebut akan disimpan hanya untuk instrumen dan jangka masa yang dipilih. Ini memungkinkan anda menggunakan tetapan parameter khusus untuk setiap instrumen dan setiap jangka waktu. Semasa anda menjalankan penerokaan, PrescienTrader secara automatik akan menggunakan tetapan parameter tersuai. Sorotan kuning di ruangan Tersimpan adalah untuk mengingatkan anda bahawa baris menggunakan tetapan yang disimpan, bukan tetapan yang anda masukkan di tetingkap Parameter.
  • Cerun PL - Ini menunjukkan kemerosotan trend Prescient Line. Cerun positif meramalkan aliran menaik manakala cerun negatif meramalkan aliran menurun.
  • Skor FLD - Jumlah FLD untuk semua kitaran yang sah dikalikan dengan Kekuatan atau Amplitud setiap kitaran, bergantung pada tetapan Asas PL anda. Nilai positif menunjukkan pasaran berada dalam aliran menaik kitaran. Nilai negatif menunjukkan pasaran berada dalam aliran menurun kitaran.
  • Bar Trend - Nombor bar relatif dalam arus yang diramalkan. Bar pertama dalam tren ialah bar sifar.
  • Bar Trend - Jumlah bar dalam aliran yang diramalkan semasa.
  • Trend Pct - Peratusan penyelesaian untuk trend jangkaan semasa. Sebagai contoh, jika Trend Bar = 5 dan Trend Bar = 10, Trend Pct adalah 50%. Perhatikan bahawa Trend Pct tidak akan pernah mencapai 100%, kerana itu bermaksud tren baru telah bermula. Pada titik pertindihan antara trend lama dan trend baru, Trend Pct akan menjadi 0%. Sebagai tambahan kepada paparan angka, lajur ini juga memaparkan grafik batang yang beralih dari hijau ke merah ketika tren semakin meningkat.
  • Tindakan - Ini adalah isyarat, Beli / Jual / Pendek / Penutup, untuk baris semasa. Isyarat yang dihasilkan dari skrip yang disertakan hanya berdasarkan Trend Slope. Apabila Trend Slope positif, ia akan menunjukkan signal Buy dan ketika Trend Slope negatif, ia akan menunjukkan signal Short. Ini bertujuan sebagai sangat sederhana contoh bagaimana anda boleh mula membina sistem perdagangan menggunakan petunjuk PrescienTrader. JANGAN gunakan isyarat contoh ini untuk perdagangan langsung, kerana kemungkinan besar anda akan kehilangan wang! Ideanya adalah untuk mengembangkan sistem perdagangan anda sendiri menggunakan petunjuk kami dan mungkin petunjuk lain, kemudian menguji sistem secara meluas. Setelah anda mempunyai sistem ujian semula yang sah, anda boleh memasukkan sistem tersebut ke ruangan Tindakan untuk memaparkan isyarat perdagangan anda.

Ujian Belakang

Untuk menjalankan ujian belakang atau pengoptimuman, mulakan dengan memuatkan skrip AFL PrescienTrader Backtesting. Kami mencadangkan anda buat salinan skrip, daripada mengubah skrip asal. Fungsi analisis kami menghasilkan output untuk ruang penerokaan dan juga membuat susunan dan matriks AFL yang mengandungi hasilnya. Semasa menjalankan ujian belakang atau pengoptimuman, anda akan menggunakan susunan dan matriks AFL yang dihasilkan, yang merangkumi yang berikut:

  • ptStaticPL
  • ptStaticPLSlope
  • ptStaticFLDScore
  • ptStaticTrendBar
  • ptStaticTrendBars
  • ptStaticTrendPct
  • ptStaticFrequencies (Matriks)
  • ptStaticSlopes (Matriks)
  • ptStaticFLDPrices (Matriks)

Sekiranya anda menjalankan analisis untuk beberapa jangka masa, fungsi akan membuat satu set tatasusunan dan matriks yang terpisah untuk setiap jangka masa. Nama akan sama seperti di atas, kecuali setiap nama akan mempunyai akhiran HTPx, di mana x mewakili indeks jangka masa yang lebih tinggi. Sebagai contoh, tatasusunan dan matriks untuk jangka masa pertama yang lebih tinggi akan dinamakan, ptStaticPLHTP1, ptStaticPLSlopeHTP1, dan lain-lain ... Susunan dan matriks untuk jangka masa kedua yang lebih tinggi akan dinamakan ptStaticPLHTP2, ptStaticPLSlopeHTP2, dll ...

Penguji AmiBroker sangat hebat. Ia menyokong pengujian semula portfolio sebenar, ujian berjalan maju, simulasi Monte Carlo, ujian jangka masa berbilang, piramid dan penskalaan, pelbagai mata wang dan banyak lagi. Semua fungsi dan kekuatan ini tersedia untuk anda untuk ujian semula dan output dari PrescienTrader. Ini di luar ruang lingkup artikel ini untuk membincangkan perincian pengujian semula di AmiBroker. Untuk itu, lebih baik membaca dokumentasi AmiBroker.

Pemboleh ubah Parameter dan Parameter

Semasa menjalankan analisis, PrescienTrader akan menggunakan nilai parameter yang anda tentukan di tetingkap Parameter. Walau bagaimanapun, jika anda sebelumnya menyimpan tetapan instrumen untuk pasaran dan jangka masa semasa, the tetapan yang disimpan akan mengatasi tetapan yang dipaparkan di tetingkap Parameter. Ini membolehkan anda melakukan analisis portfolio menggunakan nilai parameter yang berbeza untuk setiap instrumen dalam portfolio. Apabila anda melihat tetingkap Parameter, tetapan ini akan memaparkan tetapan terakhir yang anda masukkan, yang tidak semestinya merupakan tetapan yang disimpan. Klik Tetapkan Semula Semua butang untuk memaparkan tetapan instrumen yang disimpan.

Selain itu, anda boleh menyimpan tetapan lalai. Tidak seperti tetapan instrumen yang disimpan, tetapan lalai yang disimpan TIDAK ganti tetapan yang dipaparkan. Ini membolehkan anda memanfaatkan fakta bahawa AmiBroker secara automatik mengingat tetapan terakhir yang anda masukkan, jadi jika anda menguji set tetapan tertentu berkali-kali, anda tidak perlu memasukkannya semula setiap kali. Namun, anda selalu dapat kembali ke tetapan lalai yang disimpan dengan mengklik Tetapkan Semula Semua butang. Perlu diingat bahawa tetapan instrumen yang disimpan diutamakan daripada tetapan lalai yang disimpan, jadi jika anda mengklik Tetapkan Semula Semua dan itu tidak memaparkan tetapan lalai anda, itu bermaksud anda telah menyimpan tetapan instrumen untuk instrumen dan jangka waktu yang sedang ditampilkan.

Akhirnya, anda boleh mengatasi sebahagian besar parameter dengan menetapkan pemboleh ubah AFL yang sesuai dengan setiap parameter. Pemboleh ubah yang ada merangkumi:

  • ptPolariti (0 = Positif, 1 = Negatif)
  • ptPLBasis (0 = Amplitudo, 1 = Kekuatan)
  • julat ptLookback
  • kekerapan ptMin
  • kekerapan ptMax
  • ptHarmonicFilter
  • ptMinKeyakinan
  • ptBestXCycles

Setiap pemboleh ubah juga mempunyai variasi jangka masa yang lebih tinggi untuk analisis kerangka masa. Untuk menetapkan pemboleh ubah jangka masa yang lebih tinggi, tambahkan HTP1, HTP2, HTP3, dll ... ke nama pemboleh ubah. Sebagai contoh:

  • ptMinFrequencyHTP1
  • ptMaxFrequencyHTP2
  • ptLookbackRangeHTP3
  • ptHarmonicFilterHTP2
  • ptMinConfidenceHTP1
  • ptPLBasisHTP4

Pemboleh ubah selalu mengatasi tetapan tetingkap Parameter dan tetapan yang disimpan. Sekiranya anda menetapkan pemboleh ubah parameter dalam AFL, parameter yang sesuai akan hilang dari tetingkap Parameter. Anda mesti menetapkan semua pemboleh ubah parameter anda SEBELUM memanggil PrescientAnalysis atau PrescientAnalysisPrepare fungsi.

Analisis Single-Thread vs Multi-Threaded

PrescienTrader menyokong analisis single-thread dan multi-threaded. Fungsi utas tunggal hanya memerlukan satu baris kod, jadi bagus untuk menjalankan penerokaan cepat atau ujian belakang sederhana. Kelemahannya adalah bahawa analisis berjalan dalam satu utas, jadi hanya dapat menganalisis satu baris pada satu masa. Namun, jika analisis anda hanya terdiri dari beberapa ratus baris, perbezaan waktu tidak dapat diabaikan. Dalam senario ini, anda memerlukan lebih lama untuk menulis kod tambahan untuk analisis multi-utas daripada masa yang dijimatkan dengan menjalankannya.

Skrip Backtester PrescienTrader - Bahagian utas tunggal

Skrip analisis contoh disebut PrescienTrader Backtester. Sekiranya anda melihat skrip ini, anda akan melihatnya mengandungi bahagian utas tunggal dan bahagian multi-utas, yang dapat anda beralih antara menggunakan tetapan parameter. Bahagian analisis single-thread mengandungi satu baris kod:

PTBacktest ();

The PTBacktest fungsi tidak memerlukan parameter kerana anda mengkonfigurasi semua parameter di tetingkap Parameter. Ketika berjalan, ia membuat permintaan API, mengirimkan permintaan ke PrescientAPI, menguraikan respons, mengeluarkan hasilnya ke lajur penjelajahan dan menghasilkan susunan AFL yang dijelaskan di atas.

Untuk melakukan analisis jangka masa, cukup memanggil fungsi PrescientAnalysis beberapa kali. Sebagai contoh, jika anda ingin menganalisis jangka masa asas dan dua jangka masa yang lebih tinggi, anda akan menggunakan kod berikut:

PTBacktest (); PTBacktest (); PTBacktest ();

Setiap contoh fungsi membuat jangka waktu lain di tetingkap Parameter, jadi dalam contoh di atas, tetingkap Parameter anda akan mengandungi tetapan untuk jangka waktu dasar, HTP1 dan HTP2. Jangan mengelirukan multi-threading dengan multi-timeframe; ini adalah dua konsep yang sama sekali berbeza. Multi-threading merujuk kepada menjalankan lebih dari satu analisis pada satu masa, seperti menganalisis portfolio instrumen. Rangka masa berbilang merujuk kepada menganalisis setiap instrumen dalam lebih dari satu jangka masa. Contohnya, anda boleh menganalisis jangka masa S&P 500 setiap hari, mingguan dan bulanan. Dalam contoh itu, anda juga akan mendapat manfaat daripada berjalan dalam mod multi-threaded, kerana ia akan menganalisis ketiga-tiga jangka masa secara serentak. Walau bagaimanapun, anda boleh menjalankan analisis kerangka masa dalam mod utas tunggal, dan ini akan menganalisis jangka masa secara berurutan.

Skrip Analisis PrescienTrader - Bahagian pelbagai utas

Bahagian multi-utas lebih rumit daripada skrip utas tunggal dan memerlukan beberapa baris kod:

postVars = PTBacktestPrepare ();
jika (StrLen (postVars)> 0) {
    ih = InternetPostRequest ("https://api.prescientrading.com", postVars);
    jika (ih) {
        tindak balas = "";
        sementara ((line = InternetReadString (ih))! = "")
            tindak balas + = garis;
        PTBacktestExecute (tindak balas);
        Penutupan Internet (ih);
    }
    lain {
        msg = "Tiada respons dari API - Kemungkinan masalah tamat masa atau sambungan Internet - Menunggu 60 saat";
        _TRACE (msg);
        PTLogToFile (msg);
        PTWait (60);
    }
}

Sebab kod tambahan adalah bahawa AmiBroker tidak menyokong pemalam multi-threading seperti PrescienTrader. Oleh itu, daripada menjalankan keseluruhan operasi analisis dalam satu fungsi plugin, plugin ini menangani segala-galanya kecuali permintaan API, yang merupakan bahagian yang paling memakan masa dan oleh itu memberikan keuntungan terbesar daripada berjalan dalam banyak utas.

Mari pecahkan langkah demi langkah ini ...

  1. Pada langkah pertama, kami memanggil PTBacktestPrepare dan memberikan hasilnya ke pemboleh ubah postVars. Fungsi ini menggunakan parameter yang ditentukan dalam tetingkap Parameter untuk menghasilkan data dalam format yang tepat untuk permintaan API.
  2. Pada langkah kedua, kami membuat permintaan API menggunakan fungsi InternetPostRequest dan InternetReadString. Oleh kerana ia berinteraksi dengan pelayan jauh, ini adalah bahagian proses yang paling lambat dan dengan itu memberi banyak manfaat daripada berjalan dalam pelbagai utas.
  3. Pada langkah terakhir, kami menjalankan PTBacktestExecute pada data yang dikembalikan dari API. Fungsi ini menguraikan data, mengeluarkan hasilnya ke ruang penerokaan dan menghasilkan susunan AFL yang dijelaskan di atas.

Seperti yang anda lihat, ia tidak terlalu rumit, tetapi memerlukan lebih banyak kod daripada pendekatan single-thread. Sekiranya anda menganalisis sejumlah besar data, pendekatan multi-utas dapat mencapai 32 kali lebih cepat, bergantung pada jumlah inti CPU yang dimiliki komputer anda.

Seperti pendekatan single-thread, anda dapat menganalisis beberapa kerangka waktu dengan memasukkan blok kod di atas berkali-kali, atau dengan membungkus blok kod dalam gelung untuk.

Pengoptimuman

Pengoptimuman adalah proses penyesuaian parameter untuk mencapai hasil terbaik untuk pasaran atau kumpulan pasaran. AmiBroker memungkinkan untuk mengoptimumkan sehingga 64 parameter secara serentak, menyokong pengoptimuman portfolio dan merangkumi tiga mesin pengoptimuman pintar, Pengoptimuman Pusingan Zarah Piawai, Puak dan CMA-ES.

PrescienTrader menyokong pengoptimuman semua parameternya tanpa perlu menulis kod untuk setiap parameter. Untuk menetapkan parameter pengoptimuman, tahan Shift kekunci dan klik pada ikon bar alat Parameter. Ini akan memaparkan tetingkap parameter pengoptimuman, di mana anda dapat memasukkan a julat (Dari dan Ke) untuk setiap parameter dan a langkah untuk parameter berangka. Julat mewakili julat pengoptimuman. Sebagai contoh, untuk mengoptimumkan Rentang Pandang Balik, anda boleh memilih sesuatu seperti:

Julat LookBack Dari: 5
Julat Pandang Balik Hingga: 10
Julat Pandang Balik Langkah: 1

Memasukkan parameter ini akan mengoptimumkan Rentang Pandang Balik antara 5 dan 10 dengan kenaikan 1, sehingga akan menguji nilai 5, 6, 7, 8, 9, 10.

Pembalakan

Semasa menjalankan analisis, PrescienTrader secara berterusan mengeluarkan maklumat ke tetingkap Jejak. Setiap baris mengandungi maklumat berikut:

  • Jenis analisis (ujian belakang, pengoptimuman, penerokaan, dll ...)
  • Simbol instrumen yang dianalisis
  • Tempoh Masa (harian, mingguan, bulanan, dll ...)
  • Siri Data (Tutup, Purata, dll ...)
  • Nilai parameter:
    • Polariti
    • Asas PL
    • Frekuensi Min
    • Frekuensi Maks
    • Julat Penglihatan
    • Penapis harmonik
    • Keyakinan Min
    • Kitaran X Terbaik

Untuk setiap nilai parameter, ini menunjukkan sumbernya dalam kurungan. Sumbernya boleh menjadi salah satu daripada yang berikut:

  • Param - Nilai diambil dari tetingkap Parameter.
  • Opt - Value dihasilkan berdasarkan tetapan pengoptimuman yang ditentukan dalam tetingkap Parameter.
  • Disimpan - Nilai yang disimpan untuk instrumen ini dan jangka masa.
  • AFL - Nilai diambil dari pemboleh ubah AFL yang sesuai dengan parameter.
  • Array - Nilai diambil dari array AFL. Oleh kerana tatasusunan dapat menggunakan nilai yang berbeza untuk setiap bar, tidak ada nilai yang akan ditampilkan.

Pemboleh ubah AFL mempunyai keutamaan tertinggi, diikuti oleh nilai yang disimpan dan kemudian nilai yang ditentukan dalam tetingkap Parameter.

Sebagai tambahan kepada tetingkap Jejak, Anda dapat mengaktifkan log masuk ke file dengan memasukkan jalur file di tetingkap Parameter.

Adakah artikel ini membantu?
Tidak suka 0
Views: 1418
BEBAS SELAMANYA
Isyarat Dagangan harian
oleh PrescientSignals
SUBSCRIBE
Langgan untuk menerima isyarat dagangan PERCUMA yang dihantar ke peti masuk e-mel anda setiap hari
Isyarat percuma ditunda oleh satu minggu. Ini membolehkan anda menilai perkhidmatan PrescientSignals kami tanpa risiko, dengan membandingkan ramalan minggu sebelumnya dengan keputusan sebenar.
BEBAS SELAMANYA
Isyarat Dagangan harian oleh PrescientSignals
SUBSCRIBE
Langgan untuk menerima isyarat dagangan PERCUMA yang dihantar ke peti masuk e-mel anda setiap hari
Isyarat percuma ditunda oleh satu minggu. Ini membolehkan anda menilai perkhidmatan PrescientSignals kami tanpa risiko, dengan membandingkan ramalan minggu sebelumnya dengan keputusan sebenar.