0 beğenilme 0 beğenilmeme
314 kez görüntülendi
Hareketli ortalamanın geçmişe dönük değerini çağırmak istiyorum: Örneğin 21 periyotluk hareketli ortalamanın n=0 olmak üzere istenilen  (0-20) değerlerden bir veya birden fazlasını nasıl çağırabilirim?
İndikator kategorisinde (35 puan) tarafından | 314 kez görüntülendi

1 cevap

0 beğenilme 0 beğenilmeme

Merhaba,

Ref fonksiyonu ile indikatörlerin önceki değerlerine ulaşabilirsiniz. Aşağıdaki kodu ve konuyu inceleyebilirsiniz.

https://destek.matriksdata.com/?qa=2698/referans-highesthigh-lowestlow-fonksiyonlar%C4%B1n%C4%B1-kullanma&show=2698#q2698

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 Test : 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.Min5)]
		public SymbolPeriod SymbolPeriod;

		MOV mov21;

		public override void OnInit()
		{
			mov21 = MOVIndicator(Symbol, SymbolPeriod, OHLCType.Close, 21, MovMethod.Simple);

			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);
			WorkWithPermanentSignal(true);
		}

		public override void OnDataUpdate(BarDataCurrentValues barDataCurrentValues)
		{
			// Haretketli ortalamanın bir önceki değeri
			var prev=Ref(mov21,-1);
			
			// Haretketli ortalamanın beş önceki değeri
			var prev5=Ref(mov21,-5);

		}
	}
}

 

 

 

(15,892 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.



8,636 soru
8,590 cevap
4,821 yorum
19,790 kullanıcı