CODESCRIPT

Risk

9 işlev. Her kaydın ne aldığı, ne verdiği ve çalışan örneği.

commission(value, type?)

İşlem komisyonu. tip="percent" (varsayılan): değer = yüzde × işlem büyüklüğü. tip="cash_per_order": değer = sabit nakit / emir. tip="cash_per_contract": değer = nakit / kontrat. Backtest maliyetini belirler (varsayılan %0.04).

Değer döndürmez; geri-test komisyon oranını bu değere ayarlar.

value
number
Komisyon değeri. tip="percent"'te yüzde; cash tiplerinde nakit tutar.
type
string
İsteğe bağlı. "percent" (varsayılan, yüzde × işlem büyüklüğü) / "cash_per_order" (sabit nakit/emir) / "cash_per_contract" (nakit/kontrat).

Not

Giriş ve çıkışın her birine ayrı uygulanır. "percent" değeri işlem büyüklüğünün yüzdesidir; "cash_per_order" her emir için sabit nakit tutar; "cash_per_contract" kontrat (adet) başına nakit tutardır. Sonuçları gerçekçi kılmak için gerçek işlem maliyetine yakın bir değer verin.

CODESCRIPT
commission(0.1)
enterLong(crossover(close, sma(close, 20)))
exit(crossunder(close, sma(close, 20)))
plot(close)

İşlem başına %0.1 komisyonla basit bir kesişim stratejisini geri-test eder.

CODESCRIPT
commission(2, "cash_per_order")
enterLong(crossover(close, sma(close, 20)))
exit(crossunder(close, sma(close, 20)))
plot(close)

Her emir için sabit 2 birim nakit komisyon (yüzde değil) — düz-ücretli aracı kurum modeli.

initialCapital(amount)

Başlangıç sermayesi (equity ölçeği; varsayılan 10000). Argümansız çağrılırsa AYARLAMAZ, o anki başlangıç sermayesini OKUR.

Değer döndürmez; geri-testin başlangıç sermayesini (equity ölçeği) ayarlar.

amount
number
Başlangıç sermayesi (hesap büyüklüğü).

Not

Getiri eğrisinin ve mutlak kâr/zarar rakamlarının ölçeğini belirler; yüzde sonuçları etkilemez.

CODESCRIPT
initialCapital(100000)
enterLong(crossover(close, sma(close, 20)))
exit(crossunder(close, sma(close, 20)))
plot(close)

100000 başlangıç sermayesiyle stratejiyi geri-test eder.

isolated(leverage, marginPct)

İZOLATED marj: her işlem equity'nin marginPct% kadarını marj kullanır; likidasyon YALNIZ o marjı götürür (hesabın tamamını değil). Riski sınırlar — avantaj YARATMAZ. Takma-adlar (adlandırılmış argüman): leverage yerine kaldirac veya lev, marginPct yerine marjYuzde de kullanılabilir (örn. isolated(kaldirac=10, marjYuzde=20) — leverage/marginPct ile birebir aynı sonucu verir). marginPct verilmezse varsayılan 100 (marjın tamamı equity'nin tamamı kadar; referans dil v6 margin_long/short ile aynı).

Değer döndürmez; izole marj modunu ayarlar.

leverage
number
Kaldıraç çarpanı. Adlandırılmış argüman olarak kaldirac veya lev de kullanılabilir (birebir aynı).
marginPct
number
Her işlemde marj olarak ayrılacak equity yüzdesi. Adlandırılmış argüman olarak marjYuzde de kullanılabilir (birebir aynı). Verilmezse varsayılan 100.

Not

Likidasyon yalnızca ayrılan marjı götürür, hesabın tamamını değil. Riski sınırlar; tek başına avantaj yaratmaz.

CODESCRIPT
isolated(10, 20)

Pozisyonu ayrık marj kipine alır ve kaldıracı belirler; zarar yalnız bu pozisyona ayrılan parayla sınırlı kalır, hesabın kalanına dokunmaz.

leverage(leverage, short_leverage?)

Futures kaldıracı (CROSS): getiri ve maliyet × x. DİKKAT: likidasyon tek kötü mumda hesabın TAMAMINI sıfırlar. Meşru yol: doğrulanmış avantaja ÖLÇÜLÜ kaldıraç. İkinci argüman verilirse short pozisyonlar için AYRI kaldıraç kullanılır (verilmezse iki yön de aynı).

Değer döndürmez; futures (cross) kaldıracını ayarlar.

leverage
number
Kaldıraç çarpanı (örn. 3) (`x` yazımı da kabul edilir).
short_leverage
İsteğe bağlı. Short pozisyonlar için ayrı kaldıraç; verilmezse ilk değer kullanılır.

Not

Getiri ve maliyet x ile çarpılır. Uyarı: likidasyon tek kötü barda hesabın tamamını sıfırlayabilir; doğrulanmış bir kurguda ölçülü kullanın.

