Jurnal trading sebaiknya membantu memeriksa mengapa keputusan diambil dan bagaimana hasil dicatat. Dua puluh lima kolom berikut merupakan rancangan editorial yang bisa disesuaikan, bukan standar profesional wajib. Pisahkan data sumber, rencana yang tersedia saat keputusan dibuat dan ringkasan yang dihitung kemudian; tabel panjang dengan angka salah tidak lebih informatif daripada tabel pendek yang dapat direkonsiliasi.

Rancang empat blok dan tentukan unit satu rekaman

Rancangan ini membagi 25 kolom menjadi sepuluh data transaksi, lima metrik risiko, lima analisis setup dan lima peninjauan eksekusi. Sebagian berasal dari ekspor platform, sebagian memerlukan catatan sebelum entry, dan sebagian dihitung. Jumlah kolom tidak menetapkan mutu analisis. Jangan menambahkan penilaian yang tidak dapat didefinisikan atau dipakai secara konsisten.

Tentukan apakah satu baris mewakili ide trading, posisi, order atau fill. Untuk rancangan ringkasan ini, satu baris mewakili satu ide trading. Bila entry atau exit dilakukan sebagian, simpan setiap operasi aktual dalam lembar terpisah yang terhubung ke ID ide; jangan memaksa beberapa fill menjadi satu harga tanpa aturan pembobotan dan biaya jelas. Perubahan rencana juga memerlukan waktu serta alasan, bukan penggantian diam-diam pada catatan awal.

Tambahkan kamus rekening, mata uang laporan, status demo/live, zona waktu dan versi strategi di luar 25 kolom inti bila diperlukan. WIB = UTC+7, WITA = UTC+8 dan WIT = UTC+9; label bahasa Indonesia tidak menentukan lokasi rekening atau residensi. Simpan zona sumber sebelum mengonversi waktu. Jangan menjumlahkan USD dan PLN sebagai satu nominal tanpa kebijakan konversi terdokumentasi.

Kolom 1–10: data transaksi yang dapat direkonsiliasi

Blok pertama: rencana dipisahkan dari pelaksanaan aktual
KolomIsi dan pemeriksaan
1. Waktu entryTanggal YYYY-MM-DD, jam HH:MM serta zona waktu. Pisahkan waktu pengiriman order dari waktu fill bila keduanya tersedia.
2. InstrumenSimbol penyedia dan produk sebenarnya. XAU/USD merujuk emas terhadap dolar; jangan mengelompokkannya begitu saja sebagai pasangan dua mata uang atau menganggap semua simbol memiliki kontrak identik.
3. ArahLong atau short, dengan aturan bagaimana pembalikan dan penambahan posisi dicatat.
4. Harga entryFill aktual, bukan hanya harga layar ketika tombol ditekan. Simpan harga yang diminta terpisah untuk menilai selisih eksekusi.
5. Stop Loss awalLevel rencana dan jenis order. Catat perubahan serta fill exit secara terpisah; level stop biasa tidak menjamin harga eksekusi.
6. Target atau aturan exitTake Profit jika metode memakainya. Untuk exit berdasarkan waktu atau kondisi, tulis aturan tersebut tanpa mengarang target tetap.
7. KuantitasLot beserta unit per lot dari spesifikasi kontrak. Label mini atau mikro saja tidak cukup untuk menentukan nilai uang.
8. Harga exitFill aktual, atau harga rata-rata yang dapat ditelusuri ke fill parsial. Jangan mencampur angka order dengan deal.
9. Waktu exitTanggal, jam dan zona waktu yang konsisten dengan entry; posisi belum ditutup belum menjadi hasil terealisasi lengkap.
10. Hasil uang bersihNyatakan mata uang dan semua biaya yang berlaku. Gunakan fill aktual; spread yang sudah terkandung dalam selisih fill jangan dikurangkan lagi sebagai biaya tambahan yang sama.

