MatriksIQ Destek
Matriks Destek
Matriks Web Destek
Matriks Mobile Destek
0 beğenilme 0 beğenilmeme
38 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 (28 puan) tarafından | 38 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.

(960 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;

		}
	}
}

 

2,479 soru
2,372 cevap
2,028 yorum
1,713 kullanıcı