0 beğenilme 0 beğenilmeme
636 kez görüntülendi
Explorer sihirbazında 3 farklı parametre kullanıyorum. Ancak bunların ikisini OR seçeneği bir tanesini and seçeneği ile bağlamak istiyorum. Yani ikisi değişkenlik gösterebilir hangisi önce gelirse ama bir tanesi değişmeden and seçeneği ile devam etmeli. Bunu nasıl yapabilirim?
Explorer kategorisinde (51 puan) tarafından | 636 kez görüntülendi

1 cevap

0 beğenilme 0 beğenilmeme

Merhaba,

Kullanacağınız 3 parametre A, B ve C olsun.

Değişkenlik gösterebilecek olanlar A ve B, sabit kalmasını istediğinize ise C parametresi diyelim.

Bu gibi bir durumda C parametresini diğer iki parametre ile birlikte kullanarak,

  • C && (A||B) şeklinde koşul oluşturabilirsiniz.

Bu koşulun açıklaması C sabit kalsın, A ya da B'den hangisi önce olursa C ile birlikte gerçekleşsin demektir.

İyi çalışmalar.

(11,059 puan) tarafından
0 0
belirtmiş olduğunuz koşulu nasıl değiştirmem gerekiyor yardımcı olabilir misniz? RSI sabit kalacak şekilde ccı ve stoch değişkken olabilir

 

using System;

using System.Collections.Generic;

using System.Linq;

using Matriks.Data.Symbol;

using Matriks.Engines;

using Matriks.Indicators;

using Matriks.Symbols;

using Matriks.Trader.Core;

using Matriks.Trader.Core.Fields;

using Matriks.Lean.Algotrader.AlgoBase;

using Matriks.Lean.Algotrader.Models;

using Matriks.Lean.Algotrader.Trading;

using Matriks.AI;

using Matriks.AI.AiParameters;

using Matriks.AI.Data;

using Matriks.Trader.Core.TraderModels;

 

namespace Matriks.Lean.Algotrader

{

public class INVERSE : Explorer

{

// 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.

 

 

 

[Parameter(9)]

public int İftcci2kripexMovPeriod1;

 

[Parameter(89)]

public int İftcci2kripexCciPeriod1;

 

[Parameter(9)]

public int İftstochkripexMovPeriod1;

 

[Parameter(89)]

public int İftstochkripexStochK1;

 

[Parameter(3)]

public int İftstochkripexStochD1;

 

[Parameter(9)]

public int İftrsikripexMovPeriod1;

 

[Parameter(89)]

public int İftrsikripexRsiPeriod1;

 

MatriksIndicator IFTCCI2Kripex;

MatriksIndicator IFTSTOCHKripex;

MatriksIndicator IFTRSIKripex;

 

 

 

public override void OnInit()

{

IFTCCI2Kripex = new IFTCCI2Kripex();

 

IFTCCI2Kripex.SetIndicatorParameters("MovPeriod", İftcci2kripexMovPeriod1);

IFTCCI2Kripex.SetIndicatorParameters("CciPeriod", İftcci2kripexCciPeriod1); RegisterUserIndicator(IFTCCI2Kripex, Symbol, SymbolPeriod, OHLCType.Close, 5);

 

IFTSTOCHKripex = new IFTSTOCHKripex();

 

IFTSTOCHKripex.SetIndicatorParameters("MovPeriod", İftstochkripexMovPeriod1);

IFTSTOCHKripex.SetIndicatorParameters("StochK", İftstochkripexStochK1);

IFTSTOCHKripex.SetIndicatorParameters("StochD", İftstochkripexStochD1); RegisterUserIndicator(IFTSTOCHKripex, Symbol, SymbolPeriod, OHLCType.Close, 5);

 

IFTRSIKripex = new IFTRSIKripex();

 

IFTRSIKripex.SetIndicatorParameters("MovPeriod", İftrsikripexMovPeriod1);

IFTRSIKripex.SetIndicatorParameters("RsiPeriod", İftrsikripexRsiPeriod1); RegisterUserIndicator(IFTRSIKripex, Symbol, SymbolPeriod, OHLCType.Close, 5);

 

 

 

AddColumns(4);

SetColumnText(0, "SON");

SetColumnText(1, "CCI");

SetColumnText(2, "STOCH");

SetColumnText(3, "RSI");

 

 

}

 

 

/// <summary>

/// Eklenen sembollerin bardata'ları ve indikatorler güncellendikçe bu fonksiyon tetiklenir.

/// </summary>

/// <param name="barData">Bardata ve hesaplanan gerçekleşen işleme ait detaylar</param>

public override bool OnExplorer(List<BarDataEventArgs> bardatas)

{

 

var bardata = bardatas.FirstOrDefault() ? .BarData;

SetColumn(0, bardata.Close);

SetColumn(1, IFTCCI2Kripex.Value[0][IFTCCI2Kripex.CurrentIndex]);

SetColumn(2, IFTSTOCHKripex.Value[0][IFTSTOCHKripex.CurrentIndex]);

SetColumn(3, IFTRSIKripex.Value[0][IFTRSIKripex.CurrentIndex]);

 

if (IFTCCI2Kripex.Value[0][IFTCCI2Kripex.CurrentIndex] > -0.5m && IFTSTOCHKripex.Value[0][IFTSTOCHKripex.CurrentIndex] > -0.5m && CrossAbove(IFTRSIKripex, 0.49m, 0))

{

return true;

}

return false;

 

 

}

}

}
0 0