Komisi, pembiayaan, swap dan biaya lain bergantung pada produk, rekening serta ketentuan penyedia. Tidak ada tarif ECN universal dalam EUR, dan rekening tanpa swap belum tentu hanya memiliki spread serta komisi. Cocokkan hasil bersih dengan laporan rekening dan bedakan biaya saat entry, saat exit serta biaya yang dibukukan belakangan.

Jurnal ini bukan formulir pajak. Penggunaan PLN atau contoh rekening asing tidak menetapkan kewajiban pajak Indonesia, NPWP atau otorisasi suatu broker. Peraturan dan pencatatan pajak mengikuti fakta rekening, produk, yurisdiksi serta status orang yang bersangkutan.

Kolom 11–15: ukur risiko tanpa mengganti definisi setelah hasil

11. Risiko awal sebagai persentase modal. Tetapkan apakah penyebutnya saldo atau ekuitas pada saat keputusan. Simpan risiko uang awal dan dasar perhitungannya. Jika risiko 50 dari modal 5.000, rasionya 0,01; format persen menampilkannya 1%. Jangan mengalikan 100 lalu sekali lagi memakai format persen. Besaran risiko sesuai metode dan eksposur; batas 1%, 2% atau 5% tidak menjadi standar universal hanya karena dicantumkan dalam jurnal.

12. Hasil dalam R. Definisikan R sebagai hasil bersih dibagi risiko uang awal yang positif dan valid. Laba 150 dengan risiko 50 = +3R; rugi 50 dengan risiko awal sama = −1R. Memindahkan SL kemudian tidak menulis ulang penyebut awal. Risiko nol, tidak diketahui atau tidak bermakna bukan pembagi yang boleh dipaksakan. Hasil uang dan R menjawab pertanyaan berbeda, sehingga keduanya perlu disimpan.

Dalam contoh hipotetis EUR, laba 800 pada risiko 400 adalah 2R; laba 1.200 pada risiko 1.000 adalah 1,2R. R lebih besar pada satu transaksi tidak membuktikan strategi lebih berkualitas. Biaya, ukuran sampel, distribusi hasil dan batas eksposur masih relevan, sedangkan rugi aktual dapat melampaui rencana karena eksekusi.

13. Pergerakan selama transaksi. Definisikan ukuran yang benar-benar direkam: ekskursi merugikan, ekskursi menguntungkan atau penurunan dari puncak. Posisi yang pernah +4R lalu ditutup +1R mengembalikan 3R dari puncak ke exit. Tanpa seluruh lintasan, angka itu belum tentu drawdown maksimum antara puncak dan lembah sepanjang transaksi.

14. Porsi eksposur portofolio. Tentukan penyebut serta ukuran yang sebanding. Kuantitas lot, nilai nosional dan risiko stop bukan hal yang sama. Jangan menyamakan lot emas dengan lot mata uang atau menganggap margin yang diblokir sama dengan seluruh kemungkinan rugi.

15. Hubungan dengan posisi lain. Catat variabel, frekuensi dan jendela korelasi, misalnya return harian pada periode yang ditetapkan. Korelasi +0,90 tidak membuat dua posisi identik atau otomatis tepat menggandakan risiko. Ukuran, arah, volatilitas dan perubahan hubungan tetap perlu diperiksa.

Kolom 16–20: jelaskan setup tanpa mengarang kepastian statistik

16. Tipe setup: gunakan kategori yang didefinisikan sebelum melihat hasil dan simpan versinya. Delapan sampai sepuluh label bukan kewajiban, dan seratus transaksi tidak otomatis menghasilkan estimasi andal untuk tiap kelompok kecil. Laporkan jumlah observasi dan ketidakpastian masing-masing.

17. Timeframe: tulis kerangka sinyal dan kerangka pengelolaan bila berbeda. Enam puluh transaksi pada suatu timeframe tidak menjamin perbandingan stabil; perubahan pasar, biaya dan seleksi transaksi dapat menjelaskan perbedaan hasil.

