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

sonraki gün için aracı kuruma 18:15:00 itibariyle otomatik emir oluşturma nasıl yapılır.

Soruldu
Kategori
Diğer
Görüntülenme
2.131 görüntülenme
Durum
Çözüldü
sonraki gün için aracı kuruma 18:15:00 itibariyle otomatik emir oluşturma nasıl yapılır.

örnek: thyao hissesi yarın tavan fiyatı 11 lira. emir listesinde önde yer alabilmek için yapıkredi 18:15:00 sonraki gün talimatını otomatik versin.
Paylaş

1 Cevap

5

Kabul edilen cevap

Merhaba,

Aşağıdaki stratejiyi Matriks deneme ortamından ya da gerçek hesaplarla küçük miktarlar test edip kullanabilirsiniz.

Strateji çalıştırırken alış satış yönünü belirleyebilirsiniz.

Emiri ister manuel fiyattan ister tavan tabandan gönderebilirsiniz.

Not: Strateji pc saatine göre emir gönderir.

Stratejinin adının ZamanliEmirGonderme olmasına dikkat ediniz.

***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 System.Windows.Media;
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 ZamanliEmirGonderme : 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.

		// işlem yapılacak sembol
		[SymbolParameter("GARAN")]
		public string Symbol;

		// alış satış miktarı
		[Parameter(5)]
		public decimal OrderQuantity;

		// manuel alış satış fiyatı
		[Parameter(7)]
		public decimal LimitPrice;

		// emrin iletilme saati - saat:dakika:saniye
		[Parameter("18:10:00")]
		public string SendTime;

		// emir yönü
		// alış için true, satış için false yapması gerekir
		[Parameter(true)]
		public bool IsBuyOrder;

		// emir yönüne göre taban tavandan emir iletilir
		// seçilirse taban tavandan
		// seçilmezse LimitPrice göre emir gönderir
		[Parameter(false)]
		public bool TavanTabanFiyattanMI;

		// emri gönderildikten sonra strateji durudurulur.
		public bool AktifMI = true;

		public SymbolPeriod SymbolPeriod = SymbolPeriod.Day;
		/// <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);
			AddSymbolMarketData(Symbol);
			// 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);

			//Eger 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.All);
			//Alttaki fonksiyon açıldıktan sonra parametre olarak verilen saniyede bir OnTimer fonksiyonu tetiklenir.
			SetTimerInterval(1);
		}

		public override void OnInitComplated()
		{
			Debug("Emriniz saat " + SendTime + " gönderilecek.");
		}

		/// <summary>
		/// SetTimerInterval fonksiyonu ile belirtilen sürede bir bu fonksiyon tetiklenir.
		/// </summary>
		public override void OnTimer()
		{
			if (AktifMI)
			{
				var time = TimeSpan.Parse(SendTime);
				var now = DateTime.Now.TimeOfDay;

				if (time.Hours == now.Hours && time.Minutes == now.Minutes && time.Seconds == now.Seconds)
				{
					OrderSide side = IsBuyOrder? OrderSide.Buy:OrderSide.Sell;

					if (TavanTabanFiyattanMI && IsBuyOrder)
					{
						LimitPrice = GetMarketData(Symbol, SymbolUpdateField.LimitUp);
					}else if (TavanTabanFiyattanMI && !IsBuyOrder)
					{
						LimitPrice = GetMarketData(Symbol, SymbolUpdateField.LimitDown);
					}

					SendLimitOrder(Symbol, OrderQuantity, side, LimitPrice);

					if (IsBuyOrder)
					{
						Debug("Alış emri gönderildi.");
					}else
					{
						Debug("Satış emri gönderildi.");
					}
					AktifMI = false;

				}else if ((time - now).Seconds <= 10 && (time - now).Seconds >= 0 && time.Hours == now.Hours && time.Minutes == now.Minutes)
				{
					Debug("kalan süre: " + (time - now).Seconds + "sn");
				}
			}
		}

	}
}

 

Unblocked Games offering a wide range of experiences: action, puzzle, platform, racing, clicker mechanics, strategy, sports, even horror.
https://unblocked1games.github.io
BağlantıBayrakladüzenlendi · KripexKripexMatriks Destek16.499

Yorumlar (1)

  • ▲0
    Fiyatı elle girdiğimizde yukarıdaki kod başarılı ama tavan taban fiyatlar emir saatine 2dk kala anca görüntüleniyor ve Tavan , Taban fiyattan gönderme yaptığımızda emir gitmiyor kod hatalı olabilir mi? Tavandan emir göndermiyor.

Cevabınız

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