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