23.03.2022
0
10
3484
100

Strateji içerisinde kullanıcı indikatörü gömülü AlphaTrend ile değiştirildi.

Kıvanç Özbilgiç'in yeni indikatörü olan Alpha Trend'in kullanıldığı stratejidir. Alpha Trend çizgilerinin birbirini kesmesi ile AL/SAT sinyalleri oluşur.

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 AlphaTrendStratejisi : MatriksAlgo
	{
		[SymbolParameter("GARAN")]
			public string Symbol;

		[Parameter(SymbolPeriod.Min5)]
			public SymbolPeriod SymbolPeriod;

		[Parameter(14)]
			public int AlphatrendPeriod;

		[Parameter(1)]
			public decimal AlphatrendCoeff;

		[Parameter(Momentum.MFI)]
			public Momentum AlphatrendMomentum;

		[Parameter(1)]
			public decimal BuyOrderQuantity;

		[Parameter(1)]
			public decimal SellOrderQuantity;

		AlphaTrend alphaTrend;

		public override void OnInit()
		{
			alphaTrend = AlphaTrendIndicator(Symbol, SymbolPeriod, OHLCType.Close, AlphatrendPeriod, AlphatrendCoeff, AlphatrendMomentum);

			SendOrderSequential(true, Side.Buy);
			WorkWithPermanentSignal(true);
		}

		public override void OnDataUpdate(BarDataEventArgs barData)
		{
			if (CrossAbove(alphaTrend, alphaTrend, 1, 0))
			{
				SendMarketOrder(Symbol, BuyOrderQuantity, OrderSide.Buy, includeAfterSession:false);
				Debug("Alış emri gönderildi");
			}
			if (CrossBelow(alphaTrend, alphaTrend, 1, 0))
			{
				SendMarketOrder(Symbol, SellOrderQuantity, OrderSide.Sell, includeAfterSession:false);
				Debug("Satış emri gönderildi");

			}
		}
	}
}

0 Yorum