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

Pazartesi gün yuksegi düsügü

Soruldu
Görüntülenme
112 görüntülenme
Durum
Cevaplandı
Merhabalar Matriks indikator olarak Pazartesi gün yuksegi ve düsügünü nasıl uazabilirim grafik üzerinde gostersin Mesela pazartesi en yuksek 10 tl en düsük 9 tl diyelim bunu grafikte isaretlesin Salı carsamba persembe cuma ve sonraki pazartesine kadar da gorebileyim istiyorum bilmem anlatabildim mi
Paylaş

1 Cevap

0

Merhaba,

Haftanın ilk işlemi her zaman Pazartesi ile başlamayabilir. Bunun için haftanın ilk işlem gününü yakalayıp en yüksek ve düşüğünü tespit edip grafikte gösteren indikatör örneği aşağıdaki gibidir.

NOT: Bu indikatör, haftanın ilk günü içinde yeni en yüksek veya en düşük değer bulunduğunda geçmiş barlardaki çizgi değerlerini güncelleyerek repaint yapar. Bu nedenle sadece takip ve görsel analiz için kullanılması uygundur.

 

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
{
	[IndicatorInformationAttribute("haftaBasiYuksekDusuk", IndicatorDrawingArea.OnDataSeries)]
	[IndicatorLineInformationAttribute(new []
		{
			"H", "L"
		})]
	public class haftaBasiYuksekDusuk : MatriksIndicator
	{
		public sealed override void OnInit()
		{
		}
		
		private decimal haftaBasiYuksek = 0;
		private decimal haftaBasiDusuk = 0;
		private DateTime haftaBasiTarihi = DateTime.MinValue;
		private bool haftaBasiTamamlandi = false;
		private int haftaIlkGunIlkBarIndex = 0; 
		
		public override void OnDataUpdate(int currentBar, decimal inputValue, DateTime barDateTime)
		{
			bool yeniHafta = false;
			
			if (currentBar > 0)
			{
				DateTime oncekiTarih = Instrument.SymbolBarData.Time[currentBar - 1];
				DateTime mevcutHaftaBaslangic = HaftaBaslangiciGetir(barDateTime);
				DateTime oncekiHaftaBaslangic = HaftaBaslangiciGetir(oncekiTarih);
				
				yeniHafta = (mevcutHaftaBaslangic != oncekiHaftaBaslangic);
			}
			else
			{
				yeniHafta = true; 
			}
			
			if (yeniHafta)
			{
				haftaBasiYuksek = Instrument.SymbolBarData.High[currentBar];
				haftaBasiDusuk = Instrument.SymbolBarData.Low[currentBar];
				haftaBasiTarihi = barDateTime.Date;
				haftaBasiTamamlandi = false;
				haftaIlkGunIlkBarIndex = currentBar; 
			}
			else
			{
				if (barDateTime.Date == haftaBasiTarihi && !haftaBasiTamamlandi)
				{
					decimal mevcutYuksek = Instrument.SymbolBarData.High[currentBar];
					decimal mevcutDusuk = Instrument.SymbolBarData.Low[currentBar];
					
					bool guncellemeYapildi = false;
					
					if (mevcutYuksek > haftaBasiYuksek)
					{
						haftaBasiYuksek = mevcutYuksek;
						guncellemeYapildi = true;
					}
					
					if (mevcutDusuk < haftaBasiDusuk)
					{
						haftaBasiDusuk = mevcutDusuk;
						guncellemeYapildi = true;
					}
					
					if (guncellemeYapildi)
					{
						for (int i = haftaIlkGunIlkBarIndex; i < currentBar; i++)
						{
							SetLine(0, i, haftaBasiYuksek);
							SetLine(1, i, haftaBasiDusuk);
						}
					}
				}
				else if (barDateTime.Date != haftaBasiTarihi && !haftaBasiTamamlandi)
				{
					haftaBasiTamamlandi = true;
				}
			}
			
			SetLine(0, currentBar, haftaBasiYuksek);
			SetLine(1, currentBar, haftaBasiDusuk);
		}
		
		private DateTime HaftaBaslangiciGetir(DateTime tarih)
		{
			int gunFarki = ((int) tarih.DayOfWeek - (int) System.DayOfWeek.Monday + 7) % 7;
			return tarih.Date.AddDays(-gunFarki);
		}		
	}
}

 

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

Cevabınız

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