Matriks Destek ve Yardım Platformu

Matriks Ürünleri ile ilgili tüm sorularınız için bizlere buradan ulaşabilirsiniz. Daha önce sorulan soruları ve verilen cevapları ilgili sekmelerden ve arama üzerinden inceleyebilirsiniz. Sağ taraftaki kategoriler üzerinden İlgilendiğiniz özelliklerle ilgili soruları filtreleyebilirsiniz. Soru ve cevapları sosyal medyada paylaşabilirsiniz. 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.

0

Korelasyon ya da korelasyon şiddeti

Soruldu
Kategori
Explorer
Görüntülenme
1.178 görüntülenme
Durum
Cevaplandı
Merhaba;

Herhangi bir coinin matriks iq explorer da btc ile olan korelasyonunu nasıl bulabilirim?

Teşekkür ederim.
Paylaş

1 Cevap

1

Merhaba,

Aşağıdaki indikatörü inceleyip explorerda kullanabilirsiniz.

iyi çalışmalar.

using System;
using System.Collections.Generic;
using System.Linq;
using System.ComponentModel;
using Matriks.Data.Identifiers;
using Matriks.Data.Symbol;
using Matriks.Engines;
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
{
	//Ilk parametre indikatörün adı, sınıfın adıyla aynı olmalıdır.
	//Ikinci parametre indikatörün Dataserisinin üzerine mi yeni pencereye mi ekleneceğini belirtir. Yeni pencere için ->IndicatorDrawingArea.NewWindow , Data Serisi için IndicatorDrawingArea.OnDataSeries
	[IndicatorInformationAttribute("Korelasyon", IndicatorDrawingArea.NewWindow)]
	//Indikatörün çizgilerinin isimleri
	[IndicatorLineInformationAttribute(new []
		{
			"Korelasyon"
		})]

	public class KorelasyonKripex : MatriksIndicator
	{
		int toplmaBarSayisi = 0;
		decimal correl = 0.0m;
		bool bayrak=true;

		[DefaultValue("BTC_USDT_BIN")]
		public string Symbol1
		{
			get; set;
		}

		public sealed override void OnInit()
		{
			AddSymbol(Symbol, SymbolPeriod);
			AddSymbol(Symbol1, SymbolPeriod);
		}

		public override void OnInitComplated()
		{
			toplmaBarSayisi = GetBarData().Close.LastOrDefault().Key;
		}

		public override void OnDataUpdate(int currentBar, decimal inputValue, DateTime barDateTime)
		{
			if (currentBar == toplmaBarSayisi && bayrak)
			{
				bayrak=false;
				
				var seri1 = GetBarData(Symbol1, SymbolPeriod).Close;
				var seri2 = GetBarData().Close;

				var adet = seri1.Count;

				var siraliSeri1 = new List<decimal>(seri1.Values).OrderBy(s => s).ToList();
				var siraliSeri2 = new List<decimal>(seri2.Values).OrderBy(s => s).ToList();

				var siralarFarkiKaresiToplami = seri1.Zip(seri2, (x, y) => Math.Pow(siraliSeri1.IndexOf(x.Value) + (siraliSeri1.Count(s => s == x.Value) > 1 ? 1D / siraliSeri1.Count(s => s == x.Value) + 1 : 1) - (siraliSeri2.IndexOf(y.Value) + (siraliSeri2.Count(s => s == y.Value) > 1 ? 1D / siraliSeri2.Count(s => s == y.Value) + 1 : 1)), 2)).Sum();
				
				correl= 1M - 6M * (decimal)siralarFarkiKaresiToplami / (adet * (decimal)(Math.Pow(adet, 2) - 1)); 
			}

			SetLine(currentBar, correl);
		}
	}
}

 

 

 

Unblocked Games offering a wide range of experiences: action, puzzle, platform, racing, clicker mechanics, strategy, sports, even horror.
https://unblocked1games.github.io
BağlantıBayrakladüzenlendi · KripexKripexMatriks Destek16.499

Yorumlar (1)

  • ▲0

    Elinize sağlık teşekkür ederim. Kodun alttaki satırlarından anladığım kadarıyla tüm barları alarak hesaplama yapılıyor 

    var siraliSeri1 = new List<decimal>(seri1.Values).OrderBy(s => s).ToList();
    var siraliSeri2 = new List<decimal>(seri2.Values).OrderBy(s => s).ToList();

     

    Bunları sınırlandırarak, yani her indikatörde olduğu gibi uzunluk belirlenebilmesi için yardımcı olur musunuz?

Cevabınız

Cevap yazmak için giriş yapın.Giriş yapKayıt ol