Properti strategi

Setiap strategi Pine memiliki sejumlah properti untuk menentukan cara kerjanya: 

  1. Modal Awal
  2. Mata Uang Dasar
  3. Ukuran Order
  4. Pyramiding
  5. Komisi
  6. Memverifikasi Harga Untuk Order Limit
  7. Slippage
  8. Margin
  9. Kalkulasi ulang
  10. Isi Order

Mereka tersedia pada pengaturan strateginya, didalam tab Properti:


Setiap parameter yang ditentukan dalam properti strategi dapat diubah dengan mengedit argumen pemanggilan fungsi strategy() dalam skrip Pine yang sesuai:

strategy(title, initial_capital, currency, default_qty_value, default_qty_type, pyramiding, commission_type, commission_value, backtest_fill_limits_assumption, slippage, process_orders_on_close, margin_long, margin_short, calc_on_order_fills, calc_on_every_tick, process_orders_on_close, use_bar_magnifier)

Mari kita lihat setiap parameter input di menu Properti dan parameter yang sesuai dalam bahasa Pine:

1 - Modal Awal (parameter: initial_capital) mewakili jumlah dana awal yang tersedia untuk di tradingkan oleh strategi anda, dalam mata uang yang ditentukan pada Mata Uang Dasar. Secara bawaannya, nilai ini akan sama dengan 100,000. Anda mungkin perlu meningkatkan nilai ini agar trade dapat terjadi pada simbol-simblo tertentu..

2 - Mata Uang Dasar (parameter: currency) menentukan mata uang yang digunakan untuk kalkulasinya. Hasil yang muncul dalam tab Penguji Strategi (profit, loss, drawdown, dsb) ditampilkan dalam mata uang tersebut. Pilihan yang tersedia adalah:

Default, USD, EUR, AUD, GBP, NZD, CAD, CHF, HKD, JPY, NOK, SEK, SGD, TRY, ZAR. Jika pilihan Bawaan dipilih, strateginya akan menggunakan mata uang bawaan untuk simbolnya dan tidak terdapat konversi mata uang didalamnya.

3 - Ukuran Order (parameters: default_qty_value, default_qty_type). Ini membutuhkan sebuah nilai dan mode kalkulasinya. Harap dicatat bahwa nilai kalkulasinya dapat tergantung pada kuantitas minimum yang dapat ditradingkan untuk suatu simbol tertentu:

  • Kontrak (argument: strategy.fixed) - strategi akan masuk dengan jumlah kontrak/lembar/lot yang telah ditentukan.
  • Jumlah dalam mata uang (argument: strategy.cash) - strategi akan memasukkan jumlah yang ditentukan dalam mata uang dasarnya.
  • Persentase ekuitas (argument: strategy.percent_of_equity) - ukuran posisi akan dihitung sebagai persentase dari ekuitas yang tersedia saat trade dibuka.

4 - Pyramiding (parameter: pyramiding) menentukan jumlah maksimum entri berturut-turut yang diizinkan dalam arah yang sama. Ketika pyramiding dinonaktifkan, strategi hanya dapat membuka satu posisi panjang atau pendek, bahkan jika kondisi masuk terpenuhi. Pyramiding hanya memengaruhi entri yang dibuat menggunakan fungsi strategy.entry(). Ini tidak berpengaruh pada order yang dibuat menggunakan strategy.order().

5 - Komisi (parameters: commission_type, commission_value). Ini adalah jumlah yang dibayarkan dalam biaya trading untuk setiap tradenya. Nilai dan mode kalkulasi harus diberikan. Perhatikan bahwa komisi diterapkan pada entri dan keluar, dan ketika persentase digunakan, komisi yang dihitung akan bervariasi sesuai dengan nilai transaksinya:

  • Persentase dari nilai yang ditransaksikan (argumen: strategy.commission.percent) - mengenakan komisi pada setiap order sesuai dengan persentase yang ditentukan.
  • Mata uang per kontrak (argumen: strategy.commission.cash_per_contract) - mengenakan komisi pada setiap kontrak.
  • Mata uang per order (argumen: strategy.commission.cash_per_order) - mengenakan komisi pada setiap order.

6 - Verifikasi Harga Untuk Order Limit (parameter: backtest_fill_limits_assumption) membuat kondisi untuk memasuki posisi menggunakan order limit secara lebih ketat. Secara bawaannya, nilai ini adalah 0, yaitu order limit diisi pada data historis segera setelah harga yang ditunjukkan dalam order tercapai. Jika parameternya tidak nol, maka order limit dapat memasuki posisi di dalam bar hanya jika harga pasar telah melampaui level order limit dengan jumlah tick yang telah ditentukan.

7 - Slippage (parameter: slippage) menentukan nilai dalam ticks yang akan ditambahkan ke harga pengisian pasar atau order stop. Ini dapat digunakan untuk memperhitungkan spread.