18. Konfluensi: sebutkan kondisi yang benar-benar digunakan. Pola harga, moving average dan RSI dapat bersumber dari harga yang sama; tiga label bukan bukti tiga informasi independen. Tidak ada kenaikan win rate 15–20% yang berlaku otomatis karena jumlah konfirmasi.

19. Konteks berita: catat peristiwa yang diketahui saat entry, sumber jadwal, zona waktu dan aturan jendela berita. Jangan menambahkan pengetahuan rilis belakangan seolah sudah tersedia sebelumnya.

20. Penilaian diri: bila memakai skala 1–10, definisikan jangkar penilaiannya dan kapan diisi. Itu catatan subjektif, bukan diagnosis klinis. Skor di bawah 4 tidak membuktikan ekspektansi negatif universal atau menjadi alasan otomatis menghapus transaksi dari penelitian.

Kolom 21–25: nilai pelaksanaan dan simpan bukti

21. Kepatuhan rencana: definisikan skala 1–10 sebelum penilaian. Bedakan perubahan yang memang diizinkan metode dari pelanggaran. Laba pada pelanggaran tetap pelanggaran; rugi pada pelaksanaan benar belum tentu kesalahan. Tidak ada koefisien universal kehilangan 0,3R untuk setiap penurunan satu poin atau klaim tentang 90% trader yang dibuktikan di sini.

22. Jumlah kesalahan: gunakan jenis dan aturan hitung jelas, termasuk cara menangani beberapa kejadian pada satu transaksi. Definisi kesalahan tidak dengan sendirinya membuktikan hubungan statistik terhadap hasil.

23. Pelajaran singkat: tulis hal yang dapat diperiksa, misalnya “entry sebelum candle H1 selesai” atau “exit +0,8R dibanding target rencana +2R”. Hindari mengganti catatan proses dengan komentar “harus lebih disiplin” yang tidak menentukan tindakan.

24. Tautan screenshot: simpan konteks entry dan exit beserta waktu atau anotasi yang diperlukan. Periksa akses tautan awan, data rekening serta informasi pribadi sebelum berbagi; screenshot saja belum tentu merekonstruksi seluruh order.

25. Tag bulanan: gunakan label pencarian konsisten, misalnya Jan-NFP-tilt atau Feb-EURUSD-range, tanpa memperlakukan nama tag sebagai bukti sebab. Setelah data benar, lanjutkan ke metrik statistik trading. Agregat harus dapat ditelusuri ke setiap operasi yang dihitung tepat sekali.

Pilih alat berdasarkan proses dan rekonsiliasi impor

Spreadsheet dapat memisahkan data sumber, kalkulasi dan tampilan. Periksa lisensi perangkat lunak, format tanggal/desimal, formula, ekspor serta cadangan yang diperlukan. Excel tidak selalu gratis; tidak ada ambang seribu transaksi yang otomatis membuatnya tidak layak atau waktu pembuatan lima sampai tujuh jam yang dijamin. Kompleksitas, pemeliharaan dan keterampilan pengguna lebih relevan daripada angka batas tunggal.

TraderSync menawarkan paket berlangganan dengan fitur dan batas berbeda. Halaman Edgewonk yang diperiksa saat penyusunan menawarkan langganan tahunan maupun bulanan, bukan akses abadi dari satu pembayaran. Bandingkan siklus penagihan, mata uang, pajak, pembaruan dan dukungan impor pada ketentuan saat membeli. Kami tidak menjalankan checkout atau menguji integrasi rekening nyata; daftar broker yang didukung tidak menggantikan uji rekonsiliasi file Anda sendiri.

Mulailah dari sampel kecil dengan saldo, fill parsial, komisi, pembiayaan dan format waktu yang diketahui. Myfxbook atau alat laporan lain dapat melengkapi catatan sesuai dukungannya, tetapi ekspor statistik belum tentu memuat alasan entry serta perubahan rencana. Tidak ada urutan tahun pertama sampai ketiga yang wajib diikuti semua trader.

