Strategi pertama sudah selesai dijalankan. Sekarang kamu memeriksa apakah transaksi simulasi benar-benar mengikuti aturan yang ditentukan dan apa arti hasil yang ditampilkan.

Data demo buku adalah rangkaian harga sintetis. Hasilnya dapat digunakan untuk memeriksa perilaku program, tetapi tidak menentukan imbal hasil yang diharapkan dari pasar sungguhan.

Memeriksa satu transaksi terlebih dahulu

Jalankan crossover_strategy.py dengan panjang 5 dan 20. Tunggu hingga selesai, lalu pilih tab Trades pada panel di bawah grafik. Jika panel tertutup, buka dengan panah di sebelah kanannya.

Tabel menampilkan data masuk dan keluar sebuah transaksi. Pada transaksi long, masuk berarti membeli dan keluar berarti menjual.

KolomYang ditampilkan
TradeNomor urut transaksi dan identitas entry
Entry timeWaktu eksekusi entry
Entry priceHarga eksekusi entry
Exit timeWaktu eksekusi keluar
Exit priceHarga eksekusi keluar
QtyJumlah unit transaksi
ProfitHasil moneter transaksi yang sudah ditutup
Profit %Hasil persentase transaksi
Di bawah grafik strategi PyneIDE, tabel Trades terbuka dengan waktu, harga, dan hasil transaksi.
Tabel Trades memungkinkan pemeriksaan entry dan exit yang sudah dieksekusi secara terpisah.

Klik baris sebuah transaksi untuk menemukan periode terkait pada grafik. Periksa persilangan sebelum entry dan persilangan yang memicu penutupan.

Program asli tidak menentukan commission_value atau slippage, sehingga pengujian dasar belum menyertakan biaya yang akan kita tambahkan secara terpisah. Periksa arah, waktu, dan jumlah pada pengujian sederhana ini terlebih dahulu.

Menghitung hasil transaksi sederhana

Jika satu unit dibeli pada harga 100 dan dijual pada 103, selisih harganya 3. Dengan nilai per poin satu dan tanpa biaya, hasil moneternya juga sebesar itu.

Secara umum, hasil dari pergerakan harga untuk transaksi long adalah:

(harga keluar − harga masuk) × jumlah × nilai per poin

Nilai per poin merupakan bagian dari metadata pasar. Nilai ini menjelaskan nilai moneter perubahan harga sebesar satu untuk posisi satu unit. Pada data DEMO buku, nilai per poin adalah 1.

Komisi mengurangi hasil bersih transaksi. Slippage mengubah harga eksekusi, sehingga sudah tercermin dalam selisih harga. Slippage yang sama tidak perlu dikurangkan lagi secara terpisah dari harga yang sudah disesuaikan.

Tampilan Performance

Tab Performance menunjukkan perkembangan ekuitas selama seluruh pengujian. Antarmuka menyediakan kolom berikut:

  • Cumulative P&L: perubahan ekuitas dibandingkan modal awal;
  • Max drawdown: penurunan terbesar dari puncak sebelumnya pada kurva ekuitas yang diperiksa;
  • Final equity: ekuitas pada candle terakhir yang diproses;
  • Max run-up: kenaikan terbesar ekuitas dari titik terendah sebelumnya.
Tampilan Performance PyneIDE memperlihatkan Cumulative P&L, Max drawdown, Final equity, dan kurva ekuitas.
Tab Performance menampilkan kurva ekuitas dan nilai ringkasan seluruh pengujian.

Ekuitas juga dapat memperhitungkan perubahan nilai posisi terbuka. Karena itu, ekuitas akhir belum tentu sama dengan jumlah laba transaksi tertutup ditambah modal awal. Periksa juga posisi yang masih terbuka di akhir data.

Selain titik akhir kurva ekuitas, periksa bagian di antaranya. Hasil akhir yang sama bisa dicapai melalui penurunan yang berbeda dan periode rugi yang panjang.

Tampilan Stats

