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

yapılan işlem mail atılması

Soruldu
Görüntülenme
1.475 görüntülenme
Durum
Çözüldü
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.
Paylaş

1 Cevap

0

Kabul edilen 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.

BağlantıBayrakladüzenlendi · patozemasiyangMatriks Destek11.113

Yorumlar (5)

  • ▲0
    derlenebiliyormuş. ilki benim hatam imiş. teşekkürler.
  • ▲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
    Gmail artık less secure app girişlerini desteklemeyeceğini açıkladı. Gmail dışında kullanabileceğimiz bir platform var mı?
  • ▲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
    IQ Mobile'ı açınca, bilgisayardaki IQ verileri çekemiyor ve robotlar çalışmıyor diye biliyorum. O yüzden hiç kurup denemedim.

Cevabınız

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