Periksa kunci lengkap sebelum membuang baris

Empat rekaman rekaan berurutan adalah A/17 +10 PLN, A/18 −4 PLN, B/17 +7 PLN dan impor ulang identik A/17 +10 PLN. Dalam model ini, 17 adalah ID lokal dalam cakupan rekening, sehingga A/17 berbeda dari B/17. Setelah memastikan bahwa dua A/17 benar-benar rekaman sama, aturan audit kami menyimpan rekaman pertama tiap kunci lengkap (rekening, ID): tiga rekaman, 10 − 4 + 7 = +13 PLN.

Geser mendatar untuk melihat seluruh tabel

ID lokal memerlukan cakupan rekeningEmpat rekaman rekaan berurutan: A/17 +10 PLN, A/18 −4 PLN, B/17 +7 PLN dan impor ulang identik A/17 +10 PLN. Audit model menyimpan rekaman pertama per kunci lengkap rekening dan ID lokal setelah memastikan duplikat identik. Tiga rekaman sah berjumlah +13 PLN. Aturan salah berdasarkan ID saja menyimpan A/17 dan A/18, menghasilkan +6 PLN serta kehilangan B/17. Urutan ini bukan jaminan Power Query atau format ID broker nyata.PERIKSA KUNCI DAN REKAMANID lokal rekaan • hasil dalam PLNRekeningID lokalPLNAuditA17+10simpanA18−4simpanB17+7simpanA17+10ulangKunci (rekening, ID): 3 rekaman10 − 4 + 7 = 13 PLNID saja + baris awal: 2 rekaman10 − 4 = 6 PLN • B/17 hilang
Aturan keliru berdasarkan ID saja dengan baris pertama menyisakan dua rekaman, +6 PLN, dan kehilangan B/17 yang sah. Semua nominal dalam PLN; bukan format ID universal broker.

Aturan urutan di atas adalah keputusan model kami. Dokumentasi Microsoft menyatakan Power Query tidak menjamin bahwa penghapusan duplikat mempertahankan instans pertama. Pilih kolom kunci sesuai cakupannya, periksa perlakuan huruf besar/kecil, dan uji hasil aktual. Jika dua baris mempunyai kunci lengkap sama tetapi hasil berbeda, tandai konflik untuk diselidiki; jangan menyamakan konflik dengan impor ulang identik lalu diam-diam membuang salah satunya.

Kunci sama dengan nilai berbeda adalah konflikPerpanjangan hipotetis model A/B, bukan impor rekening nyata. Bandingkan identitas penuh dan isi sebelum membuang baris.PERHITUNGAN HIPOTETISA/17 +10 diimpor ulang identikSatu operasiB/17 +7Operasi berbedaA/17 dengan hasil berbedaKonflik
Kunci sama dengan nilai berbeda adalah konflik. Perpanjangan hipotetis model A/B, bukan impor rekening nyata. Bandingkan identitas penuh dan isi sebelum membuang baris.

Cakupan kunci dan identitas rekaman diperiksa sebelum agregasi; kebijakan urutan harus dinyatakan.

Pada layar kecil, gulir diagram mendatar atau perbesar. Nilai dan kesimpulan juga tersedia dalam teks di bawah.

A/17 +10 diimpor ulang identik
Satu operasi – Model mempertahankan rekaman pertama setelah duplikat dikonfirmasi.
B/17 +7
Operasi berbeda – Nomor lokal sama tetapi rekening berbeda; hasil tetap dihitung.
A/17 dengan hasil berbeda
Konflik – Selidiki versi atau koreksi; jangan otomatis membuang salah satu dan mengklaim total final.

Makro VBA: agregasi terkontrol, bukan seluruh sistem jurnal

Contoh berikut mengharapkan lembar bernama Trades dan Dashboard. Kolom J berisi hasil uang bersih yang sudah memakai satu mata uang sebanding; kolom L berisi R yang telah dihitung dengan risiko awal valid. Data dimulai pada baris 2. Makro mencari baris terakhir dari kedua kolom, menolak error, Null, pasangan tidak lengkap dan nilai bukan angka, lalu mengagregasi baris valid. Nol adalah hasil valid dan tetap masuk jumlah transaksi.

