0 beğenilme 0 beğenilmeme
449 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 | 449 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,532 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,591 soru
7,598 cevap
4,441 yorum
10,434 kullanıcı