Strateji özellikleri

Her Pine stratejisinin, davranışını belirleyen bir dizi özelliği vardır: 

  1. Başlangıç Sermayesi
  2. Baz Para Birimi
  3. Emir Büyüklüğü
  4. Piramit
  5. Komisyon
  6. Limit Emirler için Fiyatı Doğrula
  7. Kayma
  8. Marjin
  9. Yeniden Hesapla
  10. Emirleri gerçekleştir

 Bunlar, strateji ayarlarında, Özellikler sekmesinde mevcuttur:


Stratejinin özelliklerinde belirtilen parametrelerin her biri, ilgili Pine komut dosyasındaki strategy() fonksiyon çağrısının argümanları düzenlenerek değiştirilebilir:

strategy(title, initial_capital, currency, default_qty_value, default_qty_type, pyramiding, commission_type, commission_value, backtest_fill_limits_assumption, slippage, process_orders_on_close, margin_long, margin_short, calc_on_order_fills, calc_on_every_tick, process_orders_on_close, use_bar_magnifier)

Şimdi Özellikler menüsündeki her bir giriş parametresine ve Pine dilindeki karşılık gelen parametresine bir göz atalım:

1 - Başlangıç Sermayesi (parametre: initial_capital), stratejinin işlem yapmak için başlangıçta mevcut olan fon miktarını Baz Para Birimi'nde tanımlanan para birimi cinsinden temsil eder. Varsayılan olarak bu değer 1.000.000'a eşittir. Belirli sembollerde işlemlerin gerçekleşmesi için bu değeri artırmanız gerekebilir.

2 - Baz Para Birimi (parametre: currency) hesaplamalar için kullanılan para birimini belirtir. Strateji Test Edicisi sekmesinde görünen sonuçlar (kâr, zarar, düşüş vb.) bu para birimi cinsinden ifade edilir. Mevcut seçenekler şunlardır:

Varsayılan, USD, EUR, AUD, GBP, NZD, CAD, CHF, HKD, JPY, NOK, SEK, SGD, TRY, ZAR. Varsayılan seçenek seçilirse, strateji bu sembol için varsayılan para birimini kullanır ve para birimi dönüştürme işlemi yapılmaz.

3 - Emir Büyüklüğü (parametreler: default_qty_value, default_qty_type). Bu, bir değer ve bir hesaplama modu gerektirir. Hesaplanan değerlerin, sembol için minimum alım satım yapılabilir miktarlar nedeniyle kısıtlamalara tabi olabileceğini unutmayın:

  • Miktar (argüman: strategy.fixed) - strateji belirtilen sayıda sözleşme/hisse/lot ile giriş yapacaktır.
  • Para birimi cinsinden tutar (argüman: strategy.cash) - strateji, baz para biriminde belirtilen tutarda giriş yapacaktır.
  • Öz sermaye yüzdesi (argüman: strategy.percent_of_equity) - pozisyon büyüklükleri, işlem açıldığında mevcut öz sermayenin yüzdesi olarak hesaplanacaktır.

4 - Piramit (parametre: pyramiding) aynı yönde izin verilen maksimum ardışık giriş sayısını belirtir. Piramit devre dışı bırakıldığında, giriş koşulları karşılansa bile strateji yalnızca bir uzun veya kısa pozisyon açabilir. Piramit yalnızca strategy.entry() fonksiyonu kullanılarak yapılan girişleri etkiler. strategy.order() kullanılarak oluşturulan emirler üzerinde hiçbir etkisi yoktur.

5 - Komisyon (parametreler: commission_typecommission_value). Her işlem için işlem ücreti olarak ödenen tutardır. Bir değer ve hesaplama modu sağlanmalıdır. Komisyonun hem girişlerde hem de çıkışlarda uygulandığını ve bir yüzde kullanıldığında, hesaplanan komisyonun işlemin değerine göre değişeceğini unutmayın:

  • İşlem gören değerin yüzdesi (argüman: strategy.commission.percent) - her emre belirtilen yüzdeye eşit bir komisyon uygular.
  • Sözleşme başına para birimi (argüman: strategy.commission.cash_per_contract) - her sözleşmeye bir komisyon uygular.
  • Emir başına para birimi (argüman: strategy.commission.cash_per_order) - her emre bir komisyon uygular.

6 - Limit Emirler için Fiyatı Doğrula (parametre: backtest_fill_limits_assumption) limit emirleri kullanarak bir pozisyona girme koşullarını daha katı hale getirir. Varsayılan olarak, bu değer 0'dır, yani limit emirleri, emirde belirtilen fiyata ulaşılır ulaşılmaz geçmiş verilerde doldurulur. Parametre sıfır değilse, limit emirleri, yalnızca piyasa fiyatı limit emrinin seviyesini belirtilen fiyat adımı sayısıyla aştıysa çubuk içinde bir pozisyona girebilir.

