0 beğenilme 0 beğenilmeme
140 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 | 140 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,955 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,434 soru
9,389 cevap
5,098 yorum
37,567 kullanıcı