0 beğenilme 0 beğenilmeme
288 kez görüntülendi
Merhaba,

Kıvanç Beyin derslerinde bahsettiği ve hoşuma giden bazı (FRAMA, JMA, ZEMA, RMTA, McNMA, REMA, AhMA) indikatörleri bulamıyorum. Acaba isimleri mi değişik yoksa daha sonramı eklenecek?

Bu arada ALMA ile strateji hazırlarken (Yeşil AL-Kırmızı SAT) nasıl bir yol izlemem gerekiyor acaba?  Defalarca denedim ama indikatörü sihirbaza eklemekten ileri gidemedim! Örnek videoları da izliyorum ama ilerliyemiyorum... kendi ortalamasını mı alacağız yoksa ...?

kolaylıklar diliyorum
Algoritmik Trading kategorisinde (19 puan) tarafından | 288 kez görüntülendi

1 cevap

1 beğenilme 0 beğenilmeme

Merhaba,

Olmayanlar zamanla eklenecektir. Destek sayfasında arama yapınız. Kodu yazılmış olabilir. 

ALMA KAMA renk değişim stratejisinin kodu aşağıdadır. İnceleyiniz.

Kodun program içine alınması için:

STRATEJİ GÖNDER AL  DOSYA OLARAK – KOD OLARAK

https://destek.matriksdata.com/?qa=5334/matriksiq-algoritma-stratejilerin-g%C3%B6nderilmesi-alinmasi

https://www.youtube.com/playlist?list=PLj71ZIVGCIobe519VLhHORDUN1-BmGr4Y 

İ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 AlmaKamaRenkDegisimi : 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.Min5)]
		public SymbolPeriod SymbolPeriod;

		[Parameter(1)]
		public decimal BuyOrderQuantity;

		[Parameter(1)]
		public decimal SellOrderQuantity;

		[Parameter(5)]
		public int KamaPeriod;

		[Parameter(2)]
		public int KamaFastPeriod;

		[Parameter(31)]
		public int KamaSlowPeriod;

		[Parameter(9)]
		public int AlmaPeriod;

		[Parameter(6)]
		public int AlmaSigma;

		[Parameter(0.85)]
		public decimal AlmaOffset;

		ALMA alma;

		KAMA kama;

		/// <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()
		{
			kama = KAMAIndicator(Symbol, SymbolPeriod, KamaPeriod, KamaFastPeriod, KamaSlowPeriod);

			alma = ALMAIndicator(Symbol, SymbolPeriod, OHLCType.Close, AlmaPeriod, AlmaSigma, AlmaOffset);

			AddSymbol(Symbol, SymbolPeriod);

			//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>
		/// Init islemleri tamamlaninca, bardatalar kullanmaya hazir hale gelince bu fonksiyon tetiklenir. Data uzerinde bir defa yapilacak islemler icin kullanilir
		/// </summary>
		public override void OnInitComplated()
		{

		}

		/// <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 CurrentKama = kama.CurrentValue;
			var Ref1Kama = Ref(kama, -1);

			var CurrentAlma = alma.CurrentValue;
			var Ref1Alma = Ref(alma, -1);

			if (CurrentKama>Ref1Kama && CurrentAlma>Ref1Alma)
			{
				SendMarketOrder(Symbol, BuyOrderQuantity, OrderSide.Buy);
				Debug("Alis emri gonderildi");
			}

			if (CurrentKama<Ref1Kama && CurrentAlma<Ref1Alma)
			{
				SendMarketOrder(Symbol, SellOrderQuantity, OrderSide.Sell);
				Debug("Satis emri gonderildi");
			}

		}

		/// <summary>
		/// Gönderilen emirlerin son durumu değiştikçe bu fonksiyon tetiklenir.
		/// </summary>
		/// <param name="barData">Emrin son durumu</param>
		public override void OnOrderUpdate(IOrder order)
		{
			if (order.OrdStatus.Obj == OrdStatus.Filled)
			{

			}
		}
	}
}

 

 

 

(12,890 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.



7,632 soru
7,636 cevap
4,448 yorum
10,800 kullanıcı