Merhabalar bu kodda 2 adet hata mesajı alıyorum. yardımcı olur musunuz ?

 

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 DOUBLE_ENV_V2 : 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("BTC_USDT_BIN")]

public string Symbol;

 

[Parameter(SymbolPeriod.Min)]

public SymbolPeriod SymbolPeriod;

 

[Parameter(1)]

public decimal OrderQuantity;

 

[Parameter(10)]

public int Inside_Period;

 

[Parameter(0.4)]

public decimal Inside_Band_Distance;

 

[Parameter(10)]

public int Outside_Period;

 

[Parameter(1.5)]

public decimal Outside_Band_Distance;

 

[Parameter(2)]

public int MovPeriod;

 

[Parameter(10)]

public int bolum;

 

 

[Parameter(20)]

public int kar;

 

 

ENV env_inside;

ENV env_outside;

MOV mov;

 

bool islemde = false;

decimal alisFiyati = 0;

 

 

/// <summary>

/// Strateji ilk çalıştırıldığında bu fonksiyon tetiklenir. Tüm sembole kayit işlemleri,

/// indikator ekleme, haberlere kayıt olma işlemleri burada yapılır.

/// </summary>

public override void OnInit()

{

env_inside = EnvelopeIndicator(Symbol, SymbolPeriod, OHLCType.Close, Inside_Period, Inside_Band_Distance, MovMethod.VAR);

 

env_outside = EnvelopeIndicator(Symbol, SymbolPeriod, OHLCType.Close, Outside_Period, Outside_Band_Distance, MovMethod.VAR);

 

mov = MOVIndicator(Symbol, SymbolPeriod, OHLCType.Close, MovPeriod, MovMethod.VAR);

 

AddSymbol(Symbol, SymbolPeriod);

 

 

// Algoritmanın kalıcı veya geçici sinyal ile çalışıp çalışmayacağını belirleyen fonksiyondur.

// true geçerseniz algoritma sadece yeni bar açılışlarında çalışır, bu fonksiyonu çağırmazsanız veya false geçerseniz her işlem olduğunda algoritma tetiklenir.

WorkWithPermanentSignal(true);

 

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

}

 

/// <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 void OnDataUpdate(BarDataEventArgs barData)

{

var barDataModel = GetBarData();

 

//CustomGraphic(barDataModel);

 

decimal alan = (env_inside.Up.CurrentValue - env_inside.Down.CurrentValue) / bolum;

decimal altSeviye = env_inside.Down.CurrentValue + alan;

decimal ustSeviye = env_inside.Up.CurrentValue - alan;

 

bool stoploss = barData.BarData.Close< env_outside.Down.CurrentValue ? true:false;

 

//if ((env_inside.Down.CurrentValue < mov.CurrentValue) & (mov.CurrentValue < altSeviye) & !islemde)

if ((env_inside.Down.CurrentValue < barData.BarData.Close) & (barData.BarData.Close < altSeviye) & !islemde)

{

alisFiyati = barData.BarData.Close;

buy(barData.BarData.Close);

 

}

 

if ((env_inside.Up.CurrentValue > barData.BarData.Close) & (barData.BarData.Close > ustSeviye) & islemde)

//if ((env_inside.Up.CurrentValue > mov.CurrentValue) & (mov.CurrentValue > ustSeviye) & islemde)

{

if (barData.BarData.Close>(alisFiyati + (alisFiyati * kar / 100)))

sell(barData.BarData.Close);

 

}

 

 

if (islemde & stoploss)

{

Debug("Zarar Kes Calisti");

sell(barData.BarData.Close);

}

 

 

if (CrossAbove(mov, env_inside.Up))

{

if (!islemde)

{

Debug("ic Envden Yukari Kirdi");

buy(barData.BarData.Close);

}

 

}

 

if (CrossBelow(mov, env_inside.Up))

{

if (islemde)

{

sell(barData.BarData.Close);

}

 

}

 

}

 

 

public void buy(decimal close)

{

SendMarketOrder(Symbol, OrderQuantity, (OrderSide.Buy));

islemde = true;

Debug("Alıs emri verildi.");

Debug("Env_inside.Up:" + env_inside.Up.CurrentValue);

Debug("Close:" + close);

Debug("Env_inside.Down:" + env_inside.Down.CurrentValue);

 

 

}

 

public void sell(decimal close)

{

SendMarketOrder(Symbol, OrderQuantity, (OrderSide.Sell));

islemde = false;

Debug("Satıs emri verildi.");

Debug("Env_inside.Up:" + env_inside.Up.CurrentValue);

Debug("Close:" + close);

Debug("Env_inside.Down:" + env_inside.Down.CurrentValue);

 

}

 

public void CustomGraphic(ISymbolBarData bardatamodel)

{

 

 

 

 

 

}

}

}