Tab Stats menampilkan statistik terperinci di akhir pengujian. Total Trades membantu memeriksa jumlah transaksi tertutup, sedangkan Net Profit menunjukkan jumlah hasil bersihnya.

Profit Factor adalah rasio hasil keseluruhan transaksi untung terhadap transaksi rugi: total keuntungan dibagi nilai absolut total kerugian. Jika tidak ada transaksi rugi, hasil bagi bukan angka pembanding berhingga yang biasa.

Tingkat kemenangan menunjukkan bagian transaksi tertutup yang menghasilkan keuntungan. Angka ini sendiri tidak menentukan total laba. Sedikit kerugian besar bisa menghapus banyak keuntungan kecil.

Ringkasan dari sedikit transaksi mudah menyesatkan. Selalu lihat jumlah seluruh transaksi bersama ukuran lain, dan periksa juga transaksi rugi satu per satu.

Biaya pada tampilan Properties

Buka pengaturan strategi melalui ikon roda gigi Strategy properties pada panel bawah grafik, lalu pilih tab Properties. Di sini modal awal, jumlah, dan biaya bisa diubah.

Dua pengujian berikut merupakan latihan perbandingan. Nilai biaya yang diberikan hanya bagian dari contoh; biaya pasar sebenarnya perlu ditentukan tersendiri.

  1. Periksa Initial capital bernilai 10000 dan Order size diatur ke 1 Contracts.
  2. Atur Commission menjadi 0,1 dan pilih satuan % of order value. Kamu juga bisa mengetik 0.1 dalam kolom.
  3. Atur Slippage menjadi 2 tick.
  4. Klik Save, lalu jalankan Run Pyne code dan tunggu hingga selesai.
Tab Properties pada Settings strategi menampilkan kolom Commission dan Slippage.
Tampilan Properties menggunakan persen untuk komisi dan tick untuk slippage.

0,1 persen bukan 10 persen: kolom ini menggunakan satuan persen. Untuk eksekusi bernilai 100, komisinya 0,1. Baik entry maupun exit adalah eksekusi dan keduanya bisa dikenai biaya.

Tick adalah langkah harga terkecil pasar. Pada metadata DEMO nilainya 0,01, sehingga dua tick berarti perubahan harga 0,02. Slippage menggeser harga eksekusi order pasar ke arah yang merugikan strategi.

Pada pasar lain, ukuran tick dan nilai per poin bisa berbeda. Jangan langsung menerapkan arti biaya dari data DEMO pada instrumen lain.

Pengaturan eksekusi juga bagian dari percobaan

Pengaturan On bar close dalam bagian Fill orders memengaruhi waktu eksekusi order pasar. Untuk strategi dasar buku, biarkan tidak aktif agar order dari sinyal dieksekusi pada pembukaan berikutnya.

After order is filled dapat meminta perhitungan ulang setelah eksekusi. Using bar magnifier dapat memeriksa eksekusi dalam candle menggunakan data dengan kerangka waktu lebih rendah dan lebih terperinci. Keduanya menambahkan kondisi eksekusi baru; biarkan tidak aktif saat membandingkan pengujian dasar.

Mengubah satu pengaturan saja sudah menghasilkan pengujian baru. Jika panjang, jumlah, biaya, dan mode eksekusi diubah bersama, kamu tidak bisa menentukan mana yang menyebabkan perbedaan.

Mencatat apa yang dibandingkan

Tombol Open trades output CSV pada bilah alat grafik membuka ekspor transaksi. Open plot output CSV membuka tabel nilai yang digambar. File hasil juga tersedia dalam kelompok Output proyek.

Sebelum menjalankan program yang sama kembali, salin ekspor yang ingin dipertahankan dengan nama file lain. Nama hasil pengujian saja tidak mengidentifikasi seluruh pengaturannya.

Dalam catatan sendiri, setidaknya simpan:

PengujianDataPanjang cepat/lambatJumlahKomisiSlippage
DasarDEMO5 / 201 unit0%0 tick
BerbiayaDEMO5 / 201 unit0,1%2 tick

