1 beğenilme 0 beğenilmeme
688 kez görüntülendi

Selamlar, 

Yeni bir sistem düşünüyorum ismi RsiOtt

RSİ 'ın üzerine OTT atabilirmiyiz? yani RSİ grafiğin kapanış verileri üzerinden beslenicek ama OTT  , RSİ dan beslenicek. matriksiq da normalde yapılabiliyor. örn. aşağıdaki gibi

 

Bu sistemi yazabilirmisiniz? ek olarak birde stoploss ekleyebilirmisiniz?

 

Teşekkürler

 

Algoritmik Trading kategorisinde (200 puan) tarafından | 688 kez görüntülendi
1 0
Merhaba,

Stratejinizi hazırlıyoruz. En kısa zamanda dönüş yapacağız.

1 cevap

2 beğenilme 0 beğenilmeme
En İyi Cevap

Merhaba,

Ott indikatörünü başka indikatörden referans alarak oluştururken SupportLine çizgisinin eklenemediğini gördük. Bu sorun için iş açtık. En kısa zamanda çözülecektir. 

Altta paylaştığım kodda ise örnek olması açısından Most indikatörünü, Rsi indikatöründen referans alarak oluşturduk. Genel olarak başka indikatörden referans ile oluşturulan indikatörler kodda paylaştığım şekilde oluşturulur. 

Ott indikatöründeki sorunu giderdikten sonra aşağıdaki gibi kolayca oluşturabilirsiniz.

//Hata giderildikten sonra bu şekilde kullanılabilir.
rsi = RSIIndicator(Symbol, SymbolPeriod, OHLCType.Close, 14);
ott = OTTIndicator(rsi, 2, 1.4m, MovMethod.VAR, true);

İyi çalışmalar

Başka indikatörden referans alarak oluşturulan indikatör için örnek strateji. Kodu kopyaladığınız strateji ile paylaştığım stratejinin adlarının aynı olmasına dikkat ediniz.

using System;
using System.Collections.Generic;
using System.Linq;
using Matriks.Data.Symbol;
using Matriks.Engines;
using System.Windows.Media;
using Matriks.Indicators;
using Matriks.Symbols;
using Matriks.AlgoTrader;
using Matriks.Trader.Core;
using Matriks.Trader.Core.Fields;
using Matriks.Trader.Core.TraderModels;
using Matriks.Lean.Algotrader.AlgoBase;
using Matriks.Lean.Algotrader.Models;
using Matriks.Lean.Algotrader.Trading;

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(3)]
		public int Period;

		[Parameter(2)]
		public decimal Percentage;

		[Parameter(MovMethod.E)]
		public MovMethod Method;

		RSI rsi;

		MOST most;


		/// <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()
		{

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

			most = MOSTIndicator(rsi, Period, Percentage, Method);

			AddSymbol(Symbol, SymbolPeriod);

			//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)
		{
			Debug("Most line : " + Ref(most, 0));
			Debug("ExMov line : " + Ref(most.ExMOV, 0));

		}
	}
}

 

(4,555 puan) tarafından
tarafından seçilmiş
0 0
selamlar, kodu Ott ile düzenlemeye çalıştım fakat bir çok hata alıyorum kodu derlerken. sizinde belirttiğiniz şekilde düzenlememe rağmen. düzenleyebildiğim kod aşağıdaki gibidir;

using System;

using System.Collections.Generic;

using System.Linq;

using Matriks.Data.Symbol;

using Matriks.Engines;

using System.Windows.Media;

using Matriks.Indicators;

using Matriks.Symbols;

using Matriks.AlgoTrader;

using Matriks.Trader.Core;

using Matriks.Trader.Core.Fields;

using Matriks.Trader.Core.TraderModels;

using Matriks.Lean.Algotrader.AlgoBase;

using Matriks.Lean.Algotrader.Models;

using Matriks.Lean.Algotrader.Trading;

 

namespace Matriks.Lean.Algotrader

{

public class RsiOtt : 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(3)]

public int Period;

 

[Parameter(2)]

public decimal Percentage;

 

[Parameter(MovMethod.E)]

public MovMethod Method;

 

RSI rsi;

 

OTTott;

 

 

/// <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()

{

 

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

ott = OTTIndicator(rsi, 2, 1.4m, MovMethod.VAR, true);

 

AddSymbol(Symbol, SymbolPeriod);

 

//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)

{

Debug("Most line : " + Ref(most, 0));

Debug("ExMov line : " + Ref(most.ExMOV, 0));

 

}

}

}

 

koda bi bakabilirmisiniz nerelerde hata var?
0 0

Merhaba, 

Ott indikatörünü başka indikatörden referans alarak oluştururken SupportLine çizgisinin eklenemediğini gördük. Bu sorun için iş açtık. En kısa zamanda çözülecektir. 

Yukarıda yazdıklarımı tam incelemediniz sanırım. Ott indikatörünü başka indikatörden referans almada şuanda bir sorun var.

Ott ile ilgi paylaştığım kod parçasını hata giderildikten sonra kullanmanız için paylaştım.

İyi çalışmalar

0 0
ben yukarıda yazdıklarınızı iyi okudum. şuan bu kodun çalışmayacağının farkındayım. sadece yazıp içerde dursun istiyorum. yazdıklarınızdan fazlasının değiştirilmesi gerekiyor sanırım kodun içinde. şimdiden kodu düzenliyim aradan çıksın bu iş sonrasında sorun giderilince backtestlerimi zaten yaparım
0 0
Anladım ama şuanda ott kodu eksik olduğu için hata alacaksınız. Doğru olup olmadığına emin olamazsınız.

Koda baktığımda OnDataUpdate içersindeki debugları değiştirmeniz lazım. Bu hatalar strateji editöründe bulunan error listte de görünür. Ordaki hataya çift tıkladığınızda hatanın olduğu satıra gider.
8,639 soru
8,593 cevap
4,826 yorum
19,858 kullanıcı