Sifat-sifat strategi

Setiap strategi Pine mempunyai sejumlah sifat yang menentukan perilakunya:

  1. Modal Permulaan
  2. Mata Wang Asas
  3. Saiz Pesanan
  4. Pempiramidan
  5. Komisen
  6. Sahkan Harga Untuk Pesanan Had
  7. Gelinciran
  8. Margin
  9. Kira Semula
  10. Isian pesanan

Mereka tersedia dalam tetapan strategi, di tab Sifat: 

Setiap parameter yang ditentukan dalam sifat strategi dapat diubah dengan mengedit argumen fungsi panggilan strategy()  dalam skrip Pine:

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 perhatikan setiap parameter input di menu Sifat dan parameter yang berkaitan dalam bahasa Pine:

1 - Initial Capital (parameter: initial_capital)  mewakili jumlah dana yang awalnya tersedia untuk strategi perdagangan, dalam mata wang yang ditentukan dalam Mata Wang Asas. Secara lalai, nilai ini sama dengan 100,000. Anda mungkin perlu meningkatkan nilai ini agar perdagangan berlaku pada simbol tertentu.

2 - Base Currency (parameter: currency) menentukan mata wang yang digunakan untuk pengiraan. Hasil yang muncul di tab Penguji Strategi  (keuntungan, kerugian, penarikan, dll) dinyatakan dalam mata wang ini.

Lalai, USD, EUR, AUD, GBP, NZD, CAD, CHF, HKD, JPY, NOK, SEK, SGD, TRY, ZAR. Sekiranya pilihan Lalai dipilih, strategi akan menggunakan mata wang lalai untuk simbol ini dan tidak ada penukaran mata wang.

3 - Order Size (parameters: default_qty_value, default_qty_type). Ini memerlukan nilai dan mod pengiraan. Perhatikan bahawa nilai yang dikira boleh dikenakan kekangan kerana kuantiti minimum yang dapat diperdagangkan untuk simbol:

  • Contracts (argument: strategy.fixed) - Strategi ini akan memasukan bilangan kontrak / saham / lot yang ditentukan.
  • Amount in currency (argument: strategy.cash) - Strategi ini akan memasuki jumlah yang dinyatakan dalam mata wang asas.
  • Percentage of equity (argument: strategy.percent_of_equity) - Saiz kedudukan akan dikira sebagai peratusan ekuiti yang ada apabila perdagangan dibuka. 

4 - Pyramiding (parameter: pyramiding) Menentukan bilangan maksimum penyertaan berturut-turut yang dibenarkan dalam arah yang sama. Apabila Pempiramidan nyahdayakan, strategi ini hanya boleh membuka satu kedudukan yang panjang atau pendek, walaupun keadaan kemasukan dipenuhi. Pempiramidan hanya memberi kesan kepada penyertaan yang dibuat menggunakan fungsi strategy.entry(). Ia tidak mempunyai kesan ke atas pesanan yang dibuat menggunakan strategy.order().

5 - Commission (parameters: commission_type, commission_value). Ia adalah jumlah yuran yang perlu dibayar dalam perdagangan untuk setiap perdagangan. Mod nilai dan pengiraan mesti dibekalkan. Perlu diingatkan bahawa komisen digunakan pada kedua-dua penyertaan dan keluar, dan apabila peratusan digunakan, komisen yang dikira akan berbeza berdasarkan nilai transaksi:

  • Percentage of the transacted value (argument: strategy.commission.percent) - mengenakan komisen pada setiap pesanan yang sama dengan peratusan yang ditentukan.
  • Currency per contract (argument: strategy.commission.cash_per_contract) - mengenakan komisen pada setiap kontrak.
  • Currency per order (argument: strategy.commission.cash_per_order) - mengenakan komisen pada setiap pesanan.

6 - Verify Price For Limit Orders (parameter: backtest_fill_limits_assumption) Membuat keadaan untuk memasuki kedudukan menggunakan pesanan had yang lebih ketat. Secara lalai, nilai ini adalah 0, I.E. Pesanan had diisi pada data sejarah sebaik sahaja harga yang ditunjukkan dalam urutan dicapai. Sekiranya parameter itu tidak sifar, maka pesanan had boleh memasuki kedudukan di dalam bar hanya jika harga pasaran telah melebihi tahap pesanan had  dengan bilangan tanda yang ditentukan.

 

7 - Slippage (parameter: slippage) Menentukan nilai dalam tanda yang akan ditambah kepada harga mengisi pasaran atau pesanan henti. Ia boleh digunakan untuk mengira spread.

