Selamlar,

Otofib indikatörü ile 100 barda yükselen fibo'da örneğin 23,6-38,2 aralığında bulunan veya 38,2-50 aralığında bulunan coinlerin tespiti için çok formül denedim lakin olumlu sonuç alamadım. Explorer'in yeni kullanıcılarındanım. Anlayabileceğim sadelikte yardımcı olabilirseniz sevinirim.

Örneğin aşağıdakini denedim ama olumlu sonuç alamadım.

 

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 Fibo618BardanBuyuk764Kucuk : 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(100)]

public int OtofiboyeniBarSayisi1;

 

MatriksIndicator OtoFiboYeni;

 

 

 

public override void OnInit()

{

OtoFiboYeni = new OtoFiboYeni();

 

OtoFiboYeni.SetIndicatorParameters("BarSayisi", OtofiboyeniBarSayisi1); RegisterUserIndicator(OtoFiboYeni, Symbol, SymbolPeriod, OHLCType.Close, 5);

 

 

 

AddColumns(2);

SetColumnText(0, "618BardanBuyuk");

SetColumnText(1, "764BardanKucuk");

 

 

}

 

 

/// <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 barData1 = GetBarData(Symbol, SymbolPeriod);

var ohlcData1 = GetSelectedValueFromBarData(barData1, OHLCType.Close);

 

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

SetColumn(0, OtoFiboYeni.Value[2][OtoFiboYeni.CurrentIndex] > ohlcData1);

SetColumn(1, OtoFiboYeni.Value[1][OtoFiboYeni.CurrentIndex] < ohlcData1);

 

if (OtoFiboYeni.Value[2][OtoFiboYeni.CurrentIndex] > ohlcData1 && OtoFiboYeni.Value[1][OtoFiboYeni.CurrentIndex] < ohlcData1)

{

return true;

}

return false;

 

 

}

}

}