Sub CalculateMetrics()
    Dim ws As Worksheet, lastRow As Long, i As Long
    Dim totalTrades As Long, countWins As Long
    Dim sumWins As Double, sumLosses As Double, sumR As Double
    Dim result As Double, rValue As Double
    Dim resultCell As Variant, rCell As Variant
    Dim resultText As String, rText As String
    Set ws = ThisWorkbook.Sheets("Trades")
    lastRow = Application.Max(ws.Cells(ws.Rows.Count, "J").End(xlUp).Row, _
        ws.Cells(ws.Rows.Count, "L").End(xlUp).Row)
    For i = 2 To lastRow
        resultCell = ws.Cells(i, 10).Value2
        rCell = ws.Cells(i, 12).Value2
        If IsError(resultCell) Then
            Err.Raise vbObjectError + 3, , "Nilai error di J pada baris " & i
        End If
        If IsError(rCell) Then
            Err.Raise vbObjectError + 4, , "Nilai error di L pada baris " & i
        End If
        If IsNull(resultCell) Then
            Err.Raise vbObjectError + 5, , "Hasil Null di J pada baris " & i
        End If
        If IsNull(rCell) Then
            Err.Raise vbObjectError + 6, , "R Null di L pada baris " & i
        End If
        resultText = Trim$(CStr(resultCell))
        rText = Trim$(CStr(rCell))
        If Len(resultText) > 0 Or Len(rText) > 0 Then
            If Len(resultText) = 0 Or Len(rText) = 0 Then
                Err.Raise vbObjectError + 1, , "Hasil atau R tidak ada pada baris " & i
            End If
            If Not IsNumeric(resultCell) Then
                Err.Raise vbObjectError + 2, , "Hasil bukan angka di J pada baris " & i
            End If
            If Not IsNumeric(rCell) Then
                Err.Raise vbObjectError + 2, , "R bukan angka di L pada baris " & i
            End If
            result = CDbl(resultCell)
            rValue = CDbl(rCell)
            totalTrades = totalTrades + 1
            sumR = sumR + rValue
            If result > 0 Then
                sumWins = sumWins + result
                countWins = countWins + 1
            ElseIf result < 0 Then
                sumLosses = sumLosses + Abs(result)
            End If
        End If
    Next i
    With ThisWorkbook.Sheets("Dashboard")
        .Range("B2").Value = totalTrades
        If totalTrades > 0 Then
            .Range("B3").Value = countWins / totalTrades
            .Range("B4").Value = sumR / totalTrades
        Else
            .Range("B3:B4").Value = CVErr(xlErrNA)
        End If
        If sumLosses > 0 Then
            .Range("B5").Value = sumWins / sumLosses
        Else
            .Range("B5").Value = CVErr(xlErrNA)
        End If
        .Range("B6").Value = sumWins - sumLosses
    End With
    MsgBox "Metrik dihitung untuk " & totalTrades & " transaksi.", vbInformation
End Sub

Dashboard B2 adalah jumlah transaksi; B3 proporsi transaksi dengan hasil uang positif; B4 rata-rata aritmetis R; B5 jumlah hasil positif dibagi nilai absolut jumlah hasil negatif; B6 hasil uang bersih. Format B3 sebagai persen. Bila tidak ada transaksi, B3–B4 menjadi #N/A; bila tidak ada kerugian, B5 menjadi #N/A, bukan bukti strategi memiliki profit factor tak terbatas yang andal.

Makro tidak menghitung risiko awal, memeriksa konsistensi mata uang, mendeteksi ID ganda, memperbarui seluruh pivot atau mengirim email. Ia juga tidak memastikan bahwa nilai R cocok dengan hasil uang: rekonsiliasi input tetap diperlukan. Jalankan hanya kode yang dipahami pada salinan workbook yang sesuai kebijakan keamanan; perilaku parsing angka bergantung pada lingkungan. Pengujian model perhitungan terpisah di artikel ini bukan eksekusi Excel/VBA atau sertifikasi kompatibilitas setiap versi.

