10 beğenilme 0 beğenilmeme
7,934 kez görüntülendi

MatriksIQ ALGORİTMA SİHİRBAZI
ÇOKLU KOŞUL İLE ALGORİTMA OLUŞTURMA

Algoritma sihirbazı, IQAlgo ana menüsü altında yer alır. Temel bilgiler / detaylar için linkteki dokümana bakınız:
https://destek.matriksdata.com/?qa=4438/iq-algoritma-sihirbaz%C4%B1n%C4%B1-nas%C4%B1l-kullan%C4%B1r%C4%B1z&show=4438#q4438
Bir örnek üzerinden, tüm temel detaylar anlatılmıştır. Bu anlatımda, linkteki ilk dokümanda bahsettiğim tüm detaylardan bahsetmeyeceğim. 
Burada ek işlev içeren bir örnek yapacağız. 1’den fazla indikatör içeren bir koşul oluşturacağız.
MOST indikatörü ile RSI indikatörünün birlikte çalışacağı bir koşul oluşturalım.
İlk örnekte, koşulları cross ile oluşturup OR ile birbirine bağlama yöntemini yapalım. 
MOST AL koşulu: Exmov çizgisinin MOST çizgisini yukarı kesmesi
MOST SAT koşulu: Exmov çizgisinin MOST çizgisini aşağı kesmesi
RSI AL koşulu: RSI çizgisinin 35 seviyesini yukarı kesmesi.
RSI SAT koşulu: RSI çizgisinin 65 seviyesini aşağı kesmesi
Olarak alıyorum.
İlk girdi tipini şu şekilde ayarlıyorum:

Ve ekliyorum.

 

Şimdi RSI indikatörünü eklememiz gerekir. Aynı şekilde seçip, onu da ekliyorum ve aşağıdaki görünümü elde ediyorum:

Artık, oluşturmak istediğim algoritmada kullanabileceğim 2 tane indikatör var. 

 

Kalıcı Sinyal ile çalış ve Emirleri Sıralı gönder kısmını ön tanımlı hali ile bırakıyorum.

 


Bu kısmı ilgilendiren detaylar için, yukarıda linkini verdiğim ilk dokümana bakabilirsiniz.

Şimdi koşullarımızı oluşturalım.
Koşul 1 olarak AL koşulumu oluşturacağım. 
MOST için, şu şekilde ayarlıyorum:

 


Yani, MOST indikatörünün EXmov çizgisi Most çizgisini yukarı keserse demiş oluyorum.
İpucu: İlk örnekte tek çizgili bir indikatör kullanmıştık. Seçtiğim indikatör birden fazla çizgiye sahip ise, o çizgiler seçenek olarak geliyor. Ve bunların arasından seçim yaparak koşulumuzu oluşturuyoruz. 
Ve koşulu ekliyorum.

Koşul listesine eklendi:

 

Hala koşul 1 sekmesindeyim. Şimdi RSI koşulunu OR ile ekleyeceğim. 
Gerekli ayarlamayı şu şekilde yapıyorum:

 

Hala, Koşul 1 sekmesindeyim. OR ile bağla seçmişim. Ve RSI 35 seviyesini yukarı kırarsa (RSI AL koşulum bu idi) şeklinde de koşulumu hazırlamış durumdayım.
Ve ekliyorum ve aşağıdaki görünümü elde ediyorum. 

 

Koşul1 hazır. Most veya RSI AL sinyali verirse çalışacak.
Şimdi buna emir ekliyorum. 


 Sırada SAT Koşulumuz var. Koşul2 de SAT koşulumuz olacak.
Önce MOST koşulumu oluşturuyorum. Bu sefer aynı çizgiler ama aşağı kırarsa seçili.
Ekliyorum.


Ve RSI SAT koşulunu oluşturuyorum:


 

Hatırlayalım. RSI SAT koşulumuz RSI çizgisi 65’i aşağıya kesince şeklindeydi. 
Ve OR ile ekliyorum:
Bunu da ekleyince, Koşul 2 de (SAT koşulum) tamamlanmış oluyor.


 
Koşul 2 için de emirleri ekliyorum.

