0 beğenilme 0 beğenilmeme
454 kez görüntülendi
Merhaba, bir konuda yardımınıza ihtiyacım var.

Bir değerin hesaplanmasını ve grafik üzerinde tek çizgi olarak gösterimini istiyorum: Bu noktayı örnekleyecek olursam; her hangi bir periyotta hareketli ortalamanın (başka bir indikatör de olabilir) kapanış değeri, son barın en düşüğü (yükseği, kapanışı, vs.) gibi girdileri kullanarak matematiksel (Toplama, çıkarma, yüzde alma, çıkan değeri son bar kapanışına ekleme gibi) işlem nasıl yapabilirim?

Matematiksel örnek: 1) (EMA20 (Kapanış) - Son bar (En düşük, yüksek, kapanış, vs.) / 2 = Değer

                                  2) Değer + Son bar (En düşük, yüksek, kapanış, vs.)= Grafik

                                   3) Değer + MA (En düşük, yüksek, kapanış, vs.)= Grafik

Örnekler çoğaltılabilir, konuyla ilgili yardımcı olursanız çok sevinirim.

Kolay gelsin, iyi çalışmalar.
Algoritmik Trading kategorisinde (35 puan) tarafından | 454 kez görüntülendi

1 cevap

0 beğenilme 0 beğenilmeme

Merhaba,

Örnek olarak aşağıdaki örnek incelenebilirsiniz.

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("Test", IndicatorDrawingArea.NewWindow)]
	//Indikatörün çizgilerinin isimleri
	[IndicatorLineInformationAttribute(new []
		{
			"Deger(0)"
		})]

	public class Test: MatriksIndicator
	{
		[DefaultValue(22)]
		public int Period
		{
			get; set;
		}

		EMA ema;


		public sealed override void OnInit()
		{
			ema = EMAIndicator(Symbol, SymbolPeriod, OHLCType.Close, Period);
		}

		public override void OnDataUpdate(int currentBar, decimal inputValue, DateTime barDateTime)
		{
			var ohlcHigh = GetCurrentValue(Symbol, SymbolPeriod, OHLCType.High);
			
			var deger=(ema.CurrentValue-ohlcHigh)/2;

			SetLine(0, currentBar, deger);
		}
	}
}

 

(15,682 puan) tarafından
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.



7,637 soru
7,640 cevap
4,448 yorum
10,882 kullanıcı