Ana içeriğe geç

cTrader CLI komutlarını çalıştırma

Bu makalede, cTrader CLI komutlarının yapısı, kimlik doğrulamanın nasıl çalıştığı ve hesap verileri, fiyatlar ile geçmiş verilerin nasıl görüntüleneceği açıklanmaktadır.

Komut yapısı

Tüm cTrader CLI komutları aynı yapıyı kullanır:

ctrader-cli <command> [arguments] [options]
  • Seçenekler bir önekle başlar. -- uzun biçimi, - kısa biçimi belirtir (--symbol ile -s eşdeğerdir).
  • Seçeneklerin değerleri boşluk veya eşittir işaretiyle ayrılır. Hem --symbol EURUSD hem de --symbol=EURUSD geçerlidir.
  • Argümanlar, önek içermeyen konumsal değerlerdir. Bir .algo dosyasının yolu argümandır.
  • Boşluk içeren değerler, örneğin '/opt/my cbots/trend cbot.algo' gibi tek veya çift tırnak içine alınmalıdır. Bir komutun içinde aynı tırnak türünü tutarlı biçimde kullanın.

Kimlik doğrulama

cTrader CLI iki kimlik doğrulama yöntemi kullanır. Her ikisi de kurulum sırasında hazırladığınız kimlik bilgileri dosyasını kullanır.

Yöntem Gerekli seçenekler Tipik komutlar
Toplu işlem --ctid ve --pwd-file periods, accounts, symbols, metadata, run, backtest
Etkileşimli --ctid, --password veya --pwd-file ve -q account, orders, price, candles, positions, exposure, alerts, gösterge komutları

Not

Toplu işlem komutları --password seçeneğini kabul etmez. Etkileşimli komutlar --password veya --pwd-file seçeneklerinden birini kabul eder.

Her iki yöntemde de bulunan accounts, symbols, metadata, run ve backtest komutları, belirttiğiniz seçeneklere göre toplu işlem veya etkileşimli yönteme yönlendirilir:

  • Toplu işlem yolu – kimlik bilgilerini --pwd-file (veya --broker) üzerinden okur ve kullanıcı etkileşimi olmadan çalışır.
  • Etkileşimli yol – --password ile -q (veya komuta özgü herhangi bir seçenek) kullanır ve etkileşimli çağrı olarak çalışır.

Zaman aralığı tanımlayıcıları

Birçok komut --period değeri kabul eder. Kabul edilen tüm tanımlayıcıları listelemek için ctrader-cli periods komutunu çalıştırın. Tanımlayıcılar dakika, saat, gün, hafta ve ayların yanı sıra tick, Renko, aralık çubukları ve Heikin Ashi çeşitlerini kapsar. Tanımlayıcılar yorumlanırken büyük ve küçük harf ayrımı yapılmaz.

Hacim birimleri

--volume, baz para birimi cinsinden birimleri veya lotları kabul eder. Hacmin nasıl yorumlanacağını belirlemek için --volume-type=units (varsayılan) veya --volume-type=lots seçeneğini kullanın. Çoğu Forex sembolü için 100.000 birim, bir standart lota eşittir.

--volume-type=lots ile Baz varlık birimleri
--volume=1 100.000
--volume=0.1 10.000
--volume=0.01 1.000

Uyarı

Metaller, endeksler ve kripto varlıklarda lot büyüklüğü sembole göre değişir. Bu nedenle aynı --volume=1 değeri, amaçladığınızdan daha büyük bir pozisyon açabilir. İşlem yapmadan önce sembolün lotSize değerini kontrol edin:

ctrader-cli symbol --ctid=letstrade --pwd-file=C:/test/password.pwd --account=1234567 -q --symbol=XAUUSD

Örneğin, XAUUSD için lotSize: 100 ise --volume=1 --volume-type=lots komutu 100 birimlik pozisyon açar.

Tarih ve saatler

cTrader CLI'deki tüm tarih ve saatler UTC cinsindendir. CLI, bilgisayarınızın yerel saat dilimini veya brokerın sunucu saatini hiçbir zaman kullanmaz.

UTC, komut çıktılarında ve tarih girişlerinde aşağıdaki şekilde kullanılır:

  • Çıktı: JSON çıktısındaki tüm zaman damgaları, örneğin 2026-10-08T14:05:00.000Z gibi Z içeren ISO 8601 biçiminde ve UTC cinsindendir.
  • Etkileşimli komutlar (candles, deals, orders-history ve -q ile çalıştırılan backtest): --from ve --to yalnızca yyyy-MM-dd, dd/MM/yyyy, dd-MM-yyyy veya yyyy/MM/dd biçimindeki tarihleri kabul eder. Tarih, UTC'ye göre bir takvim gününü ifade eder.
    • deals ve orders-history için --to, günü 23:59:59 UTC'ye kadar tamamen kapsar.
    • candles için --to, o günün başlangıcını (00:00 UTC) belirtir. Bir günü tamamen dahil etmek için --to değerini sonraki güne ayarlayın.
    • --from / --to belirtilmediğinde etkileşimli backtest, son 7 günü kapsar.
  • Toplu işlem komutları (backtest ve diğerleri): Tarihler dd/MM/yyyy biçimindedir. İsteğe bağlı olarak dd/MM/yyyy HH:mm biçiminde 24 saatlik saat bilgisi eklenebilir; örneğin 31/12/2026 18:00. Bunlar da UTC cinsindendir.