Artık Stratejimi tamamlayabilirim.
Strateji oluştur butonuna tıklayıp, Algoritmama isim veriyorum.


 
Ve tamam diyorum.
Algoritmam hazır.
 

Kullanıcı stratejileri listesine eklendi
 

Oldukça kolay, değil mi.
Hayırlı kazançlar dileklerimle.

Algoritmik Trading kategorisinde (13,600 puan) tarafından
tarafından düzenlendi | 7,934 kez görüntülendi
0 0
Al koşulunda long a girip take profit ile pozisyonu kapatmasını Sat koşulu ile de short a girip take profit ile pozisyonu kapatmasını istiyorum. Nasıl yapacağız?
0 0
2 kosullu bir algoritma hazirlamak istiyorum. Bazen kosullar ayni bar kapanisinda gerceklesmiyor, and ile bagladigimda, backtestte gordum ki, isleme ilk gerceklesen kosul giriyor. Yukaridaki ornekten yola cikarsak:

MOST AL koşulu: Exmov çizgisinin MOST çizgisini yukarı kesmesi ve (and ile bagla) RSI AL koşulu: RSI çizgisinin 35 seviyesini yukarı kesmesi.

Most cizgisi yukari kestiyse ama RSI henuz kesmediyse, islem acilmasin istiyorum. Ancak iki kosul yerine geldiyse istiyorum. Mumkun mu?
0 0
iki kesişimin aynı anda gerçekleşmesi çok mümkün olmadığından sinyal oluşmayacaktır. Most için kesişim rsi içinde büyük küçüktür ile koşul oluşturulabilir.

2 Cevaplar

2 beğenilme 0 beğenilmeme
Gayet açıklayıcı ve temiz bir anlatım olmuş teşekkürler.
(143 puan) tarafından
0 beğenilme 0 beğenilmeme
Merhabalar;

 

3 adet mov ile strateji oluşturdum. Stratejim şu şekilde

mov    (10 periyod)

mov 2 (  30 periyod)

mov 3 (50 periyod)

 

al koşulu için :  mov2  mov3 ten büyük olmalı  ve mov mov2 yi yukarı kesmeli   

sat koşulu : mov   mov2 yi aşağı kesmeli

 

fakat stratejiyi robota bağladığımda mov2 mov3 ten küçük olsa bile mov mov2 yi yukarı kesince alım yapıyor  veya mov mov2 yi aşağı kırmadan satış yapıyor.  (bactest ile test ettiğimde doğru şekilde alım satım yapıyor, canlı çalışırken alım satım yaptığı yerleri grafik üzerinde incelediğimde yanlış şekilde çalıştığını fark ettim)

Ben nerede yanlış yapıyorum yardımcı olabilir misiniz?

 

Algoritma sihirbazı ile oluşturduğum formül  bu şekilde;

public override void OnDataUpdate(BarDataEventArgs barData)

{

if (mov2.Value[0][mov2.CurrentIndex] >= mov3.Value[0][mov3.CurrentIndex] && CrossAbove(mov, mov2, 0, 0))

{

SendMarketOrder(Symbol1, OrderQuantity1, OrderSide.Buy, includeAfterSession:false);

}

if (CrossBelow(mov, mov2, 0, 0))

{

SendMarketOrder(Symbol1, OrderQuantity2, OrderSide.Sell, includeAfterSession:false);

}

 

}
(32 puan) tarafından
0 0
{

if (mov2.Value[0][mov2.CurrentIndex] > mov3.Value[0][mov3.CurrentIndex] && CrossAbove(mov, mov2, 0, 0))

{

SendMarketOrder(OrderSymbol1, OrderQuantity1, OrderSide.Buy, includeAfterSession:false);

}

if (CrossBelow(mov, mov2, 0, 0))

{

SendMarketOrder(OrderSymbol1, OrderQuantity2, OrderSide.Sell, includeAfterSession:false);

}

emin olmamakla birlikte böyle olacak, sizin >= karıştırıyor galiba.
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.



8,560 soru
8,511 cevap
4,785 yorum
19,353 kullanıcı