Langkau tajuk talian

Operasi cBot

Artikel ini menerangkan kitaran hayat cBot dalam cTrader CLI. Ketahui cara menjalankan cBot daripada terminal, menyenaraikan dan menghentikan instans yang sedang berjalan, mengehoskan cBot pada VPS atau pelayan awan menggunakan Docker serta menjalankan ujian belakang dengan data sejarah.

Prasyarat

  • cTrader CLI telah dipasang.
  • cTrader ID, fail kelayakan dan nombor akaun anda telah disediakan.
  • cBot telah dieksport sebagai fail .algo yang dikompil untuk .NET 8.

Membaca metadata cBot

Sebelum menjalankan cBot, gunakan metadata untuk menyenaraikan parameter yang diterimanya. Output menunjukkan nama dan jenis setiap sifat cBot.

ctrader-cli metadata <path-to-algo-file>

Gunakan nama parameter daripada output metadata apabila memberikan parameter melalui baris perintah atau fail .cbotset.

Menjalankan cBot

Mulakan cBot menggunakan run. Laluan fail .algo ialah argumen pertama. --account, --symbol dan --period adalah wajib.

ctrader-cli run <path-to-algo-file> --account=<account-id> --symbol=<symbol> --period=<period>

Terdapat tiga cara untuk memberikan parameter.

Sumber Bila digunakan Contoh
Nilai lalai Apabila parameter lalai cBot sudah sesuai untuk tujuan anda. ctrader-cli run /opt/mycbot.algo --account=1234567 --symbol=EURUSD --period=h1
Melalui baris perintah Apabila anda mahu mengubah satu atau dua nilai tanpa membuat fail. ctrader-cli run /opt/mycbot.algo --account=1234567 --symbol=EURUSD --period=h1 --Periods=15 --ConsolidationPeriods=3
Fail .cbotset Apabila anda mahu menggunakan semula satu set nilai dalam beberapa pelaksanaan; eksport fail tersebut daripada aplikasi desktop cTrader. ctrader-cli run /opt/mycbot.algo /opt/mysettings.cbotset --account=1234567 --symbol=EURUSD --period=h1

Dua pilihan tambahan penting untuk pelaksanaan tanpa pengawasan.

Pilihan Fungsi
--full-access Menjalankan cBot tanpa sekatan hak akses apabila ia perlu membaca atau menulis fail setempat atau mengakses rangkaian.
--exit-on-stop Menamatkan proses cTrader CLI apabila cBot berhenti dengan sendirinya; berguna untuk skrip dan kontena.

Menjalankan cBot pada VPS atau pelayan awan

Alat yang hanya menggunakan terminal boleh berjalan dengan baik pada instans Linux yang kecil. Ini membolehkan cBot berjalan secara berterusan pada kos yang lebih rendah berbanding komputer meja. Menggunakan imej Docker cTrader CLI ialah cara yang paling mudah dipindahkan antara persekitaran.

Muat turun imej terkini:

docker pull ghcr.io/spotware/ctrader-console:latest

Jalankan cBot dalam kontena. Pilihan --mount menghubungkan folder pada hos ke lokasi dalam kontena, manakala pilihan -e memberikan konfigurasi melalui pemboleh ubah persekitaran:

docker run -d -it \
  --name ctrader.console.run.mybot \
  --mount type=bind,src=/cAlgo/Robots,dst=/mnt/Robots \
  -e CTID='mycid' \
  -e PWD-FILE='/mnt/Robots/ctrader-cli.pwd' \
  -e ACCOUNT='9102302' \
  -e SYMBOL='EURUSD' \
  -e PERIOD='H1' \
  ghcr.io/spotware/ctrader-console:latest run "/mnt/Robots/My bot.algo" --environment-variables
Komponen Maksud
--name ctrader.console.run.mybot Menetapkan nama kontena.
--mount type=bind,src=...,dst=... Menghubungkan folder hos ke laluan /mnt/Robots dalam kontena.
-e CTID='mycid' Menetapkan cTrader ID sebagai pemboleh ubah persekitaran.
-e PWD-FILE='/mnt/Robots/ctrader-cli.pwd' Menetapkan laluan fail kata laluan dalam kontena.
-e ACCOUNT='9102302' Menetapkan nombor akaun dagangan.
-e SYMBOL='EURUSD' Menetapkan simbol.
-e PERIOD='H1' Menetapkan tempoh masa.
"<path>" Laluan fail cBot dalam kontena.
--environment-variables Mengarahkan cTrader CLI membaca konfigurasi daripada pemboleh ubah persekitaran.

Nota

Semua fungsi cTrader CLI tersedia dalam imej Docker, termasuk ujian belakang dan pengoptimuman.

Memulakan daripada aplikasi desktop cTrader