CODESCRIPT
leverage(3)

İşlemlerin kaldıracını üçe ayarlar; aynı parayla üç katı büyüklükte pozisyon açılır, kâr da zarar da üç katına çıkar.

maxDrawdown(pct)

Drawdown %pct'i aşınca yeni pozisyon açılmaz (koruma).

Değer döndürmez; düşüş bu yüzdeyi aşınca yeni pozisyon açılmasını durdurur.

pct
number
İzin verilen en büyük düşüş yüzdesi.

Not

Bir koruma kapısıdır: tepe equity'den düşüş sınırı aşıldığında yeni giriş engellenir. Açık pozisyonu kapatmaz, yalnız yeni riski durdurur.

CODESCRIPT
maxDrawdown(20)
enterLong(crossover(close, sma(close, 20)))
exit(crossunder(close, sma(close, 20)))
plot(close)

Düşüş %20'yi aşınca yeni giriş almayan bir koruma ile stratejiyi geri-test eder.

pyramiding(n)

Aynı yönde en çok n giriş (şu an kayıtlı; çok-giriş sistemi sonraki faz).

Değer döndürmez; çok-giriş parçasılı giriş tavanını ayarlar.

n
number
Aynı yönde izin verilen en fazla açık giriş parçası sayısı.

Not

Varsayılan 1 (tek giriş parçası). n>1 iken aynı yönde tekrar giriş sinyali yeni giriş parçası ekler; tavan dolunca eklenmez.

Ne zaman kullanılır

Kademeli/ölçekli giriş (piramitleme) stratejileri için.

Sınırlar

Bu fazda kaldıraç (lev>1) ve ATR-stop ile çok-giriş parçası desteklenmez. Kısmi kapatılmış pozisyona giriş parçası eklenemez.

CODESCRIPT
pyramiding(3)
enterLong(rsi(close,14) < 40, id='L')
exit(rsi(close,14) > 60)

RSI zayıfken 3 giriş parçasına kadar kademeli alım; positionSize +1→+2→+3.

CODESCRIPT
pyramiding(2)
enterLong(crossover(close, sma(close,10)))
exit(crossunder(close, sma(close,10)))

Aynı trendde ikinci kesişimde ikinci giriş parçası eklenir (en fazla 2).

sizeByCash(cash)

Her işlemde sabit nakit tutarı kullan (adet = tutar / fiyat). Boyutlandırma %equity yerine nakit-bazlıya geçer. Adlandırılmış argüman olarak `cash` de kullanılabilir (tutar ile birebir aynı).

Değer döndürmez. Çağrıldığında boyutlandırma varsayılan %equity yerine nakit-bazlıya geçer; alınan adet = tutar / fiyat.

cash
number
Her işlemde kullanılacak sabit nakit tutarı. Adlandırılmış argüman olarak `cash` da kullanılabilir (birebir aynı).

Not

Hiç çağrılmazsa varsayılan %equity boyutlandırması korunur. defaultEntryQty sabit adet alır; sizeByCash ise sabit tutarı fiyata bölerek adedi belirler. Teminat yetersizse işlem açılmaz.

CODESCRIPT
sizeByCash(1000)
enterLong(crossover(close, sma(close, 20)))
exit(crossunder(close, sma(close, 20)))
plot(close)

Her işlemde 1000 birim nakit kullanır (adet = 1000 / fiyat).

sizeByEquity(pct)

Her işlemde equity'nin %pct'i kullanılır (P&L etkisi ölçeklenir).

Değer döndürmez; pozisyon büyüklüğünü equity'nin bu oranına bağlar.

pct
number
Her işlemde kullanılacak equity yüzdesi (0-100).

Not

Değer 0-100 arasına sıkıştırılır. Sabit lot yerine hesabın belirli bir yüzdesiyle işlem açmak için — kâr/zarar bu orana göre ölçeklenir.

CODESCRIPT
sizeByEquity(50)
enterLong(crossover(close, sma(close, 20)))
exit(crossunder(close, sma(close, 20)))
plot(close)

Her işlemde equity'nin %50'sini kullanacak şekilde stratejiyi geri-test eder.

slippage(pct)

Kayma (tek yön %). Komisyona eklenir (varsayılan 0).

Değer döndürmez; kaymayı bu değere ayarlar (işlem maliyetine eklenir).

pct
number
İşlem başına kayma (tek yön, yüzde).

Not

Emrin beklenen fiyattan biraz kötü dolmasını taklit eder. Az likit ya da hızlı piyasalarda sonuçları daha gerçekçi kılar.

CODESCRIPT
slippage(0.05)
enterLong(crossover(close, sma(close, 20)))
exit(crossunder(close, sma(close, 20)))
plot(close)

İşlem başına %0.05 kaymayla stratejiyi geri-test eder.