0 beğenilme 0 beğenilmeme
449 kez görüntülendi
drawthis = MyTrend(Symbol, SymbolPeriod, new DateTime(2023, 5, 2, 17, 0, 0), 36.09m, new DateTime(2023, 7, 7, 16, 0, 0), 47.57m);

 

yukarıdaki ifadede bulunan trend bilgisini kodu değiştirmeden paramtere olarak nasıl tanımlayabiliriz. yapmak istediğim backtest yapmadan önce parametreleri belirlediğimiz ekrana trend bilgisini kopya yapıştır ile girmek ve sistemin bu trend ile çalışması.
Algoritmik Trading kategorisinde (193 puan) tarafından | 449 kez görüntülendi

1 cevap

0 beğenilme 0 beğenilmeme

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

 

(520 puan) tarafından
Hoş geldiniz, Matriks Destek Platformu sizlere sorularınızın hızlıca cevaplanması için bir ortam sağlar. Sorduğunuz ve cevapladığınız soruların ve yorumlarınızın aldığı oylar üzerinden puan kazanırsınız. Puan sistemine bağlı kampanyamızla ücretsiz kullanım avantajlarından faydalanabilirsiniz.



8,636 soru
8,590 cevap
4,821 yorum
19,790 kullanıcı