Membaca dan mengubah kode
Memahami setiap baris program pertama dan menggambar harga pembukaan di samping harga penutupan.
Sekarang kita akan menggambar harga pembukaan bersama harga penutupan. Program dari bab sebelumnya diperluas dengan mengambil data baru dari pustaka dan menambahkan satu pemanggilan fungsi gambar.
Sebelum mengubahnya, kita membaca setiap baris agar kamu memahami kegunaannya.
Kode adalah petunjuk yang tepat
Dalam program, kamu memberi instruksi kepada komputer. Misalnya: “Gunakan harga penutupan candle dan tampilkan sebagai garis biru.” Komputer memerlukan nama dan tanda baca yang tepat untuk melakukannya.
Pyne code menuliskan instruksi itu dengan sintaks Python. Tanda kurung pada pemanggilan fungsi, titik dua, dan indentasi baris merupakan bagian darinya. Bagian berikut menjelaskan perannya.
Buka file first_chart.py yang dibuat pada bab kedua. Jika kamu sudah mengganti nama indikator di dalamnya, penjelasan berikut tetap berlaku.
Penanda Pyne di awal file
Tiga baris pertama file:
"""
@pyne edge
"""Tiga tanda kutip menandai awal dan akhir blok teks. Di awal file, blok ini juga bisa memuat deskripsi program. Python menyebutnya docstring.
PyneCore membaca penanda @pyne dari blok tersebut. Penanda ini memberi tahu bahwa file berisi Pyne code dan memerlukan aturan yang berbeda dari perilaku Python biasa. Sebelum eksekusi, PyneCore mengubah kode agar kita bisa, misalnya, mengakses nilai candle sebelumnya dan mempertahankan nilai variabel ke candle berikutnya. Keduanya dibahas dalam bab tersendiri.
@pyne sendiri juga merupakan penanda yang sah. File Pyne code bisa diawali seperti ini:
"""
@pyne
"""Apa arti edge di sampingnya?
edge menandakan bahwa program menggunakan bagian bahasa Pyne code yang sudah ditentukan dan dibatasi. @pyne mengaktifkan perilaku per candle; edge menentukan unsur bahasa dan fungsi yang boleh digunakan. PyneIDE akan memberi tahu jika kode melewati batas tersebut.
Program bertanda @pyne juga bisa menggunakan kemampuan dan pustaka Python lainnya. Program @pyne edge menggunakan alat yang diizinkan Pyne dan tidak mengimpor sembarang pustaka Python. Dengan begitu, program juga bisa diproses oleh runtime yang tidak menyediakan lingkungan Python umum.
Semua program lengkap dalam buku mempertahankan penanda @pyne edge dan ditulis dalam batas bahasa tersebut.
Penjelasan tambahan: di mana letak penandanya? Blok teks pembuka harus menjadi pernyataan pertama file, dan @pyne harus menjadi isi pertama di dalamnya. Deskripsi program bisa ditulis setelah penanda. Jika deskripsi diletakkan sebelum @pyne, PyneCore tidak mengenali penanda itu. Penanda sendiri tidak menjalankan program: PyneCore juga perlu memuat dan mengeksekusinya. Dalam contoh buku, PyneIDE yang menangani hal ini.
Sebagai contoh, kamu bisa menambahkan deskripsi program di awal file seperti berikut:
"""
@pyne edge
Open and Close
Shows each candle's opening and closing prices as two lines.
"""@pyne edge tetap menjadi baris isi pertama blok teks. Judul dan deskripsi di bawahnya ditujukan kepada pembaca dan tidak menambahkan tindakan pada program. Setelah tiga tanda kutip penutup, impor dan bagian program lainnya tetap ditulis seperti biasa.
Memilih alat yang digunakan
Baris berikutnya:
from pynecore.lib import close, color, plot, scriptStruktur from … import … membuat nama yang disebutkan tersedia dalam program. Contoh ini mengambil empat alat dari pustaka pynecore.lib:
close: harga penutupan candle saat ini;color: warna yang tersedia;plot: menampilkan nilai pada grafik;script: menentukan jenis dan pengaturan dasar program.
Koma memisahkan nama satu dengan lainnya. Huruf besar dan kecil dibedakan: close dan Close adalah nama yang berbeda.
Baris kosong membantu memisahkan bagian kode. Ini memudahkan kita melihat akhir daftar alat dan awal program.
Nama dan tampilan program
@script.indicator("My First Chart", overlay=True)Baris ini menyatakan bahwa kita membuat indikator. Indikator menghitung dan menampilkan sesuatu dari data. Dalam contoh ini, kita menggambar harga penutupan.
Pengaturan indikator diberikan dalam tanda kurung:
- Teks
"My First Chart"di dalam tanda kutip adalah nama indikator. overlay=Truememinta gambar ditampilkan pada grafik yang sama dengan candle.
True berarti benar. Lawannya adalah False. Jika nilai overlay diubah menjadi False, indikator muncul dalam panel terpisah. Kita akan menggunakannya dalam bab tentang perhitungan sendiri.
Tempat perhitungan dilakukan
def main():
plot(close, "Close", color=color.blue, linewidth=2)def menandai awal fungsi. Fungsi adalah rangkaian tindakan yang diberi nama. Di sini namanya main.
PyneCore menjalankan isi main() pada candle dalam data. Ini adalah titik masuk program kita. Setelah dua tanda kurung terdapat titik dua; baris di bawahnya yang menjorok ke dalam termasuk isi fungsi.
Indentasi menentukan baris yang berada dalam satu kelompok. Kita menggunakan empat spasi untuk satu tingkat indentasi. Tekan Tab di awal baris: dengan pengaturan bawaan PyneIDE, ini menambahkan indentasi empat spasi sekaligus. Shift + Tab menggeser baris satu tingkat ke kiri. Visual Studio Code biasanya juga menambahkan indentasi otomatis ketika kamu menekan Enter setelah baris yang berakhir dengan titik dua.
Apa yang kita minta dari plot?
plot(...) adalah pemanggilan fungsi. Nilai dan pengaturan yang diperlukan diberikan dalam tanda kurung:
close: nilai yang ditampilkan;"Close": nama gambar;color=color.blue: gunakan warna biru;linewidth=2: tetapkan ketebalan garis menjadi 2.
Untuk dua nilai pertama, urutannya menentukan peran masing-masing. color= dan linewidth= menyebutkan pengaturan yang diberikan berdasarkan namanya. Pengaturan ini disebut parameter.
Titik dalam color.blue berarti kita menggunakan warna blue milik color. Dalam kode, titik merupakan bagian dari akses nama; jangan menggantinya dengan koma.
Menggambar dua garis
Kita menggunakan nama close untuk harga penutupan. Harga pembukaan tersedia melalui nama open.
Buat salinan file bernama two_lines.py dalam folder scripts. Dengan begitu, contoh dari bab kedua tetap tersimpan. Dalam salinan tersebut:
- Tambahkan
openpada alat yang diimpor. - Ganti nama indikator menjadi
"Open and Close". - Tambahkan pemanggilan
plotkedua ke isimain().
Program lengkapnya:
"""
@pyne edge
"""
from pynecore.lib import close, color, open, plot, script
@script.indicator("Open and Close", overlay=True)
def main():
plot(close, "Close", color=color.blue, linewidth=2)
plot(open, "Open", color=color.orange, linewidth=2)Sebelum menjalankannya, perkirakan tempat kedua garis akan bertemu dengan candle. Simpan file lalu klik Run Pyne code. Gunakan data contoh yang sama seperti sebelumnya.