8 - Margin Untuk Posisi Pembelian dan Penjualan (parameters: margin_long, margin_short) menentukan margin untuk setiap trade, misalnya persentase yang dibutuhkan trader untuk membuka posisi. Sebagai contoh, jika Margin untuk posisi beli diatur ke 25%, maka trader harus memiliki cukup dana untuk memenuhi 25% dari trade yang terbuka dan berpotensi menghabiskan hingga 400% dari ekuitasnya dalam setiap trade. Jika trade telah dibuka dan mulai mengalami kerugian ke tingkat dimana dana trader tidak cukup lagi untuk menahan porsi tradingnya, maka Margin Call akan terjadi dan dipaksa melikuidasi sebagian dari posisi originalnya. Anda dapat mempelajari lebih lanjut mengenai fitur ini dan cara penghitungannya di artikel Pusat Bantuan ini.

9 - Kalkulasi Ulang menentukan seberapa sering strateginya harus dihitung ulang. Secara bawaan, strategi dihitung ulang pada penutupan setiap bar, tetapi, dengan menggunakan opsi di bawah ini, strategi juga dapat dihitung ulang:

  • Setelah Order Terpenuhi (parameter: calc_on_order_fills) - memungkinkan strategi untuk melakukan perhitungan order intra-bar tambahan segera setelah order terisi. Perhitungan ekstra itu terjadi pada bar historis dan realtime.
  • Pada Setiap Tick (parameter: calc_on_every_tick). Secara bawaan, strategi hanya menghitung pada penutupan bar real-time. Parameter ini memungkinkan strategi untuk menghitung pada setiap pembaruan bar real-time, seperti yang dilakukan sebuah studi. Perhatikan bahwa data tick hilang saat chart di segarkan sehingga strategi yang menggunakan opsi ini akan bersifat repaint. Parameter ini tidak mempengaruhi perilaku strategi pada bar historis. Perhatikan juga bahwa strategi yang menggunakan fitur ini tidak akan menampilkan hasil yang realistis pada bar historis, karena tidak berisi data tick.
  • Pada Penutupan Bar (parameter: process_orders_on_close). Jika true, strategi menghasilkan upaya tambahan untuk mengeksekusi order setelah bar ditutup dan perhitungan strategi selesai. Jika ordernya adalah order pasar, emulator broker akan mengeksekusinya sebelum bar berikutnya dibuka. Jika order bergantung pada harga, order hanya akan diisi jika kondisi harga terpenuhi. Opsi ini berguna jika anda ingin mengeksekusi order pada saat yang sama ketika harga dibuat: secara bawaan, order dibuat pada Penutupan bar saat ini dan dieksekusi pada Pembukaan bar berikutnya; dengan pengaturan ini diaktifkan, mereka akan dieksekusi pada penutupan yang sama saat order dibuat. Perhatikan bahwa memasuki posisi pada tik yang sama dengan order yang dibuat dapat menyesatkan karena hal itu tidak mungkin dilakukan dalam trading real.

10 - Isi order:

  • Menggunakan pembesar bar (parameter: use_bar_magnifier) - mengarahkan Broker Emulator untuk menggunakan harga kerangka waktu lebih rendah yang lebih presisi selama backtesting riwayat untuk mencapai hasil yang lebih realistis. Baca selengkapnya tentang fitur ini di Pusat Bantuan.
  • Pada penutupan bar (parameter: process_orders_on_close). Jika true, strategi menghasilkan upaya tambahan untuk mengeksekusi order setelah bar ditutup dan perhitungan strategi selesai. Jika ordernya adalah order pasar, emulator broker akan mengeksekusinya sebelum bar berikutnya dibuka. Jika order bergantung pada harga, order hanya akan dipenuhi jika kondisi harga terpenuhi. Opsi ini berguna jika anda ingin mengeksekusi order pada saat order tersebut dibuat: secara bawaan, order dibuat pada Penutupan bar saat ini dan dieksekusi pada Pembukaan pada bar berikutnya; dengan pengaturan ini diaktifkan, maka order tersebut akan dieksekusi pada Penutupan yang sama dengan saat order dibuat. Perhatikan bahwa memasuki posisi pada tick yang sama dengan saat order dibuat dapat menjadi tidak sesuai karena hal tersebut tidak mungkin dilakukan dalam trading nyata.
  • Menggunakan OHLC standar (parameter: fill_orders_on_standard_ohlc) memaksa strategi tyaberjalan pada chart Heikin Ashi untuk memenuhi order menggunakan harga OHLC aktual, untuk hasil yang lebih realistis. Secara bawaan, skrip strategi mengisi order menggunakan harga chart, apa pun jenis chartnya. Untuk chart Heikin Ashi, pengaturan ini mencegah penggunaan harga sintetis yang mungkin tidak sesuai dengan kenyataan. Misalnya, strategi yang kami terapkan pada chart harian NASDAQ:AAPL Heikin Ashi memenuhi order pada 25-09-2023 dengan harga sintetis 175,61 USD. Namun, setelah mengaktifkan opsi "Menggunakan OHLC standar", order yang sama terisi pada harga 174,20 USD di chart standar.