0 beğenilme 0 beğenilmeme
492 kez görüntülendi
Merhaba, çalışan algo sistemin yaptığı işlemi mail atması gibi bir opsiyon var mı? veya yapılabilir mi?

Mesela DD.MM.YY Tarihinde  hh:mm:ss saatinde XXX adlı strateji  Y Hissesi N adet alım gibi.
Algoritmik Trading kategorisinde (582 puan) tarafından | 492 kez görüntülendi

1 cevap

0 beğenilme 0 beğenilmeme
En İyi Cevap

Merhabalar,

çalışan algo sistemin yaptığı işlemi mail atması gibi bir opsiyon var mı? veya yapılabilir mi?

Evet var,yapılabilir.

Bununla alakalı aşağıya bir örnek yapı ekledim.

Lütfen inceleyiniz.

using System;
using System.Collections.Generic;
using System.Linq;
using Matriks.Data.Symbol;
using Matriks.Engines;
using Matriks.Indicators;
using Matriks.Symbols;
using Matriks.Trader.Core;
using Matriks.Trader.Core.Fields;
using Matriks.Lean.Algotrader.AlgoBase;
using Matriks.Lean.Algotrader.Models;
using Matriks.Lean.Algotrader.Trading;
using Matriks.AI;
using Matriks.AI.AiParameters;
using Matriks.AI.Data;
using System.Net.Mail;
using System.Net;
using Matriks.Trader.Core.TraderModels;
using System.Text;


namespace Matriks.Lean.Algotrader
{
	public class EmailNotificationStrategy : 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("VET_USDT_BIN")]
			public string Symbol1;


		[Parameter(SymbolPeriod.Min15)]
			public SymbolPeriod SymbolPeriod1;


		[Parameter(3)]
			public int MavilimwFirstMovPeriod1;

		[Parameter(5)]
			public int MavilimwSecondMovPeriod1;

		[Parameter(500)]
			public decimal OrderQuantity1;



		MAVILIMW mavilimw;



		public override void OnInit()
		{

			mavilimw = MAVILIMWIndicator(Symbol1, SymbolPeriod1, MavilimwFirstMovPeriod1, MavilimwSecondMovPeriod1);

			SendOrderSequential(true, Side.Buy);
			WorkWithPermanentSignal(false);

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

			//Alttaki fonksiyon ile tanımlanan sembol ile ilgili haber geldiğinde OnNewsReceived fonksiyonu tetiklenir.
			//AddNewsSymbol(Symbol);

			//Alttaki fonksiyon ile tanımlanan anahtar kelime ile ilgili haber geldiğinde OnNewsReceived fonksiyonu tetiklenir.
			//AddNewsKeyword("KAP");
		}


		StringBuilder st = new StringBuilder();
		StringBuilder st1 = new StringBuilder();

		public override void OnDataUpdate(BarDataCurrentValues barDataCurrentValues)
		{
			var zaman = DateTime.Now;

			st.AppendLine("alış emri gönderildi.");
			st.AppendLine("Strateji Adı : " + this.AlgoName);
			st.AppendLine("Tarih/Saat : " + zaman);
			st.AppendLine("SembolAdı : " + Symbol1);

			st1.AppendLine("satış emri gönderildi.");
			st1.AppendLine("Strateji Adı : " + this.AlgoName);
			st1.AppendLine("Tarih/Saat : " + zaman);
			st1.AppendLine("SembolAdı : " + Symbol1);


			var barData1 = GetBarData(Symbol1, SymbolPeriod1);

			if (CrossBelow(mavilimw, barData1, OHLCType.Low, 0))
			{
				SendMarketOrder(Symbol1, OrderQuantity1, OrderSide.Buy, includeAfterSession:false);
				MailGonder(st.ToString());
			}

			if (CrossAbove(mavilimw, barData1, OHLCType.Low, 0))
			{
				SendMarketOrder(Symbol1, OrderQuantity1, OrderSide.Sell, includeAfterSession:false);
				MailGonder(st1.ToString());
			}


		}
		public void MailGonder(string icerik)
		{

			MailMessage mail = new MailMessage();
			SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com");

			// Gönderecek mail adresi
			mail.From = new MailAddress("gonderecekmailadresi@gmail.com");

			// gönderilecek adres
			mail.To.Add("gonderilecekmailadresi@gmail.com");

			mail.Subject = "MatriksIQ ";

			mail.Body += "    <!DOCTYPE html>     ";
			mail.Body += "    <html lang='tr'>     ";
			mail.Body += "    <head>     ";
			mail.Body += "    <title>MatriksIQ</title>     ";
			mail.Body += "    <meta charset='utf-8'>     ";
			mail.Body += "    <meta name='viewport' content='width=device-width, initial-scale=1'>     ";
			mail.Body += "    </head>     ";
			mail.Body += "    <body>     ";
			mail.Body += "    <div style=‘width: 100%; max-width: 1140px; padding: 0 15px; margin: 0 auto;’>     ";
			mail.Body += "    <div style=‘text-align: center;’>     ";
			mail.Body += "    <img src=‘https://destek.matriksdata.com/assets/images/category-logo-matriks.png‘ alt=‘Matriks Data’ width=‘400’ height=‘auto’>     ";
			mail.Body += "    </div>     ";
			mail.Body += "    <h2 style=‘text-align: center; background-color: #539AC8; color: white; margin: 0 1px; padding: 10px 0;’>";
			mail.Body += icerik;
			mail.Body += "    </h2>     ";
			mail.Body += "    </div>     ";
			mail.Body += "    </body>     ";
			mail.Body += "    </html>    ";




			mail.BodyEncoding = System.Text.Encoding.GetEncoding(28599);
			mail.IsBodyHtml = true;
			SmtpServer.Port = 587;
			// mail adresi ve şifresi
			SmtpServer.Credentials = new System.Net.NetworkCredential("mailadresi@gmail.com", "mailadresisifresi");
			SmtpServer.EnableSsl = true;

			SmtpServer.Send(mail);
		}

		public override void OnOrderUpdate(IOrder order)
		{
			if (order.OrdStatus.Obj == OrdStatus.Filled && order.Side.Obj == Side.Sell)
			{
			}
		}

	}
}



İyi çalışmalar.

(11,069 puan) tarafından
tarafından seçilmiş
Mail atma özelliği matriks veri termeinalinde mevcut mudur
0 0
derlenebiliyormuş. ilki benim hatam imiş. teşekkürler.
0 0
Tekrardan ben :). Çalışıyor lakın aynı satır defalarca alt alta yazılmış geliyor, dev gibi: satış emri gönderildi. Strateji Adı : SablonAnilOzeksiV1Email Tarih/Saat : 13.04.2022 16:43:08 SembolAdı : F_DOHOL0422 Bu satırdan onlarca alt alta var sadece tarih dakika farklı. 1 er dk gibi ekleyerek yazmış. Tek satıra nasıl indirgeriz?
0 0
Gmail artık less secure app girişlerini desteklemeyeceğini açıkladı. Gmail dışında kullanabileceğimiz bir platform var mı?
0 0
yeni güncellemede mobil push eklemişler. Algo işlemler için. Ben deneyeceğim. muhtemelen maile gerek kalmayacak diye düşünüyorum. Kullanan varsa deneyim ve yorumunu paylaşabilir mi?
0 0
IQ Mobile'ı açınca, bilgisayardaki IQ verileri çekemiyor ve robotlar çalışmıyor diye biliyorum. O yüzden hiç kurup denemedim.
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,645 soru
7,642 cevap
4,448 yorum
11,097 kullanıcı