Matriks Destek ve Yardım Platformu

Matriks Ürünleri ile ilgili tüm sorularınız için bizlere buradan ulaşabilirsiniz. Daha önce sorulan soruları ve verilen cevapları ilgili sekmelerden ve arama üzerinden inceleyebilirsiniz. Sağ taraftaki kategoriler üzerinden İlgilendiğiniz özelliklerle ilgili soruları filtreleyebilirsiniz. Soru ve cevapları sosyal medyada paylaşabilirsiniz. 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.

0

BackTest Optimizasyonunda İndikatörler Gün Hariç Başka Zaman Dilimleri Kullanılamıyor

Soruldu
Görüntülenme
291 görüntülenme
Durum
Cevaplandı

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...
			}
		}

	}
}

 

 

 

Paylaş

1 Cevap

-1

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

 

BağlantıBayraklaemresMatriks Destek6.795

Cevabınız

Cevap yazmak için giriş yapın.Giriş yapKayıt ol