0 beğenilme 0 beğenilmeme
101 kez görüntülendi

Merhaba,

Aşağıdaki şekilde test amaçlı yazdığımı bir kod mevcut. Backtest optimizasyonunda indikatörün farklı zaman dilimlerinden değerlerini kullanmak istiyorum yalnız sadece Gün periyodunda backtest gerçekleşiyor. Diğer zaman dilimlerinin herhangi birine sıra geldiğinde optimizasyon sonlanıyor. Yorumlarınızı rica ederim;

 

using System;
using System.Collections.Generic;
using System.Linq;
using Matriks.Data.Symbol;
using Matriks.Engines;
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;
using Matriks.Data.Tick;
using Matriks.Enumeration;
using Matriks.IntermediaryInstitutionAnalysis.Enums;
using Newtonsoft.Json;

namespace Matriks.Lean.Algotrader
{

	public class Strateji1 : MatriksAlgo
	{
		[SymbolParameter("GARAN")]
		public string Symbol;
		
		[Parameter(SymbolPeriod.Day)]
		public SymbolPeriod SymbolPeriod;
		
		[Parameter(1)]
		public decimal BuyOrderQuantity;
		
		[Parameter(SymbolPeriod.Day)]
		public SymbolPeriod ATTimePeriod;

		[Parameter(14)]
		public int ATPeriod;

		[Parameter(1)]
		public decimal ATCoeff;
		
		public bool IsATActive
		{
			get; set;
		}

		public override void OnInit()
		{
			
			alphaTrend = AlphaTrendIndicator(Symbol, ATTimePeriod, OHLCType.Close, ATPeriod, ATCoeff, Momentum.MFI);
			IsATActive = false;
			
			AddSymbol(Symbol, SymbolPeriod);

			WorkWithPermanentSignal(true);
		}
		
		public override void OnDataUpdate(BarDataEventArgs barData)
		{
			IsATActive = CrossAbove(alphaTrend, alphaTrend, 1, 0) ? true: IsATActive;
			IsATActive = CrossBelow(alphaTrend, alphaTrend, 1, 0) ? false: IsATActive;
			
			if(IsATActive)
			{
				//Code...
			}
			else
			{
				//Code...
			}
		}

	}
}

 

 

 

Algoritmik Trading kategorisinde (34 puan) tarafından | 101 kez görüntülendi

1 cevap

0 beğenilme 1 beğenilmeme

Merhabalar,
Aşağıdaki kod bloklarını ekleyip test edebilirsiniz.

iyi çalışmalar dileriz.

AlphaTrend alphaTrend;

if (CrossAbove(alphaTrend, alphaTrend, 1, 0))
{
	SendMarketOrder(Symbol, 1, OrderSide.Buy);
}
if (CrossBelow(alphaTrend, alphaTrend, 1, 0))
{
	SendMarketOrder(Symbol, 1, OrderSide.Sell);
}

 

(4,665 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.



9,293 soru
9,249 cevap
5,064 yorum
31,740 kullanıcı