Tek istisna, çalışan bir cBot'tur (run, backtest). cBot'un kullandığı saat, cTrader Algo'da olduğu gibi cBot içindeki TimeZone ayarına bağlıdır.

Hesap ve piyasa verilerini okuma

ctrader-cli periods komutu hesap veya kimlik bilgisi gerektirmez ve ilk test için iyi bir seçenektir.

ctrader-cli periods

cTrader ID'nize bağlı işlem hesaplarını listeleyin:

ctrader-cli accounts --ctid=letstrade --pwd-file=C:/test/password.pwd

Hesap numarasını öğrendikten sonra bu hesapta kullanılabilen sembolleri listeleyin:

ctrader-cli symbols --ctid=letstrade --pwd-file=C:/test/password.pwd --account=1234567

Bir sembolün güncel fiyatını okuyun ve betik aracılığıyla geçmiş mum verilerini alın:

ctrader-cli price --ctid=letstrade --password=secret --account=1234567 -q --symbol=EURUSD
ctrader-cli candles --ctid=letstrade --password=secret --account=1234567 -q --symbol=EURUSD --period=h1 --count=200 > eurUSD_h1.json

Geçmiş veri sınırları

deals ve orders-history komutları için aşağıdaki geçmiş veri sınırları geçerlidir:

  • CLI, --from / --to ile belirlenen aralığın tamamını süre sınırlaması olmadan yükler.
  • Ancak tek bir çağrı, bu aralıktaki yalnızca en son 200 işlemi (deals) veya en son 500 emri (orders-history) döndürür.
  • --from / --to belirtilmezse her iki komut da yalnızca son 30 günün verilerini döndürür.
  • --count, döndürülecek kayıt sayısını belirler:

    • deals için varsayılan 50, en fazla 200.
    • orders-history için varsayılan 100, en fazla 500.

--from veya --to belirtildiğinde --count yok sayılır ve çağrı izin verilen en yüksek sayıda kaydı döndürür.

Aralık, tek bir çağrının döndürebileceğinden fazla kayıt içeriyorsa daha kısa aralıklara bölün ve her biri için komutu çalıştırın.

Sonucun kesilip kesilmediğini anlamak için çıktıyı kontrol edin:

  • orders-history: Çıktıda available ve returned alanları bulunur. available değeri returned değerinden büyükse aralıkta başka emirler de vardır.
  • deals: count tam olarak 200 ise aralıkta başka işlemler de olabilir.

Etkileşimli kabukta toplu işlemler

Etkileşimli kabukta bazı komutların sonuna all ve yes ekleyerek toplu işlem yapabilir ve onay istemini atlayabilirsiniz.

Komut Sonunda all ve yes bulunan biçim
order cancel order cancel all yes
position close position close all yes
stop stop all yes
alert delete alert delete all yes

Komutları etkileşimli çalıştırma

Etkileşimli kabuğu açmak için herhangi bir komut belirtmeden ctrader-cli çalıştırın. İstendiğinde cTID ve parolanızla oturum açın. Ardından giriş bilgilerinizi tekrar belirtmeden komutları art arda girin. Birden fazla komutu arka arkaya çalıştırmak istediğinizde bu yöntem kullanışlıdır.

Tek bir komutu çalıştırıp hemen çıkmak için -q ekleyin. Bu, komut tamamlanır tamamlanmaz işlemin sona ermesi gereken betiklerde kullanışlıdır.

İki seçenek, CLI'nin desteklediği özellikleri keşfetmenize yardımcı olur.

Seçenek Amaç
--help Genel seçenekleri ve başlatma biçimlerini listeler.
--commands Kimlik doğrulama gerektirmeden tüm etkileşimli komutları ve bunların konumsal biçimlerini listeler.

cTrader ID kimliğinize bağlı, farklı brokerlardaki işlem hesaplarının numaraları aynıysa belirsizliği gidermek için --broker=<broker-name> ekleyin.

Yaygın hatalar

Belirti Olası neden Sonraki adım
ctrader-cli: command not found CLI, PATH değişkeninizde bulunmuyor. Terminali yeniden açın veya kurulum kılavuzundaki elle yükleme adımlarını izleyin.
Parameter password is not allowed Toplu işlem komutunda --password belirttiniz. Bunun yerine --pwd-file kullanın. Kuralın tamamı kurulum kılavuzunda açıklanmıştır.
Account cannot be found Hesap numarası, farklı brokerlarda da kullanıldığı için belirsiz. --broker=<broker-name> ekleyin.
Unknown symbol name Sembol adı yanlış veya desteklenmiyor. symbols komutunu çalıştırın ve çıktıda gösterilen adı aynen kullanın.
Unknown period Zaman aralığı tanımlayıcısı yanlış. Kabul edilen tüm tanımlayıcıları listelemek için periods komutunu çalıştırın.

Not

Tüm seçenekleri, varsayılan değerleri ve eksiksiz açıklamaları görmek için CLI başvuru belgelerine bakın.