0 beğenilme 0 beğenilmeme
831 kez görüntülendi
RSI içerisine most tillson atamak istiyorum. RSI(C,14) için matrikste C yerine most t3 eklenerek yapılmışltı.  IQ da ise symbol kısmına most(tmov,symbol period....) denemesi yaptım ama başarısız oldu. Mumkunse RSI içerisine most trıllson atmak ve burda hem most hem de tılson periyodları için opt değerleri atanacak şekli ile. RSI most değerininin mostu kesitiği denemem aşağıdadır.

namespace Matriks.Lean.Algotrader

{

public class rsimost : MatriksAlgo

{

// Strateji çalıştırılırken kullanacağımız parametreler. Eğer sembolle ilgili bir parametre ise,

// "SymbolParameter" ile, değilse "Parameter" ile tanımlama yaparız. Parantez içindeki değerler default değerleridir.

 

[SymbolParameter("GARAN")]

public string Symbol;

 

[Parameter(SymbolPeriod.Day)]

public SymbolPeriod SymbolPeriod;

 

[Parameter(1)]

public decimal BuyOrderQuantity;

 

[Parameter(1)]

public decimal SellOrderQuantity;

 

[Parameter(2)]

public int Period;

 

[Parameter(3)]

public decimal Percentage;

 

 

MOST most;

 

STDEV stdev;

 

TMOV tmov;

 

RSI rsi;

 

 

 

/// <summary>

/// Strateji ilk çalıştırıldığında bu fonksiyon tetiklenir. Tüm sembole kayit işlemleri,

/// indikator ekleme, haberlere kayıt olma işlemleri burada yapılır.

/// </summary>

public override void OnInit()

{

 

tmov = TMOVIndicator(Symbol, SymbolPeriod, OHLCType.Close, Period, 0.85m);

 

stdev = STDEVIndicator(Symbol, SymbolPeriod, OHLCType.Close, 14);

 

most = MOSTIndicator(tmov, Period, Percentage, MovMethod.TSF);

 

rsi = RSIIndicator(most, SymbolPeriod, OHLCType.Close, 14);

 

 

 

AddSymbol(Symbol, SymbolPeriod);

 

// Algoritmanın kalıcı veya geçici sinyal ile çalışıp çalışmayacağını belirleyen fonksiyondur.

// true geçerseniz algoritma sadece yeni bar açılışlarında çalışır, bu fonksiyonu çağırmazsanız veya false geçerseniz her işlem olduğunda algoritma tetiklenir.

WorkWithPermanentSignal(true);

 

//Eger backtestte emri bir al bir sat seklinde gonderilmesi isteniyor bu true set edilir.

//Alttaki satırı silerek veya false geçerek emirlerin sirayla gönderilmesini engelleyebilirsiniz.

SendOrderSequential(true);

}

 

 

/// <summary>

/// Eklenen sembollerin bardata'ları ve indikatorler güncellendikçe bu fonksiyon tetiklenir.

/// </summary>

/// <param name="barData">Bardata ve hesaplanan gerçekleşen işleme ait detaylar</param>

public override void OnDataUpdate(BarDataCurrentValues barDataCurrentValues)

{

 

if (CrossAbove(rsi, most))

{

SendMarketOrder(Symbol, BuyOrderQuantity, (OrderSide.Buy));

Debug("Alış emri verildi.");

Debug("rsi:" + rsi.CurrentValue);

Debug("Most:" + most.CurrentValue);

}

if (CrossBelow(rsi, most))

{

SendMarketOrder(Symbol, SellOrderQuantity, (OrderSide.Sell));

Debug("Satış emri verildi.");

Debug("rsi:" + rsi.CurrentValue);

Debug("Most:" + most.CurrentValue);

}

}

}

}
Algoritmik Trading kategorisinde (14 puan) tarafından | 831 kez görüntülendi

1 cevap

1 beğenilme 0 beğenilmeme

Merhaba,

Aslında stratejide most içine tilson indikatörünü doğru atamışsınız..

Rsi indikatörünü aşağıdaki gibi düzenledim deneyebilirsiniz.

most = MOSTIndicator(tmov, Period, Percentage, MovMethod.TSF); 

rsi = RSIIndicator(most, 14);

 

(15,892 puan) tarafından
0 0
Teşekkür ederim. rsi 'ı bir önceki değeri ile if döngüsüne sokmam lazım. rsı most mukayesesi verim vermedi.

Tekrar teşekkür ederim
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,636 soru
8,590 cevap
4,821 yorum
19,790 kullanıcı