Anda tidak perlu mahir menggunakan baris perintah untuk memanfaatkan cTrader CLI.

  1. Dalam aplikasi desktop cTrader, sediakan cBot dengan parameter pilihan anda.
  2. Klik kanan pada instans cBot setempat dan pilih Mulakan dalam proses luaran. cTrader CLI akan dilancarkan secara automatik dan menjalankan instans tersebut secara bebas.
  3. Tutup aplikasi desktop untuk menjimatkan sumber CPU dan RAM. cBot akan terus berjalan dalam proses cTrader CLI.

Menyenaraikan dan menghentikan cBot

Senaraikan instans cBot yang sedang berjalan pada akaun:

ctrader-cli cbots --ctid=letstrade --password=secret --account=1234567 -q

Hentikan instans yang sedang berjalan menggunakan pengecamnya yang ditunjukkan dalam output run:

ctrader-cli stop --ctid=letstrade --password=secret --account=1234567 -q --instance=<instance-id>

Untuk menghentikan semua cBot yang sedang berjalan serentak, buka shell interaktif dan jalankan stop all yes. Proses cTrader CLI tamat apabila instans terakhir berhenti.

Menjalankan ujian belakang cBot

Jalankan cBot menggunakan data sejarah dengan backtest. Laluan fail .algo ialah argumen pertama dan boleh diikuti oleh fail .cbotset pilihan. Ujian ini juga memerlukan simbol, tempoh masa dan julat tarikh:

ctrader-cli backtest <path-to-algo-file> [<path-to-cbotset-file>] --account=<account-id> --symbol=<symbol> --period=<period> --start=<start-date> --end=<end-date> --data-mode=<data-mode>

Pilihan konteks ujian

Pilihan konteks ujian disenaraikan selepas entri backtest dalam dokumentasi rujukan CLI. Hanya --start, --end dan --data-mode diperlukan. Pilihan tambahan merangkumi baki permulaan, komisen, spread, sumber data dan fail laporan.

Mod data

Nilai Penerangan
open Menggunakan harga pembukaan tempoh masa asas; pantas tetapi kurang tepat untuk pergerakan harga dalam setiap bar.
m1 Menggunakan data satu minit yang dimuat turun daripada pelayan.
m1-csv Menggunakan data satu minit yang disediakan melalui --data-file.
tick-csv Menggunakan data tick yang disediakan melalui --data-file.
ticks Menggunakan data tick yang dimuat turun daripada pelayan; mod ini paling tepat tetapi paling perlahan. Wajib bagi tempoh masa tick, bar julat dan Renko.

Petua

Tetapkan --data-dir kepada folder yang dikekalkan antara pelaksanaan supaya cTrader CLI menggunakan semula data harga yang telah dimuat turun, bukannya memuat turunnya lagi untuk setiap ujian belakang. Dalam Docker, hubungkan folder ini ke direktori hos supaya data dikekalkan selepas kontena berhenti.

Contoh praktikal

Jalankan ujian belakang pada cBot contoh menggunakan satu fail parameter .cbotset:

ctrader-cli backtest "C:/test/sample martingale.algo" C:/test/special-parameters.cbotset \
  --ctid=letstrade --pwd-file=C:/test/password.pwd --account=1234567 --symbol=EURUSD --period=h1 \
  --start="01/01/2025 12:34" --end="31/01/2025 20:56" \
  --balance=10000 --commission=30 --commission-type=UsdPerMillionUsdVolume --spread=1 --data-mode=m1

Output ujian belakang

cTrader CLI memaparkan kemajuan secara berterusan dalam terminal, kemudian menunjukkan ringkasan apabila selesai. Hasil lengkap terletak dalam folder Backtesting bersebelahan fail .algo, dengan subfolder berasingan bagi setiap pelaksanaan:

…/data/{cBotName}/{BacktestingInstanceID}/Backtesting
Fail Kandungan
Peristiwa (JSON) Setiap peristiwa dagangan penting, seperti pembukaan dan penutupan posisi.
Log (TXT) Permulaan dan penghentian cBot, tindakan dagangan serta hasilnya.
Parameter (.cbotset) Parameter dan nilai yang digunakan dalam ujian belakang.
Laporan (HTML) Laporan visual yang menunjukkan statistik dagangan dan sejarah pesanan, yang boleh dibuka dalam pelayar web.

--report dan --report-json turut menyimpan laporan ke laluan yang ditentukan, selain folder yang dinyatakan di atas.

Tingkah laku Algo API dalam cTrader CLI

Sesetengah ahli cTrader Algo API berfungsi secara berbeza apabila cBot dijalankan melalui cTrader CLI kerana tiada antara muka grafik.

Ahli API Tingkah laku dalam cTrader CLI
MessageBox Mengembalikan MessageBoxResult.None.
Window Semua kaedah diabaikan dan tiada tetingkap dipaparkan.
Notifications.PlaySound Ignored.
Chart.TakeChartshot Mengembalikan null.