Aşağıdaki gibi kullanabilirsiniz.

using System;
using System.Collections.Generic;
using System.Linq;
using Matriks.Data.Symbol;
using Matriks.Engines;
using Matriks.Indicators;
using Matriks.Symbols;
using Matriks.Trader.Core;
using Matriks.Trader.Core.Fields;
using Matriks.Lean.Algotrader.AlgoBase;
using Matriks.Lean.Algotrader.Models;
using Matriks.Lean.Algotrader.Trading;
using Matriks.AI;
using Matriks.AI.AiParameters;
using Matriks.AI.Data;
using Matriks.Trader.Core.TraderModels; 

namespace Matriks.Lean.Algotrader
{

	public class INVERSE : Explorer

	{
		// 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.

		[Parameter(9)]
		public int İftcci2kripexMovPeriod1;

 		[Parameter(89)]
		public int İftcci2kripexCciPeriod1;

 		[Parameter(9)]
		public int İftstochkripexMovPeriod1;

 		[Parameter(89)]
		public int İftstochkripexStochK1;

 		[Parameter(3)]
		public int İftstochkripexStochD1;

 		[Parameter(9)]
		public int İftrsikripexMovPeriod1;

 		[Parameter(89)]
		public int İftrsikripexRsiPeriod1;
 

		MatriksIndicator IFTCCI2Kripex;

		MatriksIndicator IFTSTOCHKripex;

		MatriksIndicator IFTRSIKripex;

 
		public override void OnInit()
		{
	
			IFTCCI2Kripex = new IFTCCI2Kripex();
			IFTCCI2Kripex.SetIndicatorParameters("MovPeriod", İftcci2kripexMovPeriod1);
			IFTCCI2Kripex.SetIndicatorParameters("CciPeriod", İftcci2kripexCciPeriod1); RegisterUserIndicator(IFTCCI2Kripex, Symbol, SymbolPeriod, OHLCType.Close, 5);

 			IFTSTOCHKripex = new IFTSTOCHKripex();
			IFTSTOCHKripex.SetIndicatorParameters("MovPeriod", İftstochkripexMovPeriod1);
			IFTSTOCHKripex.SetIndicatorParameters("StochK", İftstochkripexStochK1);
			IFTSTOCHKripex.SetIndicatorParameters("StochD", İftstochkripexStochD1); RegisterUserIndicator(IFTSTOCHKripex, Symbol, SymbolPeriod, OHLCType.Close, 5);

 			IFTRSIKripex = new IFTRSIKripex();
			IFTRSIKripex.SetIndicatorParameters("MovPeriod", İftrsikripexMovPeriod1);
			IFTRSIKripex.SetIndicatorParameters("RsiPeriod", İftrsikripexRsiPeriod1); RegisterUserIndicator(IFTRSIKripex, Symbol, SymbolPeriod, OHLCType.Close, 5);

 			AddColumns(4);
			SetColumnText(0, "SON");
			SetColumnText(1, "CCI");
			SetColumnText(2, "STOCH");
			SetColumnText(3, "RSI");

 		}

 

 

		/// <summary>
		/// Eklenen sembollerin bardata'ları ve indikatorler güncellendikçe bu fonksiyon tetiklenir.
		/// </summary>
		/// <param name="barData">Bardata ve hesaplanan gerçekleşen işleme ait detaylar</param>		
		public override bool OnExplorer(List<BarDataEventArgs> bardatas)
		{
 			var bardata = bardatas.FirstOrDefault() ? .BarData;
			SetColumn(0, bardata.Close);
			SetColumn(1, IFTCCI2Kripex.Value[0][IFTCCI2Kripex.CurrentIndex]);
			SetColumn(2, IFTSTOCHKripex.Value[0][IFTSTOCHKripex.CurrentIndex]);
			SetColumn(3, IFTRSIKripex.Value[0][IFTRSIKripex.CurrentIndex]);

 			if ((IFTCCI2Kripex.Value[0][IFTCCI2Kripex.CurrentIndex] > -0.5m || IFTSTOCHKripex.Value[0][IFTSTOCHKripex.CurrentIndex] > -0.5m) && CrossAbove(IFTRSIKripex, 0.49m, 0))
			{
				return true;
			}

			return false;

		}
	}
}

 

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,469 soru
8,418 cevap
4,744 yorum
18,717 kullanıcı