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. Pastikan Harga Untuk Order Limit
  7. Slippage
  8. Marjin
  9. Kalkulasi ulang

Ini 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)

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 Default 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. Anda dapat menentukan nilai yang lebih besar dari 100%.

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_typecommission_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 - Marjin Untuk Posisi Pembelian dan Penjualan (parameters: margin_long, margin_short) marjin yang dibutuhkan untuk mempertahankan posisi. Jika dana tidak cukup, maka terjadi margin call, yang secara paksa menutup sebagian atau seluruh posisi dengan order pasar sampai ada cukup dana untuk mempertahankan posisi yang ada..

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.