MatriksIQ Destek
Matriks Destek
Matriks Web Destek
Matriks Mobile Destek
1 beğenilme 0 beğenilmeme
73 kez görüntülendi
Merhaba kolay gelsin. Ben stratejimde, otomatik olarak trend çizgileri çizdirmekteyim. Trend çizgimin üstüne çıkarsa alım, altına inerse satım yaptırıyorum. Ancak alım-satım işlemlerim bittiğinde, trend çizgimin yeni oluşan barlara göre tekrar çizdirmek istiyorum. Yani alım satım ikilisi tamamlandığında, trend stratejimin bir şekilde trend çizgilerini yenilesin istiyorum. Stratejiyi kapatıp açtığımda trend çizgilerim yenileniyor ancak ben bilgisayar başında olmadığım zamanlarda, stratejimi kapatıp açma şansımın olmadığı zamanlarda da stratejim ya kendini bir şekilde yeniden başlatmalı, ya da trend çizgilerim yenilenebilmeli. Bunu nasıl yapabilirim ?
Algoritmik Trading kategorisinde (94 puan) tarafından | 73 kez görüntülendi
0 0
Merhaba. Teste başlayacağım. Cevabınızı bekilyorum.

1 cevap

0 beğenilme 0 beğenilmeme

Merhaba,

Trendinizin kendini yenilemesini istiyorsanız oto trend kullanmanız gerekli. İsteğinize bağlı olarak yükselen veya düşen oto trend oluşturarak fiyatı takip edebilirsiniz. Örnek kod satırlarını aşağıda paylaşıyorum.

Yalnız dikkat etmeniz gereken durum oto trendlerde fiyat kırılmaları oluşmayacaktır.

İyi çalışmalar

using System;
using System.Collections.Generic;
using System.Linq;
using Matriks.Data.Symbol;
using Matriks.Engines;
using System.Windows.Media;
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 TrendTest : 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("BTC_USDT_BIN")]
		public string Symbol;

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


		ITrend myTrend;
		/// <summary>
		/// Strateji ilk çalıştırıldığında bu fonksiyon tetiklenir. Tüm sembole kayit işlemleri,
		/// indikator ekleme, haberlere kayıt olma işlemleri burada yapılır. 
		/// </summary>
		public override void OnInit()
		{
			AddSymbol(Symbol, SymbolPeriod);

			myTrend = MyTrend(Symbol, SymbolPeriod, 100, 0, TrendType.Increasing, true);
			//MyTrend fonksiyonu arac kutusundan default degerler ile getirilmistir.
			//Boylelikle hem hata alinmadan kod compile etmekte, hem de ornek degerler gosterilmektedir.
			//***Grafikte gorebileceginiz bir trend olusturmak icin lutfen bu degerleri degistirin***
			//(Kullanmak istediginiz MyTrend'e gore intellisense'de secenekleri gorebilirsiniz)
			//Symbol, SymbolPeriod sizin tarafinizdan tanimlanmis sembol ve periyotudur.
			//Parametre olarak tanimlanmadiysa ornek tanimlamalar: Symbol: "GARAN"
			//barCount(default=100) trend cizgisinin kac bari kapsayacagidir.
			//refIndex(default=0) son bardan kac bar once trend cizgisinin kapatilacagidir
			//(orn. 0 son bara kadar cekilir, 10 ise canli bardan 10 bar once trend cizgisi sonlandirilir.)
			//TrendType.Increasing veya TrendType.Decreasing yükselen/düşen trendler.
			//isAutoTrend(false) trend'i otomatik olarak cizip birakir. True yapilirsa, bari her yeni data ile gunceller.
			DrawTrend(myTrend, Colors.Red);

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

		/// <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 close = barDataCurrentValues.LastUpdate.Close;

			if (close == myTrend.CurrentValue)
			{
				Debug("Trend current value : " + myTrend.CurrentValue);
			}

		}
	}
}

 

(2,951 puan) tarafından
0 0
Cevap için teşekkür ederim. Ancak otomatik hareketli trendi biliyorum. Hareketsiz trend çizgimi, stratejimi kapatıp açmaya gerek kalmadan belirli zaman aralıkları ile yeniden çizdirmeyi nasıl yapabilirim ?
0 0
Merhaba, şuanda istediğiniz durumu sağlayacak bir komutumuz bulunmamakta. Birden fazla trend oluşturup bir trendin koşulu sağlandığında diğer trend ile işleme girilmeyi sağlayabilecek koşul oluşturabilirsiniz. İsterseniz stratejinizi veya trend komutlarını bizimle paylaşın istediğiniz durumu sağlayabilir miyiz bir inceleyelim.
0 0
Yardımcı olursanız gerçekten sevinirim. Bir video çekip egitim@matriksdata.cım adresine yollayacağım. Tam olarak nasıl bir şey istediğimi anlatmaya çalışacağım. Şimdiden teşekkür ederim.
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.



1,080 soru
1,117 cevap
1,290 yorum
667 kullanıcı