Merhaba, aşağıdaki örneği inceleyebilirsiniz.
Fiyat trendin üstündeyse çalışacak bir strateji örneğidir.
Mutlaka önce deneme hesabında test ediniz.
Daha sonra gerçek hesapta ufak miktarlarla deneyiniz.
Doğru çalıştığına emin olmadan kullanmayınız.
Bir sorunuz olursa iqdestek@matriksdata.com adresine mail atabilirsiniz.
İyi çalışmalar. Kolay gelsin.
using System;
using System.Collections.Generic;
using System.Linq;
using Matriks;
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 TrendStratejisi : MatriksAlgo
{
[SymbolParameter("EREGL")]
public string Symbol;
[Parameter(SymbolPeriod.Day)]
public SymbolPeriod SymbolPeriod;
[Parameter(14)]
public int AlphatrendPeriod1;
[Parameter(1)]
public decimal AlphatrendCoeff1;
[Parameter(Momentum.MFI)]
public Momentum AlphatrendMomentum1;
[Parameter(1)]
public decimal OrderQuantity1;
[Parameter(1)]
public decimal OrderQuantity2;
AlphaTrend alphaTrend;
ITrend trend;
public override void OnInit()
{
trend = MyTrend(Symbol, SymbolPeriod, new DateTime(2021, 12, 15, 0, 0, 0), 31.5511908802194m, new DateTime(2023, 12, 20, 0, 0, 0), 31.3618670080073m);
alphaTrend = AlphaTrendIndicator(Symbol, SymbolPeriod, OHLCType.Close, AlphatrendPeriod1, AlphatrendCoeff1, AlphatrendMomentum1);
SendOrderSequential(true, Side.Buy);
WorkWithPermanentSignal(true);
DrawTrend(trend);
}
public override void OnDataUpdate(BarDataEventArgs barData)
{
var BardataModel = GetBarData(Symbol, SymbolPeriod);
if (barData.BarData.Close > trend.CurrentValue) // Fiyat trendin üstündeyse
{
if (CrossAbove(alphaTrend, alphaTrend, 1, 0))
{
SendMarketOrder(Symbol, OrderQuantity1, OrderSide.Buy, includeAfterSession:false);
Debug("Alış emri gönderildi");
}
if (CrossBelow(alphaTrend, alphaTrend, 1, 0))
{
SendMarketOrder(Symbol, OrderQuantity2, OrderSide.Sell, includeAfterSession:false);
Debug("Satış emri gönderildi");
}
}
}
}
}