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

IQ'da MOV için farklı fiyat kullanabilme

Soruldu
Kategori
İndikator
Görüntülenme
1.485 görüntülenme
Durum
Cevaplandı

Merhaba,

 

Matriks Prime’da aşağıdaki gibi hazırladığım basit bir indikatörü MatriksIQ’da da denemek istedim.

 

Period:=9;

K:=MOV( (H+L+C+C)/4, Period, Var);

K

 

Ancak MOV’un fiyat parametresini (H+L+C+C)/4  şeklinde uygulamak istiyorum.

Nasıl yapılacağı konusunda yardımlarınızı rica ederim.

Paylaş

1 Cevap

0

Merhaba,

aşağıdaki kodu inceleyebilirsiniz.

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.Min)]
		public SymbolPeriod SymbolPeriod;
		
		[Parameter(5)]
		public int Period;

		MOV mov;

		public override void OnInit()
		{
			AddSymbol(Symbol, SymbolPeriod);
			
			mov = new MOV(Period, MovMethod.VAR);			

			//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);
		}

		decimal _high,_low,_close;		
		public override void OnDataUpdate(BarDataCurrentValues barDataCurrentValues)
		{			
			var bardata=GetBarData();
			
			_high=barDataCurrentValues.LastUpdate.High;
			_low=barDataCurrentValues.LastUpdate.Low;
			_close=barDataCurrentValues.LastUpdate.Close;
			
			var index=barDataCurrentValues.LastUpdate.BarDataIndex;
			
			mov.Update((_high+_low+2*_close),index,barDataCurrentValues.LastUpdate.DTime);

			// cross(mov(h+l+c+c,period,var),c)
			if (CrossAbove(mov, bardata, OHLCType.Close))
			{
				Debug("Şartınız şağlandı");		
			}
		}
	}
}

 

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

Yorumlar (1)

  • ▲1

    Merhaba,

    Yapmak istediğim aşağıdaki indikatördü. Teşekkürler.  :)

    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("YC_Simple_Indicator", IndicatorDrawingArea.OnDataSeries)]
    
    	[IndicatorLineInformationAttribute(new []
    		{
    			"YC"
    		})]
    
    	public class YC_Simple_Indicator : MatriksIndicator
    	{
    		[DefaultValue(9)]
    			public int Periyot
    		{
    			get; set;
    		}
    
    		MOV mov;
    
    		public sealed override void OnInit()
    		{
    			mov = MOVIndicator(Symbol, SymbolPeriod, OHLCType.Close, Periyot, MovMethod.Variable);
    		}
    
    		decimal _high, _low, _close;
    
    		public override void OnDataUpdate(int currentBar, decimal inputValue, DateTime barDateTime)
    		{
    			_high = Instrument.SymbolBarData.High[currentBar];
    			_low = Instrument.SymbolBarData.Low[currentBar];
    			_close = Instrument.SymbolBarData.Close[currentBar];
    
    			mov.Update((_high + _low + 2 * _close) / 4, currentBar, barDateTime);
    			SetLine(0, currentBar, mov.CurrentValue);
    		}
    	}
    }

     

Cevabınız

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