Tambahkan hasil yang diperoleh di sampingnya. Isi tabel ini dalam catatanmu berdasarkan pengujian yang benar-benar dijalankan.

Coba sendiri

Bandingkan transaksi yang sama pada pengujian tanpa biaya dan dengan biaya. Periksa harga entry, harga exit, dan laba. Apa yang berubah, dan apa yang tetap sama pada aturan sinyal?

Solusi latihan

Moving average dan persilangannya tidak dihitung dari komisi atau slippage, sehingga sinyal dasar tidak berubah. Harga masuk dan penutupan pasar bisa menjadi lebih buruk akibat slippage. Komisi makin mengurangi hasil bersih transaksi.

Kedua pengujian bisa dibandingkan secara langsung jika input, jumlah, data, dan mode eksekusi sama serta strategi dapat menjalankan order pada keduanya.

Memilih data lain

Setelah demo, kamu bisa menggunakan pengunduh data PyneIDE untuk menyiapkan data pasar sendiri. Data baru bisa memiliki harga, ukuran tick, batas jumlah, dan transaksi berbeda. Periksa data terlebih dahulu sebelum membandingkan hasil.

  1. Dalam tampilan Pyne sebelah kiri, arahkan mouse ke judul kelompok Data. Klik ikon Download Data… yang muncul, bergambar awan dengan panah ke bawah. Symbol Browser terbuka. Pilihan yang sama juga tersedia melalui klik kanan pada judul Data.
  2. Pilih penyedia pada kolom Provider. Gambar menggunakan ccxt; untuk penyedia ini, kamu juga bisa memilih sumber data tertentu pada Broker.
  3. Ketik nama pasar yang dicari pada kolom penyaring. Gambar memilih pasar spot BTC/USD dari sumber coinbase. Perhatikan nama simbol lengkap: baris dengan awalan serupa bisa merupakan pasar berbeda.
  4. Atur Timeframe menjadi 1D dan From menjadi 365 days back. Nilai now pada To meminta data hingga waktu pengunduhan.
  5. Klik Download dan tunggu hingga selesai.
Symbol Browser PyneIDE memilih pasar spot BTC/USD pada sumber coinbase milik penyedia ccxt dengan kerangka waktu harian.
Dalam Symbol Browser, sumber data, pasar, kerangka waktu, dan periode bersama-sama menentukan data yang diunduh.

Informasi sebelah kanan menunjukkan mintick untuk ukuran tick, pointvalue untuk nilai per poin, dan mincontract untuk jumlah minimum. Periksa juga nilai tersebut pada datamu sendiri. Ketersediaan sumber data dan akses yang diperlukan bergantung pada penyedia; meminta data yang dipilih di sini tidak berarti menggunakan rekening trading.

Data yang diunduh masuk ke kelompok Data proyek. Klik nama pasar pada baris atas grafik strategi untuk membuka pemilih data dan memilih data baru. Grafik akan dihitung ulang; tetap periksa input dan properti strategi.

Periode unduhan tidak menjamin jumlah candle tertentu: panjang data penyedia, hari perdagangan pasar, dan periode yang tidak tersedia ikut memengaruhinya. Unduhan baru bisa mengubah rangkaian data yang diperiksa, jadi simpan file data dan metadata terkait untuk perbandingan.

Menafsirkan pengujian

Backtest menghitung berdasarkan gabungan aturan, rangkaian data, dan model eksekusi tertentu. Ini membantu memeriksa apakah kode mengikuti deskripsimu dan bagaimana perilakunya dalam model tersebut. Hasilnya tidak mencakup data masa depan.

Jika parameter diubah berulang kali pada data yang sama, kamu bisa menemukan aturan yang cocok dengan data tersebut. Menguji periode terpisah yang tidak digunakan untuk pengaturan menjawab pertanyaan lain. Karena itu, dalam proyek akhir kamu memeriksa kebenaran perilaku program dan perbandingan pengaturan secara terpisah.