Apa yang perlu diperhatikan?
Garis biru menghubungkan harga penutupan candle, sedangkan garis oranye menghubungkan harga pembukaannya. Gambar pada grafik juga memiliki nama: Close dan Open. Nama tersebut membantu mengenalinya meskipun warnanya diubah nanti.
Kedua pemanggilan plot diawali indentasi empat spasi yang sama karena keduanya termasuk dalam fungsi main() yang sama.
Jika open ditandai sebagai kesalahan, pastikan kamu sudah menambahkannya pada baris impor. Untuk menggunakan alat baru, namanya juga harus dibuat tersedia.
Komentar dalam kode
Baris yang diawali satu tanda # adalah komentar:
# Show the opening price of each candle.
plot(open, "Open", color=color.orange, linewidth=2)Komentar tidak menjalankan tindakan. Kamu bisa menggunakannya untuk menjelaskan tujuan suatu langkah kepada diri sendiri atau orang yang membaca kode nanti. Komentar dalam contoh ditulis dalam bahasa Inggris; buku ini memberikan penjelasan dalam bahasa Indonesia.
Komentar juga bisa ditulis di akhir sebuah pernyataan:
plot(open, "Open", color=color.orange, linewidth=2) # Show the opening price.Pemanggilan plot(...) tetap berjalan. Teks mulai dari # setelahnya hingga akhir baris adalah komentar, sehingga runtime mengabaikannya. Kita menyisakan dua spasi antara kode dan # agar lebih mudah dibaca.
Coba sendiri
Buat garis ketiga yang menunjukkan harga tertinggi candle. Nama datanya adalah high. Beri gambar nama "High" dan warna color.green.
Pikirkan dua bagian program yang perlu ditambah. Sebelum menjalankannya, perkirakan: mungkinkah nilai High berada di bawah harga pembukaan atau penutupan candle yang sama?
Solusi latihan
Nama high juga harus dimasukkan pada baris impor:
from pynecore.lib import close, color, high, open, plot, scriptTambahkan baris berikut pada isi main() dengan indentasi yang sama seperti kedua pemanggilan lainnya:
plot(high, "High", color=color.green, linewidth=2)Harga tertinggi candle setidaknya sama dengan harga pembukaan dan penutupannya. Karena itu, titik High pada sebuah candle tidak bisa berada di bawah keduanya. Saat membaca segmen garis yang menghubungkan titik, selalu perhatikan posisinya pada candle yang sesuai.
Memeriksa perubahanmu
Baca program dengan tiga garis tersebut. Bisakah kamu menemukan data yang diimpor, nama indikator, dan pemanggilan fungsi gambar? Periksa apakah setiap data baru sudah disebut pada baris impor dan apakah ketiga pemanggilan memiliki indentasi yang sama.
Sebelum menghitung harga sendiri, kita akan melihat bagaimana PyneIDE membantu penggunaan fungsi.