yapılan işlem mail atılması
- Soruldu
- Kategori
- Algoritmik Trading
- Görüntülenme
- 1.475 görüntülenme
- Durum
- Çözüldü
Mesela DD.MM.YY Tarihinde hh:mm:ss saatinde XXX adlı strateji Y Hissesi N adet alım gibi.
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.
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.
Sitenin çalışması için gerekli çerezleri kullanıyoruz. Ziyaretleri anlamak için analitik çerezleri yalnızca onayınızla kullanırız. Çerez Politikası