0 beğenilme 0 beğenilmeme
552 kez görüntülendi
Merhabalar kolay gelsin öncelikle tillson stratejinizi inceledim ve o stratejinize heikin ashi mumlarına göre al sat eklemek istiyorum ama bir türlü yapamadım sizden rica etcektim

özetle: tillson stratejiniz çok iyi çalışıyor lakin ben normal mumlar yerine heikin ashi üzerinden tillson stratejinizi çalıştırmak istiyorum

İşiniz rast gelsin tekrardan kolay gelsin sizleri seviyorum
Algoritmik Trading kategorisinde (12 puan) tarafından | 552 kez görüntülendi

1 cevap

0 beğenilme 0 beğenilmeme

 Merhabalar,

Dilerseniz aşağıdaki yapıyı inceleyebilirsiniz.

***STRATEJİLERİ TEST/DENEME ORTAMINDA SINAMADAN VE SİZİN İSTEDİĞİNİZ ŞEKİLDE ÇALIŞTIĞINA EMİN OLMADAN GERÇEK ORTAMDA HİÇBİR ZAMAN ÇALIŞTIRMAYINIZ ***

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;

namespace Matriks.Lean.Algotrader
{
	public class tmovheiken : MatriksAlgo
	{
		// Strateji çalıştırılırken kullanacağımız parametreler. Eğer sembolle ilgili bir parametre ise,
		// "SymbolParameter" ile, değilse "Parameter" ile tanımlama yaparız. Parantez içindeki değerler default değerleridir.

		[SymbolParameter("GARAN")]
		public string Symbol;

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

		[Parameter(1)]
		public int Quantity;

		[Parameter(3)]
		public int TillsonPeriod;

		[Parameter(0.7)]
		public decimal TillsonA;

		TMOV tmov;

		public override void OnInit()
		{

			var periodInfo = GetHeikinAshiPeriodInfo(SymbolPeriod);
			AddSymbol(Symbol, periodInfo);

			tmov = TMOVIndicator(Symbol, periodInfo, OHLCType.Close, TillsonPeriod, TillsonA);

			//Eger backtestte emri bir al bir sat seklinde gonderilmesi isteniyor bu true set edilir. 
			//Alttaki satırı silerek veya false geçerek emirlerin sirayla gönderilmesini engelleyebilirsiniz. 
			SendOrderSequential(true, Side.Buy);
			WorkWithPermanentSignal(true);
		}

		/// <summary>
		/// Eklenen sembollerin bardata'ları ve indikatorler güncellendikçe bu fonksiyon tetiklenir. 
		/// </summary>
		/// <param name="barData">Bardata ve hesaplanan gerçekleşen işleme ait detaylar</param>
		public override void OnDataUpdate(BarDataCurrentValues barDataCurrentValues)
		{
			var barData = GetBarData();
			var RefTilson1 = Ref(tmov, -1);
			var RefTilson2 = Ref(tmov, -2);

			// Al - T3>REF(T3,-1) AND REF(T3,-1)<REF(T3,-2)
			if (tmov.CurrentValue>RefTilson1 && RefTilson1 <= RefTilson2)
			{
				SendMarketOrder(Symbol, Quantity, OrderSide.Buy);
				Debug("Alis emri gonderildi");
			}

			// Sat - T3<REF(T3,-1) AND REF(T3,-1)>REF(T3,-2)
			if (tmov.CurrentValue<RefTilson1 && RefTilson1 >= RefTilson2)
			{
				SendMarketOrder(Symbol, Quantity, OrderSide.Sell);
				Debug("Satis emri gonderildi");
			}


		}
	}
}

İyi çalışmalar.

(11,059 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,800 kullanıcı