8 - Margin For Long and Short Positions (parameters: margin_long, margin_short) menunjukkan margin untuk setiap dagangan, cth, peratusan posisi yang pedagang mesti danakan. Sebagai contoh, jika Margin for long positions adalah ditetapkan pada 25%, pedagang hendaklah mempunyai cukup dana untuk menampung 25% daripada kedudukan untuk dagangan yang dibuka dan berpotensi untuk mengambil sehingga 400% daripada ekuiti mereka dalam setiap dagangan. Sekiranya satu posisi telah dibuka dan ia mula mengalami kerugian sehingga dana yang ada tidak mencukupi untuk menampung bahagian mereka di dalam dagangan, satu Panggilan Margin akan berlaku dan secara paksa akan mencairkan satu bahagian daripada posisi permulaan. Anda boleh membaca lebih mengenai ciri ini dan bagaimana ia dikira dalam artikel Pusat Bantuan ini.

9 - Pilihan Recalculate menentukan sekerap mana strategi patut dikira semula. Secara lalai, strategi dikira pada penutup setiap bar, tetapi menggunakan pilihan di bawah, ia juga boleh dikira semula:

  • After Order is Filled (parameter: calc_on_order_fills) - Membenarkan strategi untuk melakukan pengiraan pesanan intra-bar tambahan dengan serta-merta selepas pesanan di isi. Pengiraan tambahan ini berlaku pada kedua-dua bar sejarah dan masa nyata.
  • On Every Tick (parameter: calc_on_every_tick). Secara lalai, strategi hanya mengira pada penutup bar realtime. Parameter ini membolehkan strategi untuk mengira setiap kemas kini bar realtime, seperti sesuatu kajian dilakukan. Perlu diperhatikan bahawa tanda data akan hilang apabila carta disegarkan, jadi strategi yang menggunakan pilihan ini akan mengecat semula. Parameter ini tidak menjejaskan tingkah laku strategi pada bar sejarah. Juga perlu diambil perhatian bahawa strategi yang menggunakan ciri ini tidak akan menunjukkan hasil yang realistik pada bar sejarah, kerana ia tidak mengandungi tanda data.

10 - Isian pesanan:

  • Use Bar Magnifier (parameter: use_bar_magnifier) membenarkan Emulator Broker untuk menggunakan data rangka masa lebih rendah semasa ujian belakang sejarah untuk mendapatkan keputusan yang lebih realistik. Anda boleh mempelajari lebih lanjut mengenai mod ujian belakang Pembesar Var dalam Pusat Bantuan
  • On bar close (parameter: process_orders_on_close). Jika benar, strategi akan menjana satu cubaan tambahan untuk melaksanakan pesanan selepas bar ditutup dan pengiraan strategi selesai. Jika pesanan adalah pesanan pasaran, emulator broker melaksanakan mereka sebelum bar berikut dibuka. Jika pesanan adalah bergantung kepada harga, ia hanya akan diisikan apabila keadaan harga dipenuhi. Pilihan ini berguna jika anda mahu melaksanakan pesanan pada masa yang sama mereka dicipta: secara lalai, pesanan dicipta pada Tutup bar semasa dan dilaksanakan pada Buka bar berikut.; dengan tetapan ini diaktifkan, mereka akan dilaksanakan pada Tutup yang sama pesanan dicipta. Ambil maklum bahawa memasuki posisi pada tick yang sama pesanan dicipta boleh mengakibatkan kekeliruan kerana ia tidak dibenarkan untuk dilakukan dalam dagangan sebenar.
  • Menggunakan OHLC standard (parameter: fill_orders_on_standard_ohlc) memaksa strategi untuk dijalankan pada carta Heikin Ashi untuk mengisi pesanan menggunakan harga sebenar OHLC, untuk keputusan yang lebih realistik. Secara lalai, skrip strategi mengisikan pesanan menggunakan harga carta, tanpa mengira jenis carta. Untuk carta Heikin Ashi, tetapan ini menghalang penggunaan harga sintetik yang mungkin tidak bersamaan dengan realiti. Sebagai contoh, strategi ini telah kami gunakan pada carta NASDAQ:AAPL Heikin Ashi harian untuk diisikan pesanan pada 2023-09-25 pada satu harga sintetik 175.61 USD. Akan tetapi, mengaktifkan pilihan "Gunakan OHLC standard", pesanan yang sama diisikan pada harga carta standard 174.20 USD.