Stratejiyi grafiğime başarıyla ekledim, ancak herhangi bir emir oluşturmuyor
Grafiğe bir strateji ekledikten sonra Strateji Test Cihazının "İşlem Listesi" ve "Genel Bakış" sekmeleri "Veri yok" gösteriyorsa, muhtemelen herhangi bir emri simüle etmiyordur, bu da sekmeleri dolduracak veri olmamasına neden olur. Kodunuz emir üretmiyorsa, bunun nedeni aşağıdaki nedenlerden herhangi biri olabilir:
Kod bir strateji olarak sınıflandırılmamıştır veya emir oluşturan komutlar kullanmamaktadır
Strateji Test Edici ile geriye dönük test, yalnızca bildirim ifadeleri için `strategy()` işlevini kullanan Pine Script ™ stratejileriyle çalışır. 'indicator()' veya `library()` ile bildirilen komut dosyaları Strateji Test Cihazı modülü ile etkileşime giremez.
Strateji olarak bildirilen komut dosyaları, komut dosyası yazarının koda dahil etmiş olabileceği diğer alım/satım sinyallerine bakılmaksızın, emirleri simüle etmek ve verileri Strateji Test Cihazında görüntülemek için `strategy.*` emir yerleştirme komutlarını (örneğin, `strategy.order()` veya `strategy.entry()`) kullanmalıdır.
Stratejinin bir pozisyon açmak için yeterli sermayesi yok
Bir stratejinin bir pozisyona girmesi için, belirtilen sayıda sözleşme / lot / hisse / birim satın almak için yeterli paraya sahip olması gerekir. Maliyeti karşılamak için yeterli sermayesi yoksa bir ticarete girmeyecektir. Örneğin, bir stratejinin başlangıç sermayesi 1000 USD ve emir boyutu bir sözleşme ise, varlığın fiyatı 1000 USD'nin altına düşmedikçe pozisyona giremez çünkü tüm ticareti karşılayamaz. Stratejiler her zaman belirtilen sayıda sözleşme / hisse / lot / birim satın almaya çalışacak ve daha azını yapmayacaktır.
Vadeli işlemlerin geriye dönük testine ilişkin önemli not:
Vadeli işlem sembolleri genellikle Sözleşme Birimi olarak bilinen bir birime sahiptir (TradingView'de Nokta Değeri olarak temsil edilir ve Pine'da `syminfo.pointvalue' değişkeni aracılığıyla erişilebilir). Diğer semboller gibi, grafikteki ham fiyat da işlem gören emtianın bir biriminin fiyatını temsil eder. Bununla birlikte, vadeli işlem sözleşmelerinin her birinin temsil ettiği belirli bir miktar vardır, bu nedenle tek birimlik bir satın alma genellikle mümkün değildir. Bir sözleşme için gereken sermayeyi hesaplamak için grafik fiyatını Puan Değeri ile çarpın.
Puan Değerinin vadeli işlem sembolleri üzerinde çalışan stratejiler üzerindeki etkilerini göstermek için, en iyi likiditeye sahip ES vadeli işlem sözleşmesini temsil eden ve Puan Değeri 50 olan CME_MINI:ES1! sembolüne bakalım:
Aşağıdaki örnekte, grafiğe eklediğimiz strateji tam olarak 4000 USD'den bir pozisyona girdi ve 4500 USD'den çıktı. Giriş fiyatında sözleşmeye harcanan gerçek para miktarı 4000 USD çarpı 50 Puan Değeri, yani 200.000 USD idi. Strateji pozisyonunu çıkış fiyatından kapattığında, alınan tutar 4500 USD * 50 = 225.000 USD idi ve bu da 25.000 USD'lik bir karla sonuçlandı ve bunu Strateji Test Cihazındaki "İşlem Listesi" sekmesinin "Kar" sütununu görüntüleyerek onaylayabiliriz:
Bu durumda strateji 200.000 USD'nin altında bir İlk Sermaye değerine sahip olsaydı, grafikte gösterilen fiyatın 50 katı olan giriş fiyatını karşılayamayacağı için sipariş veremezdi. Pozisyonu simüle etmek için, stratejinin bunu karşılamasına izin vermek için Başlangıç Sermayesini artırmalı veya Marjin Uzun / Kısa değerlerini düşürmeliyiz.
Strateji bir çalışma zamanı hatası döndürür
Bir strateji hesaplamaları sırasında bir sorunla karşılaşırsa, bir çalışma zamanı hatası oluşturur ve stratejiyi içeren grafik bölmesinin sol üst köşesinde kırmızı bir ünlem işareti görüntüler. Çalışma zamanı hataları, komut dosyasının hesaplamalara devam etmesini durdurur, bu nedenle emirleri simüle edemez. Pine'daki farklı çalışma zamanı hatalarının çeşitli nedenleri ve olası düzeltmeleri vardır. Ünlem işaretine tıklamak, komut dosyasının hata mesajını gösterecektir.
Stratejinin emirlerini vermek için gereken koşullar yerine getirilmedi
Bir stratejinin herhangi bir veri göstermemesinin olası bir nedeni, test aralığı boyunca hiçbir koşulun bir emri tetiklememesidir. Bu durumda, doldurulacak emir olmadığı için grafikte hiçbir giriş olmayacaktır. Kullanıcılar, bir stratejinin kaynak kodundaki koşulları değiştirerek bunu düzeltebilir. Bir stratejinin emir koşullarının geçmişini grafik üzerinde çizerek görsel olarak incelemek genellikle yararlı olabilir.
Aşağıdaki komut dosyası, uzun ve kısa koşulların oluşması üzerine çubukların üzerine mavi ve kırmızı çarpılar çizmek için Pine'ın `plotshape()` işlevini kullanır ve grafikteki geçmişlerini incelememize olanak tanır:
//@version=5strategy('My Strategy', overlay = true) longCondition = ta.crossover(ta.sma(close, 14), ta.sma(close, 28))if longCondition strategy.entry('Long', strategy.long)plotshape(longCondition, color=color.new(color.blue, 0)) shortCondition = ta.crossunder(ta.sma(close, 14), ta.sma(close, 28))if shortCondition strategy.entry('Short', strategy.short)plotshape(shortCondition, color=color.new(color.red, 0))
JavaBu konu hakkında daha fazla bilgi için Kullanıcı Kılavuzumuzun Hata Ayıklama sayfasına bakın.
Stratejinin Özellikleri yanlış
Her strateji, emir açma kurallarını yöneten çeşitli parametrelere sahiptir. Yazarlar bu parametreleri bir stratejinin kaynak kodundan ayarlayabilir ve kullanıcılar stratejinin ayarlarının "Özellikler" sekmesindeki girdilerle bunları geçersiz kılabilir.
NOT: Bir stratejinin kaynak kodunda, kullanıcıların emirleri için sözleşme/hisse/lot/birim sayısını ayarlayabileceği birkaç yer vardır:
- 'strategy()` fonksiyonundaki parametreler, kullanıcıların varsayılan işlem miktarını ve türünü ayarlamasına olanak tanır ve bu da "Özellikler" sekmesindeki varsayılan değerleri belirler. Kullanıcılar "Emir boyutu" girdilerini ayarlayarak bu değerleri geçersiz kılabilir.
- 'strategy.entry()` gibi giriş emirleri üreten emir yerleştirme komutları, işlem miktarını emir bazında ayarlayabilir. Bu durumda, "Özellikler" sekmesindeki girdide yapılan değişiklikler stratejinin emir boyutunu etkilemeyecektir.
Kullanıcılar, stratejilerinin emirlerinin boyutlarını doğru şekilde belirttiklerinden emin olmalıdır. Yukarıdaki "Stratejinin bir pozisyon açmak için yeterli sermayesi yok" bölümüne eklemek için şunu not etmelisiniz:
- Bir stratejinin "Emir türü" "Sözleşmeler" olarak ayarlanmışsa (kaynak kodda default_qty_type olarak `strategy.fixed` ile eşdeğerdir), emir boyutu çoğu sembol için 1'den büyük olmalıdır. Bazı kripto paralarda kesirli büyüklükler kullanılabilir. Örneğin, 0,1'lik bir emir boyutu BTCUSD için geçerlidir ancak AAPL veya EURUSD için geçerli değildir.
- Emir büyüklüğü pozitif olmalıdır; negatif sayılar çalışma zamanı hatalarına neden olur ve 0 değerinin hiçbir etkisi olmaz.Toplam pozisyon büyüklüğü (sözleşme sayısı) 1e12'yi geçemez. Pozisyon boyutu bu sayıyı aşarsa stratejiler yeni emirleri simüle etmeyecektir.