Pengaturan tanpa mengubah kode
Menambahkan input ke indikator dan mengubahnya melalui tampilan Inputs PyneIDE.
Sebelumnya, kamu mengubah angka dalam kode sumber untuk mencoba panjang rata-rata. Sekarang angka itu akan dijadikan pengaturan indikator. Program yang sama bisa dijalankan dengan panjang berbeda.
Apa itu input?
Input adalah masukan bernama yang dapat diubah dari luar program. Sumber kode menentukan tipe, nilai bawaan, dan rentang yang diizinkan. Pengguna memilih nilai dalam batas tersebut.
Input kali ini bernama length, dengan nilai bawaan 20. Variabel length menjadi panjang moving average. Kode juga memerlukan namespace input dari modul pynecore.lib.
length: int = input.int(20, title="Average length", minval=1, maxval=200)Baris ini ditempatkan di antara parameter main(). int berarti bilangan bulat: misalnya 1, 20, atau 200 boleh digunakan, tetapi 2,5 tidak. input.int mendeskripsikan input bilangan bulat.
20 adalah nilai bawaan dan Average length adalah judul yang ditampilkan pada antarmuka. minval dan maxval merupakan nilai terkecil dan terbesar yang diizinkan. Panjang nol tidak membentuk jendela rata-rata yang bermakna, jadi kita melarangnya.
Program lengkap
Buat file adjustable_average.py:
"""
@pyne edge
"""
from pynecore.lib import close, color, input, plot, script, ta
@script.indicator("Adjustable Average", overlay=True)
def main(
length: int = input.int(20, title="Average length", minval=1, maxval=200),
):
average = ta.sma(close, length)
plot(average, "Average", color=color.blue, linewidth=2)Daftar parameter ditulis dalam beberapa baris setelah tanda kurung pembuka main. ): menutup daftar dan memulai isi fungsi. Perhitungan dan gambar di bawahnya menjorok empat spasi.
Koma di akhir baris input memungkinkan penambahan parameter lain. Koma tersebut juga boleh digunakan jika hanya ada satu parameter. Kedua bagian yang menjorok memiliki peran berbeda: di dalam tanda kurung kita menentukan input, sedangkan setelahnya terdapat pernyataan yang dijalankan.
Jalankan program pada data demo. Pada eksekusi pertama, rata-rata biru dihitung dari dua puluh candle.
Membuka tampilan Inputs
- Pastikan file
adjustable_average.pyaktif. - Klik ikon roda gigi pada bilah alat di kanan atas editor, di samping tab file. Saat penunjuk mouse diarahkan ke sana, muncul label Edit Inputs….
- Cari kolom Average length pada tampilan yang terbuka.
- Ubah nilainya menjadi 5, lalu klik Save.
Tampilan yang sama juga bisa dibuka dari kelompok Scripts dalam tampilan Pyne di sebelah kiri: klik kanan file adjustable_average.py, lalu pilih Edit Inputs…. Pilihan itu juga tersedia melalui klik kanan pada kode yang terbuka.

Saat Save diklik, PyneIDE otomatis menghitung ulang grafik yang terbuka dengan pengaturan tersimpan. Tunggu hingga selesai diperbarui: garis biru kini menunjukkan rata-rata dari lima candle.
Nilai bawaan dalam kode sumber tetap 20. Nilai 5 yang disimpan melalui Inputs menggantikannya dalam proyek tersebut.
Sekarang ubah menjadi 50 dan simpan lagi. Bandingkan respons garis terhadap perubahan harga pada periode yang sama. Menggeser periode pada grafik saja tidak mengubah input program.
Di mana pengaturan disimpan?
File .toml dengan nama yang sama di samping program menyimpan pengaturan. Dalam contoh ini, namanya adjustable_average.toml.
TOML adalah format pengaturan berbasis teks. PyneIDE mengelola file ini, sehingga latihan cukup menggunakan tampilan Inputs. Jika file dibuka, bagian pengaturan panjang terlihat seperti ini:
[inputs.length]
value = 5Tanda kurung siku di sini menandai kelompok pengaturan. Ini bukan riwayat candle dari bab tentang riwayat: notasi ini berada dalam file lain dan mengikuti aturan bahasa yang berbeda.
Nama parameter dalam kode juga berbeda dari judulnya pada antarmuka. File menggunakan length, sedangkan antarmuka menampilkan Average length. Nama dalam kodelah yang menentukan perilaku program.
Jika nama input diubah dalam kode sumber, nilai yang tersimpan untuk nama lama bukanlah pengaturan input baru. Buka kembali Inputs dan periksa nilainya. Saat menyalin program, salin file .toml di sampingnya hanya jika kamu juga ingin mempertahankan pengaturan tersimpan.
Nilai bawaan dan nilai yang digunakan
Jika nilai bawaan dalam kode diubah dari 20 menjadi 30, tetapi nilai lima sudah tersimpan, program bisa tetap menggunakan lima. Penggantian yang tersimpan memiliki prioritas.
Karena itu, catat input yang benar-benar digunakan ketika mendeskripsikan hasil. Nilai bawaan yang terlihat dalam kode sumber saja tidak menjelaskan seluruh pengaturan eksekusi.
Coba sendiri
Tambahkan parameter panjang kedua ke indikator. Nilai bawaan rata-rata pendek adalah 5 dan rata-rata panjang 20. Masing-masing paling kecil 1 dan paling besar 200. Gambar keduanya dengan judul terpisah.
Solusi latihan
Daftar parameter main():
fast_length: int = input.int(5, title="Fast length", minval=1, maxval=200),
slow_length: int = input.int(20, title="Slow length", minval=1, maxval=200),Isi fungsi:
fast_average = ta.sma(close, fast_length)
slow_average = ta.sma(close, slow_length)
plot(fast_average, "Fast average", color=color.blue, linewidth=2)
plot(slow_average, "Slow average", color=color.orange, linewidth=2)Kedua input bisa diubah secara terpisah. Batas tersebut belum mensyaratkan panjang cepat lebih kecil daripada panjang lambat. Hubungan ini perlu diperiksa tersendiri; kita membahasnya dalam proyek akhir.
Memeriksa penyimpanan
Atur panjang menjadi satu. SMA satu candle adalah harga penutupan candle itu, sehingga garis harus melewati harga penutupan. Setelah itu, kembalikan menjadi dua puluh. Saat file dibuka kembali, periksa apakah antarmuka menampilkan nilai dua puluh yang tersimpan.