Dari pesan chat menjadi order
Bagaimana sinyal yang diposting di chat WhatsApp atau channel Telegram menjadi order beli atau jual di akun cTrader Anda, beserta setiap pemeriksaan yang harus dilewati.
Waktu di atas adalah perkiraan umum, bukan jaminan. Otomatisasi dikirim dalam keadaan nonaktif dan mode dry-run: tidak ada trade yang dijalankan sampai Anda mengaktifkannya.
Perjalanan satu pesan
Sebuah pesan hanya menjadi order jika lolos di setiap langkah. Yang gagal akan berhenti di situ dan dicatat beserta alasannya.
Lima tahap, berurutan
Sumber dan bridge
Satu program kecil, yaitu bridge, berjalan di VPS atau server rumah dan mendengarkan WhatsApp serta Telegram sekaligus. Bridge hanya meneruskan pesan dari satu chat yang Anda pilih untuk tiap sumber.
Lihat detail
- WhatsApp: memakai Baileys, yang masuk seperti WhatsApp Web (Anda memindai kode QR).
- Telegram: masuk sebagai akun pengguna Anda sendiri lewat MTProto (GramJS), sehingga dapat membaca channel dan grup yang Anda ikuti. Bridge mungkin meminta kata sandi 2FA Anda.
- Polling: bridge menanyakan instruksinya ke Worker setiap 3 detik: akun mana yang harus tersambung dan chat mana yang menjadi target.
- Penyaringan: pesan dari chat lain dibuang, dan pesan kosong (tanpa teks) dilewati.
Penerimaan
Bridge memposting tiap pesan ke Worker. Worker memeriksa ulang chat-nya, memasukkan pesan ke antrean, dan memprosesnya satu per satu.
Lihat detail
- Endpoint:
POST /api/bridge/message, dilindungi bearer token. - Cek chat target: id chat harus cocok dengan target yang dipilih untuk sumber tersebut (WhatsApp atau Telegram). Jika tidak, jawabannya "ignored".
- Antrean: pesan yang diterima masuk ke Cloudflare Queue. Consumer memproses satu pesan sekali waktu dan tidak punya batas waktu singkat, sehingga ekstraksi plus sesi broker bisa selesai.
- Duplikat: setiap id pesan disimpan sekali. Jika id yang sama datang lagi, pesan itu diabaikan.
- Endpoint:
Ekstraksi dengan Clairic
Model AI di Cloudflare Workers AI (Clairic) membaca teks lalu mengisi sejumlah field tetap, masing-masing dengan skor kepercayaan. Ia membaca; ia tidak mengarang.
Lihat detail
- Field: aksi (BUY/SELL; LONG dan SHORT dihitung), jenis order (limit, stop, now, market), simbol, harga entry (dan batas atas jika berupa rentang), harga stop loss, stop loss dalam pips, harga take profit, take profit dalam pips, ukuran lot, dan jendela waktu entry (awal dan akhir).
- Normalisasi: LONG menjadi BUY dan SHORT menjadi SELL. Waktu seperti
20.10menjadi20:10. - Order pending: order limit atau stop tanpa harga entry tetap berstatus pending, sehingga ditolak di tahap berikutnya. Order itu tidak pernah diubah menjadi order market.
- Setiap angka harus ada di pesan. Harga yang dikembalikan model tetapi tidak tertulis di teks akan dibuang, dan sinyalnya ditolak sebagai salah baca.
- Pips butuh satuan. Nilai pip hanya diterima jika ditulis di samping "pips", "points", atau "pts". Nilai pip yang salah masuk ke field harga akan dibuang.
- Apakah ini sinyal? Hanya jika sisi (buy/sell) dan simbol ditemukan (lihat simbol default di bawah). Kepercayaan adalah skor yang lebih rendah antara sisi dan simbol.
Keputusan: pemeriksaan keamanan
Kode biasa, bukan AI, yang memutuskan apakah trade hasil ekstraksi boleh dijalankan. Di sinilah sebagian besar pesan bermasalah dihentikan. Daftar lengkapnya ada di tabel aturan keamanan.
Lihat detail
- Simbol: jika pesan tidak menyebutnya, simbol default Anda dipakai. Alias dipetakan (GOLD menjadi XAUUSD), dicek terhadap daftar yang diizinkan, lalu akhiran broker Anda ditambahkan.
- Pips ke harga: jarak pip diubah memakai ukuran pip per simbol (emas 0,1, jadi 25 pips adalah 2,5). Ini membutuhkan harga entry.
- Jendela waktu: jendela seperti 20.10-23.20 dibaca dalam zona waktu akun Anda dan menjadi waktu kedaluwarsa order pending. Jendela yang sudah lewat ditolak.
- Kewajaran: ambang kepercayaan, stop loss wajib ada, SL dan TP di sisi yang benar dari entry, TP di sisi profit dari SL, pesan yang lebih lama dari 5 menit diabaikan, batas posisi terbuka.
- Ukuran posisi: lot tetap, atau diambil dari sinyal, dibatasi sampai lot maksimum Anda dan dibulatkan ke 0,01. Strategi take profit: TP pertama, TP terakhir, atau dipecah menjadi satu posisi per TP dengan lot dibagi rata.
- Dry run: jika aktif, trade yang valid dibuat dan dicatat tetapi tidak pernah dikirim.
Eksekusi di cTrader (IC Markets)
Worker membuka WebSocket JSON ke Open API cTrader, mencari simbol, mengubah lot menjadi volume, lalu mengirim order ke akun IC Markets Anda.
Lihat detail
- Koneksi:
wss://demo.ctraderapi.com:5036ataulive.ctraderapi.com:5036, diotorisasi dengan token OAuth yang diperbarui otomatis. - Order market: cTrader tidak menerima SL/TP absolut pada order market. Karena itu Worker mengambil kuotasi spot (ask untuk BUY, bid untuk SELL), mengirim SL/TP relatif, menunggu terisi, lalu mengubah posisi ke harga SL/TP yang tepat.
- Order limit dan stop: dikirim dengan SL/TP absolut. Jika ada jendela entry, order berlaku hingga tanggal tertentu (GTD) dan kedaluwarsa di akhir jendela.
- Catatan: setiap permintaan dan respons order disimpan di D1 dan ditampilkan di dasbor, termasuk yang gagal. Status akhirnya executed, partial, atau failed.
- Koneksi:
Satu pesan, diikuti sampai akhir
Contoh ilustrasi. Harga dan hasil hanya untuk penjelasan. Simbol default diatur ke XAUUSD, zona waktu Asia/Jakarta (WIB), ukuran pip emas 0,1.
1. Pesannya
Tidak ada simbol yang disebut, jadi simbol default dipakai.
2. Field hasil ekstraksi
- aksi
- SELL
- jenis order
- LIMIT
- simbol
- tidak ada, default XAUUSD
- entry
- 4156.2
- SL (pips)
- 25
- TP (pips)
- [600]
- jendela
- 20:10 sampai 23:20
3. Keputusan
- SL
- 4156.2 + 25 x 0.1 = 4158.7
- TP
- 4156.2 - 600 x 0.1 = 4096.2
- kedaluwarsa
- 23:20 WIB hari ini
- pemeriksaan
- SL di atas entry, TP di bawah: benar untuk sell
4. Ordernya
- jenis
- SELL_LIMIT XAUUSD
- harga
- 4156.2
- SL / TP
- 4158.7 / 4096.2
- masa berlaku
- berlaku hingga 23:20 WIB
- lot
- sesuai pengaturan Anda
Pesan yang dihentikan
Order limit membutuhkan harga entry. Tanpa itu ia tetap berstatus pending tanpa entry lalu ditolak, tidak pernah diubah menjadi order market.
Pips adalah jarak dari harga entry, sedangkan pesan ini tidak punya entry. Tanpa entry, pips tidak bisa diubah menjadi harga.
Harga salah baca: 2381 tidak tertulis di mana pun dalam pesan, sehingga dibuang dan sinyal ditolak, bukan ditebak.
Aturan keamanan
Aturan ini dijalankan pada setiap sinyal sebelum order apa pun dikirim. Sebagian besar adalah pengaturan yang Anda kendalikan di dasbor.
| Aturan | Yang dicegah | Dapat diatur? |
|---|---|---|
| Saklar otomatisasi | Trade apa pun saat Anda belum mengaktifkan otomatisasi. Nonaktif secara default. | Ya, on/off |
| Dry run | Order sungguhan saat Anda masih menguji. Order hanya dibuat dan dicatat. | Ya (default aktif) |
| Hanya chat target | Trading berdasarkan pesan dari chat yang tidak Anda pilih. | Ya, Anda memilih chat-nya |
| Id duplikat diabaikan | Pesan yang sama ditradingkan dua kali. | Tidak |
| Pesan basi (lebih dari 5 menit) | Pesan lama yang diputar ulang setelah koneksi tersambung kembali. | Tidak |
| Angka harus ada di teks | Salah baca AI dan harga karangan. | Tidak |
| Pips butuh satuan | Harga yang keliru dianggap jarak pip. | Tidak |
| Pending butuh entry | Order limit atau stop diam-diam berubah menjadi order market. | Tidak |
| Ambang kepercayaan | Trading berdasarkan ekstraksi yang tidak pasti (default 0,6). | Ya |
| Stop loss wajib | Trade tanpa batas kerugian (default aktif). | Ya |
| Cek sisi | SL atau TP di sisi yang salah dari entry, atau TP di bawah SL pada posisi buy. | Tidak |
| Jendela entry | Masuk setelah jendela waktu yang disebutkan telah lewat. Order pending kedaluwarsa di akhir jendela. | Hanya zona waktu |
| Daftar simbol yang diizinkan | Trading instrumen yang tidak Anda setujui. | Ya |
| Maks. posisi terbuka | Eksposur menumpuk melebihi yang Anda inginkan. | Ya (0 = tanpa batas) |
| Lot maksimum | Posisi terlalu besar akibat lot yang tertulis di pesan. | Ya (default 1 lot) |
Expected value: apakah sebuah strategi layak diikuti?
Expected value (EV) adalah rata-rata keuntungan sebuah strategi per trade setelah dikurangi biaya. Win rate yang tinggi tidak berarti apa-apa dengan sendirinya: menang 80% dari trade tetap merugi jika rata-rata kerugian jauh lebih besar daripada rata-rata kemenangan. Yang penting adalah win rate bersama rasio risk-to-reward. Coba angka Anda sendiri di bawah.
Glosarium
- Stop loss (SL)
- Harga tempat trade ditutup otomatis untuk membatasi kerugian Anda.
- Take profit (TP)
- Harga tempat trade ditutup otomatis untuk mengunci keuntungan.
- Lot
- Ukuran trade. 0,01 lot adalah langkah terkecil di sini; nilai satu lot bergantung pada instrumennya.
- Pip
- Satuan harga yang kecil. Ukurannya bergantung pada instrumen: 0,0001 untuk sebagian besar pair, 0,01 untuk pair JPY, 0,1 untuk emas dalam pengaturan ini.
- R multiple
- Untung atau rugi yang diukur dalam satuan risiko awal Anda. Risiko 25 pips dan untung 50: itu +2R.
- Spread
- Selisih antara harga beli (ask) dan harga jual (bid). Ini adalah biaya di setiap trade; buy terisi di ask, sell terisi di bid.
- Order market
- Terisi sekarang di harga saat ini.
- Order limit
- Menunggu harga yang lebih baik: buy di bawah harga pasar atau sell di atasnya.
- Order stop
- Menunggu harga menembus suatu level: buy di atas harga pasar atau sell di bawahnya.
- Kedaluwarsa GTD
- Good till date: order pending dibatalkan otomatis pada waktu yang ditentukan, di sini akhir jendela entry.