Risk
9 işlev. Her kaydın ne aldığı, ne verdiği ve çalışan örneği.
Değer döndürmez; geri-test komisyon oranını bu değere ayarlar.
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.
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.
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.
Değer döndürmez; geri-testin başlangıç sermayesini (equity ölçeği) ayarlar.
Getiri eğrisinin ve mutlak kâr/zarar rakamlarının ölçeğini belirler; yüzde sonuçları etkilemez.
initialCapital(100000) enterLong(crossover(close, sma(close, 20))) exit(crossunder(close, sma(close, 20))) plot(close)
100000 başlangıç sermayesiyle stratejiyi geri-test eder.
Değer döndürmez; izole marj modunu ayarlar.
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.
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.
Değer döndürmez; düşüş bu yüzdeyi aşınca yeni pozisyon açılmasını durdurur.
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.
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.
Değer döndürmez; çok-giriş parçasılı giriş tavanını ayarlar.
Varsayılan 1 (tek giriş parçası). n>1 iken aynı yönde tekrar giriş sinyali yeni giriş parçası ekler; tavan dolunca eklenmez.
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.
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).
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.
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.
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).
Değer döndürmez; pozisyon büyüklüğünü equity'nin bu oranına bağlar.
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.
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.
Değer döndürmez; kaymayı bu değere ayarlar (işlem maliyetine eklenir).
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.
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.