MatriksIQ Destek
Matriks Destek
Matriks Web Destek
Matriks Mobile Destek
3 beğenilme 0 beğenilmeme
794 kez görüntülendi

                                                      BİR STRATEJİYE STOP EKLEMEK

 

Merhaba,

Var olan bir stratejiye stop eklemek için, ilk olarak aşağıdaki stop komutlarını bilmemiz gerekir.

 

            // %5 zarar durdur
            // StopLoss(Symbol, SyntheticOrderPriceType.Percent, 5);
                                                           
            // %5 kar al
            // TakeProfit(Symbol, SyntheticOrderPriceType.Percent, 5);
                                                           
            // %5 izsürenstop
            TrailingStopLoss(Symbol, SyntheticOrderPriceType.Percent, 5);

 

Yüzde olarak değil de, miktar olarak tanımlamak istersek,

SyntheticOrderPriceType.Percent

Yerine,

SyntheticOrderPriceType.PricePoint

Gelmelidir.

Mesela,

StopLoss(Symbol, SyntheticOrderPriceType.PricePoint, 0.20);

 

Gibi. Tabii bu durumda, yazacağımız rakam da puan olmalıdır. Yukarıdaki ifadede, stop seviyesi 0.2 puandır.

 

İpucu: Normal şartlar altında, stop seviyelerinin yüzde olarak uygulanması, genelde kullanmak açısından daha doğrudur.

Bilgi: Program içinde, hazır stratejilerden SMA_Bitmex_TPSL stratejisi stop uygulaması içermektedir.

 

**

Stop ifadesinin genel şablonu şu şekildedir:

TakeProfit( string symbol, SyntheticOrderPriceType SyntheticOrderPriceType, decimal stopLevel )

 

Genellikle şöyle ifade edilir:

StopLoss(Symbol, SyntheticOrderPriceType.Percent, Zarar_Durdur_Yuzdesi);

StopLoss(Symbol, SyntheticOrderPriceType.Percent, 1);

 

Yukarıda 2. Satırda olduğu gibi, sabit bir rakam yazabiliriz. Bu durumda, strateji bu rakamı baz alarak çalışacak, çalıştırma esnasında bize bir şey sormayacaktır.

Bu, normalde tercih edeceğimiz bir durum olmayacaktır.

Bu sebeple, öncesinde bir değişken tanımlamayı tercih ederiz.

Public class bölümünde şu şekilde değişken tanımlayabiliriz:

	//Burdaki değer ile yüzdeli stoploss kurulur.
		[Parameter(1)]
		public decimal Zarar_Durdur_Yuzdesi;

      

Yukarıdaki tanımlamayı yapıp, daha sonra aşağıdaki kod satırını:

StopLoss(Symbol, SyntheticOrderPriceType.Percent, Zarar_Durdur_Yuzdesi);

 

AL ya da, Açığa Sat emir gönderim satırının altına eklemeliyiz.

 

**

Örnek:

Kodun içinde değişken tanımlama kısmına geliyorum.

Son değişkeni kopyalayıp, aynısını altına yapıştırıyorum.

 

Sonra, eklediğim değişkende, hedefime uygun olarak düzenlemeyi yapıyorum.

 

Rakamların karışmaması için, 2 rakamını 1.5 yaptım. Değişken olarak tanımladığım için backtest veya çalıştırma aşamasında zaten göreceğim.

İsmini de yukarıda göreceğiniz şekilde değiştirdim.

Sonra, Alış satırının altına stop emir kodunu ekliyorum.

 

Debug fonksiyonun işlevi ayrıdır. Kendimizi bilgilendirmek için kullanırız. Ayrıca anlatılacaktır.

Dilersek, stoploss kodumuzun altına da, debug ekleyerek kendimize çıktılar kısmında, bilgilendirme alabiliriz.

 

Önemli Bir Detay: Yukarıdaki resimde, emir gönderim satırı içinde sembol tanımının Synbol olduğunu görüyoruz. Bazen orada, farklı olarak Symbol1 ya da daha farklı bir tanım olabilir.

Bu durumda, bizim de, stop komutumuzun içinde yer alan Symbol ifadesini aynı şekilde değiştirmemiz gerekir.

Değiştirmez isek, kodun içeriğine göre, ya hata mesajı alırız, bunu fark edip düzeltmek kolay olacaktır.

Ya da yanlış bir sembole emir gönderilmesine sebep olabiliriz. Dikkat edelim lütfen.

 

İşlem tamamlandı. Kodu derle yapabiliriz.

*

Backtest yapmayı denersek, karşımıza çıkacak pencerede ilgili stop seçeneğini de görebiliriz.

 

Benzer biçimde, diğer stopları da ekleyebiliriz.

 

DİKKAT: Stop ifadesinin AL koşulu altına eklenmesi, sadece AL pozisyonuna uygulanmasını garanti etmez. Oraya eklememiz, görsel / işlevsel bir kolaylık içindir.
Esasen, stop ifadesi, pozisyon açtığını var saydığı her emre uygulanır. 
Bu sebeple, stopların doğru çalışması için: Stratejinin AL ile başlaması ve emirlerin sıralı gönderilmesi gerekir. 
AL ile başlatmadığımız strateji SAT emrini açığa sat olarak algılar. Ve stop buna göre devreye girer. 
Sıralı gönder seçmediğimiz takdirde de, stop gerçekleşmesine rağmen SAT emrinin tekrar gönderilmesi gibi sorunlarla kaşılaşabiliriz. 
Eğer daha serbest olarak kullanmak istiyorsanız, kodun içine ayrıca pozisyon kontrolü vb. koymalıyız. 
Bu konuda ayrıca bir çalışma yapacağız. 

 

**

Dilersek, peş peşe Kar Al – Zarar Durdur ve İz süren stop emirleri de girebiliriz. Hangisi önce gerçekleşirse, o çalışacaktır.

 

Hayırlı kazançlar dileriz.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Algoritmik Trading kategorisinde (5,323 puan) tarafından
tarafından düzenlendi | 794 kez görüntülendi

Bu soruya cevap vermek için lütfen giriş yapınız veya kayıt olunuz.

Hoş geldiniz, Matriks Destek Platformu sizlere sorularınızın hızlıca cevaplanması için bir ortam sağlar. Sorduğunuz ve cevapladığınız soruların ve yorumlarınızın aldığı oylar üzerinden puan kazanırsınız. Puan sistemine bağlı kampanyamızla ücretsiz kullanım avantajlarından faydalanabilirsiniz.



2,773 soru
2,656 cevap
2,146 yorum
1,949 kullanıcı