7 - Kayma (parametre: slippage) piyasa veya stop emirlerinin gerçekleşme fiyatına eklenecek fiyat adımı cinsinden değeri belirtir. Alış-satış farkını hesaba katmak için kullanılabilir.

8 - Uzun/Kısa pozisyonlar için Marjin (parametreler: margin_long, margin_short) her bir işlem için marjini, yani yatırımcının finanse etmesi gereken pozisyonun yüzdesini belirtir. Örneğin, Uzun pozisyonlar için Marjin %25 olarak ayarlanırsa, yatırımcının açık işlemin %25'ini karşılayacak kadar fona sahip olması gerekir ve potansiyel olarak her işlemde öz sermayesinin %400'üne kadar harcayabilir. Bir işlem açılmışsa ve yatırımcının fonlarının işlemin kendi payını karşılamaya yetmeyecek kadar para kaybetmeye başlarsa, bir Marjin Çağrısı meydana gelir ve orijinal pozisyonun bir kısmını zorla tasfiye eder. Bu özellik ve nasıl hesaplandığı hakkında daha fazla bilgiyi bu Yardım Merkezi makalesinde bulabilirsiniz.

9 - Yeniden Hesapla seçenekleri, stratejinin ne sıklıkta yeniden hesaplanması gerektiğini belirtir. Varsayılan olarak, strateji her çubuğun kapanışında yeniden hesaplanır, ancak aşağıdaki seçenekler kullanılarak ayrıca yeniden hesaplanabilir:

  • Emir Gerçekleştikten Sonra (parametre: calc_on_order_fills) - stratejinin bir emir gerçekleştikten hemen sonra ek bir çubuk içi emir hesaplaması yapmasına olanak tanır. Bu ek hesaplama hem geçmiş hem de gerçek zamanlı çubuklarda gerçekleşir.
  • Her Fiyat Adımında (parametre: calc_on_every_tick). Varsayılan olarak, stratejiler yalnızca gerçek zamanlı çubukların kapanışında hesaplama yapar. Bu parametre, stratejinin bir gösterge gibi gerçek zamanlı çubukların her güncellemesinde hesaplama yapmasına olanak tanır. Fiyat adımı verilerinin grafik yenilendiğinde kaybolduğunu, bu nedenle bu seçeneği kullanan stratejilerin yeniden boyanacağını unutmayın. Bu parametre, stratejilerin geçmiş çubuklardaki davranışını etkilemez. Ayrıca bu özelliği kullanan stratejilerin, fiyat adımı verisi içermediğinden geçmiş çubuklarda gerçekçi sonuçlar göstermeyeceğini unutmayın.

10 - Emirleri gerçekleştir:

  • Çubuk büyüteci kullanarak (parametre: use_bar_magnifier) - Broker Emülatörünü, daha gerçekçi sonuçlar elde etmek için geçmişe dönük test sırasında daha hassas, daha düşük zaman dilimli fiyatlar kullanmaya yönlendirir. Bu özellik hakkında daha fazla bilgiyi Yardım Merkezi'nde okuyabilirsiniz.
  • Çubuk kapanışında (parametre: process_orders_on_close). Doğru ise, strateji bir çubuk kapandıktan ve strateji hesaplamaları tamamlandıktan sonra emirleri yerine getirmek için ek bir deneme oluşturur. Emirler piyasa emirleriyse, broker emülatörü bunları bir sonraki çubuğun açılışından önce gerçekleştirir. Emirler fiyata bağlıysa, yalnızca fiyat koşulları karşılandığında doldurulur. Bu seçenek, emirleri oluşturuldukları anda yerine getirmek istiyorsanız kullanışlıdır: varsayılan olarak, emirler mevcut çubuğun Kapanışında oluşturulur ve bir sonraki çubuğun Açılışında gerçekleştirilir; bu ayar açıkken, emrin oluşturulduğu aynı Kapanışta gerçekleştirilirler. Emrin oluşturulduğu aynı fiyat adımında pozisyona girmenin yanıltıcı olabileceğini unutmayın, çünkü bu gerçek işlemlerde gerçekleştirilemez.
  • Standart OHLC kullanarak (parametre: fill_orders_on_standard_ohlc) Heikin Ashi grafiklerinde çalışan stratejileri, daha gerçekçi sonuçlar için gerçek OHLC fiyatlarını kullanarak emirleri doldurmaya zorlar. Varsayılan olarak, strateji komut dosyaları grafik türünden bağımsız olarak grafiğin fiyatlarını kullanarak emirleri doldurur. Heikin Ashi grafikleri için bu ayar, gerçeklikle uyuşmayabilecek sentetik fiyatların kullanılmasını önler. Örneğin, günlük NASDAQ:AAPL Heikin Ashi grafiğine uyguladığımız bu strateji, 2023-09-25 tarihinde 175.61 USD'lik sentetik bir fiyattan bir emri doldurdu. Ancak, "Standart OHLC kullanarak" seçeneğini etkinleştirdikten sonra, aynı emir 174.20 USD'lik standart grafik fiyatından dolduruldu.

Strateji özellikleri