CODESCRIPT

Risk

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

commission(değer, tip?)

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

değer
number
Komisyon değeri. tip="percent"'te yüzde; cash tiplerinde nakit tutar.
tip
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 ver.

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)

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)

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

leverage
number
Kaldıraç çarpanı.
marginPct
number
Her işlemde marj olarak ayrılacak equity yüzdesi.
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.

leverage(kaldıraç, shortKaldıraç?)

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

x
number
Kaldıraç çarpanı (örn. 3).
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.

maxDrawdown(pct)

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)

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.

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(tutar)

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.

tutar
number
Her işlemde kullanılacak sabit nakit tutarı.
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)

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)

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.