Studi rekaan: bedakan deskripsi historis dan bukti perbaikan

Mark berikut adalah tokoh hipotetis, bukan kesaksian atau hasil akun yang kami audit. Pada tahun rekaan pertama, modal awal EUR 12.000, 171 transaksi dan rugi EUR 4.200 berarti penurunan 35% dari modal awal. Tinjauan belakangan menemukan 48 transaksi pada suatu segmen dengan rugi EUR 2.700, sekitar 64,29% dari rugi total. Ini deskripsi sampel, bukan bukti menghapus segmen tersebut akan meningkatkan hasil masa depan.

Jika masing-masing dari 48 transaksi memiliki risiko awal EUR 100, total risiko awal EUR 4.800 dan rata-rata hasil −2.700/4.800 = −0,5625R. Jika risikonya berbeda-beda, rasio total hasil terhadap total risiko adalah rata-rata berbobot risiko, bukan otomatis rata-rata aritmetis R tiap transaksi. Klaim win rate segmen 31% atau penjelasan sebab memerlukan data yang benar-benar mendukungnya.

Dalam tahun rekaan kedua, ringkasan yang ditetapkan adalah 142 transaksi, laba EUR 8.100, rata-rata +0,42R dan profit factor 1,94. Pembanding tahun pertama ditetapkan 47% win rate, −0,18R dan profit factor 0,71; tahun kedua 64%. Angka win rate bulat ini mungkin berasal dari 80/171 ≈ 46,78% dan 91/142 ≈ 64,08%. Angka ringkasan tidak merekonstruksi seluruh lintasan transaksi atau membuktikan hubungan sebab akibat antara perubahan jurnal dan profit. Pasar, metode, biaya dan risiko dapat berbeda.

Pada model uang terpisah dalam PLN, satu transaksi menghasilkan +100 dengan risiko 100, transaksi lain −1.000 dengan risiko 1.000. Hasilnya +1R dan −1R, sehingga rata-rata R = 0; uang bersih tetap −900 PLN. Rasio total hasil terhadap total risiko = −900/1.100 ≈ −0,8182. Rasio terakhir bukan return rekening karena penyebutnya penjumlahan risiko transaksi, bukan modal rekening.

Mencari banyak kategori setelah melihat hasil meningkatkan peluang memilih pola kebetulan. Simpan definisi asli dan temuan eksploratif; tetapkan aturan baru sebelum memeriksanya pada data berikutnya yang belum dipakai memilih aturan. Dua tahun rekaan di sini tidak membuktikan efek perbaikan, dan 25 kolom bukan syarat untuk memulai pencatatan yang benar.

Mulai dari definisi, rekonsiliasi dan jadwal yang terpelihara

  1. Tentukan unit baris, cakupan ID, waktu dan mata uang; simpan data mentah sebelum koreksi.
  2. Definisikan risiko awal, hasil bersih dan R, serta perlakuan fill parsial dan biaya. Periksa formula pada hasil positif, negatif, nol dan data tidak lengkap.
  3. Rekonsiliasi 20 baris sumber sebagai pemeriksaan kecil, termasuk impor ulang serta konflik. Dua puluh baris bukan ambang yang membuktikan pola statistik stabil.
  4. Hitung rata-rata R hanya dari input valid; hitung profit factor dari total positif dibagi absolut total negatif, dan tandai tidak terdefinisi bila penyebut nol. Win rate menggunakan seluruh transaksi valid, termasuk hasil nol pada penyebut.
  5. Pilih jadwal peninjauan yang sanggup dipelihara, simpan perubahan definisi dan pisahkan temuan eksploratif dari validasi berikutnya. Tidak ada durasi rapat atau otomasi yang wajib.