0 beğenilme 0 beğenilmeme
291 kez görüntülendi

merhaba hazırda

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;

//=================================================ACIKLAMA=========================================================//
// Derinlik datasi kullanarak her bar kapanisinda calisir (varsayilan 1 dakikalik barlar).Sadece ilk seviyeye bakar //
// Alis ve satista bekleyen emirlerin lot sayilarini karsilastirir. Ornegin ÇARPANA 8 degeri atarsak				//
// bu ilk seviyedeki alislari ve satislari toplar, alislarin toplami satislarin toplaminin 8 katindan buyuk			// 
// ise alim emri gonderir, satis emri de ayni mantikla yapilir. Bilgiler debug penceresine basilmaktadir.			//

namespace Matriks.Lean.Algotrader
{
    public class Depth3 : 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.Min)]
		public SymbolPeriod SymbolPeriod;

		[Parameter(1)]
		public decimal SellOrderQuantity;

		[Parameter(1)]
		public decimal BuyOrderQuantity;
		
		[Parameter(8)]
		public int çarpan;
		 
		public override void OnInit()
		{
			AddSymbol(Symbol, SymbolPeriod);
			AddSymbolMarketDepth(Symbol);

			//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);
			
			// Algoritmanın kalıcı veya geçici sinyal ile çalışıp çalışmayacağını belirleyen fonksiyondur.
			// true geçerseniz algoritma sadece yeni bar açılışlarında çalışır, bu fonksiyonu çağırmazsanız veya false geçerseniz her işlem olduğunda algoritma tetiklenir.
			WorkWithPermanentSignal(true);

			//Alttaki fonksiyon açıldıktan sonra parametre olarak verilen saniyede bir OnTimer fonksiyonu tetiklenir.
			//SetTimerInterval(1);
		}

		/// <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(BarDataEventArgs barData)
		{
			var depths = GetMarketDepth(Symbol);
			var BO_size = depths.AskRows[0].Size;
			var BO = depths.AskRows[0].Price;
			var BO1 = depths.AskRows[1].Price;

			var BB_size = depths.BidRows[0].Size;
			var BB = depths.BidRows[0].Price;
			var BB1 = depths.BidRows[1].Price;
			Debug("best offer " + BO + " size = " + BO_size);
			Debug("best bid " + BB + " size = " + BB_size);
			Debug("Current Ratio(BB/BO size) = " + Math.Round(BB_size / BO_size, 2));
			Debug("*******************************************************");

			if (BO_size > çarpan * BB_size)
			{
				SendMarketOrder(Symbol, SellOrderQuantity, OrderSide.Sell);
				Debug("Satış Emri Gönderildi");
			}

			if (BB_size > çarpan * BO_size)
			{
				SendMarketOrder(Symbol, BuyOrderQuantity, OrderSide.Buy);
				Debug("Alış Emri Gönderildi");
			}
		}

		/// <summary>
		/// Strateji durdurulduğunda bu fonksiyon tetiklenir.
		/// </summary>
		public override void OnStopped()
		{
		}
	}
}

olan derinlik3 stratejisinde sadece 1ci kademeyi topluyor buna ek olarak 2 ve 3 cü kademeyide ekleyebilirmisiniz

MatriksMobileIQ kategorisinde (54 puan) tarafından | 291 kez görüntülendi

Bu soruya cevap vermek için lütfen giriş yapınız veya kayıt olunuz.

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,637 soru
7,640 cevap
4,448 yorum
10,951 kullanıcı