Need someone adding EmailAlert to my EA, personal job.

MQL4 Uzmanlar Danışmanlık

İş tamamlandı

Tamamlanma süresi: 6 gün
Geliştirici tarafından geri bildirim
A great man! I really enjoy working with him. He exactly knows what he want. Thank you Beranrd!
Müşteri tarafından geri bildirim
Seyed is a treasure, he is dedicated, talented, patient and with a utmost seriousness on the client's needs. He is also a very humourous bloke to talk to. Will definitely work with him in the future

Şartname

#property version   "1.00"
#property strict

input bool   OpenBUY=True;
input bool   OpenSELL=True;
input bool   CloseBySignal=True;
input double StopLoss=20;
input double TakeProfit=10;
input double TrailingStop=20;
input int    RSIperiod=14;
input double BuyLevel=30;
input double SellLevel=80;
input bool   AutoLot=True;
input double Risk=1;
input double ManualLots=0.1;
input int    MagicNumber=123;
input string Koment="RSIea";
input int    Slippage=10;
//---
int OrderBuy,OrderSell;
int ticket;
int LotDigits;
double Trail,iTrailingStop;
int k;

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
   return(0);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int deinit()
  {
   return(0);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int start()
  {
  
   double stoplevel=MarketInfo(Symbol(),MODE_STOPLEVEL);
   OrderBuy=0;
   OrderSell=0;
   for(int cnt=0; cnt<OrdersTotal(); cnt++)
     {
      if(OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES))
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber && OrderComment()==Koment)
           {
            if(OrderType()==OP_BUY) OrderBuy++;
            if(OrderType()==OP_SELL) OrderSell++;
            if(TrailingStop>0)
              {
               iTrailingStop=TrailingStop;
               if(TrailingStop<stoplevel) iTrailingStop=stoplevel;
               Trail=iTrailingStop*Point;
               double tsbuy=NormalizeDouble(Bid-Trail,Digits);
               double tssell=NormalizeDouble(Ask+Trail,Digits);
               if(OrderType()==OP_BUY && Bid-OrderOpenPrice()>Trail && Bid-OrderStopLoss()>Trail)
                 {
                  ticket=OrderModify(OrderTicket(),OrderOpenPrice(),tsbuy,OrderTakeProfit(),0,Blue);
                 }
               if(OrderType()==OP_SELL && OrderOpenPrice()-Ask>Trail && (OrderStopLoss()-Ask>Trail || OrderStopLoss()==0))
                 {
                  ticket=OrderModify(OrderTicket(),OrderOpenPrice(),tssell,OrderTakeProfit(),0,Blue);
                 }
              }
           }
     }
   double rsim1=iRSI(Symbol(),1,RSIperiod,PRICE_CLOSE,0);
   double rsim5=iRSI(Symbol(),5,RSIperiod,PRICE_CLOSE,1);
   double rsim15=iRSI(Symbol(),15,RSIperiod,PRICE_CLOSE,1);
   double rsim30=iRSI(Symbol(),30,RSIperiod,PRICE_CLOSE,1);
   double rsim60=iRSI(Symbol(),60,RSIperiod,PRICE_CLOSE,1);

// double HTb=iCustom(Symbol(),0,"HalfTrend-1.02",0,0); //buy
// double HTs=iCustom(Symbol(),0,"HalfTrend-1.02",1,0); //buy
//--- open position
   if(OpenSELL && OrderSell<1 && rsim1>50) OPSELL();
   if(OpenBUY  && OrderBuy<1  && rsim1<50) OPBUY();
//--- close position by signal
   if(CloseBySignal)
     {
      if(OrderBuy>0  && rsim1<45) CloseBuy();
      if(OrderSell>0 && rsim1>65)  CloseSell();
     }
//---
   return(0);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OPBUY()
  {
   double StopLossLevel;
   double TakeProfitLevel;
   if(StopLoss>0) StopLossLevel=Bid-StopLoss*Point; else StopLossLevel=0.0;
   if(TakeProfit>0) TakeProfitLevel=Ask+TakeProfit*Point; else TakeProfitLevel=0.0;

   ticket=OrderSend(Symbol(),OP_BUY,LOT(),Ask,Slippage,StopLossLevel,TakeProfitLevel,Koment,MagicNumber,0,DodgerBlue);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OPSELL()
  {
   double StopLossLevel;
   double TakeProfitLevel;
   if(StopLoss>0) StopLossLevel=Ask+StopLoss*Point; else StopLossLevel=0.0;
   if(TakeProfit>0) TakeProfitLevel=Bid-TakeProfit*Point; else TakeProfitLevel=0.0;
//---
   ticket=OrderSend(Symbol(),OP_SELL,LOT(),Bid,Slippage,StopLossLevel,TakeProfitLevel,Koment,MagicNumber,0,DeepPink);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void CloseSell()
  {
   int  total=OrdersTotal();
   for(int y=OrdersTotal()-1; y>=0; y--)
     {
      if(OrderSelect(y,SELECT_BY_POS,MODE_TRADES))
         if(OrderSymbol()==Symbol() && OrderType()==OP_SELL && OrderMagicNumber()==MagicNumber)
           {
            ticket=OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),5,Black);
           }
     }
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void CloseBuy()
  {
   int  total=OrdersTotal();
   for(int y=OrdersTotal()-1; y>=0; y--)
     {
      if(OrderSelect(y,SELECT_BY_POS,MODE_TRADES))
         if(OrderSymbol()==Symbol() && OrderType()==OP_BUY && OrderMagicNumber()==MagicNumber)
           {
            ticket=OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),5,Black);
           }
     }
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
double LOT()
  {
   double lotsi;
   double ilot_max =MarketInfo(Symbol(),MODE_MAXLOT);
   double ilot_min =MarketInfo(Symbol(),MODE_MINLOT);
   double tick=MarketInfo(Symbol(),MODE_TICKVALUE);
//---
   double  myAccount=AccountBalance();
//---
   if(ilot_min==0.01) LotDigits=2;
   if(ilot_min==0.1) LotDigits=1;
   if(ilot_min==1) LotDigits=0;
//---
   if(AutoLot)
     {
      lotsi=NormalizeDouble((myAccount*Risk)/10000,LotDigits);
        } else { lotsi=ManualLots;
     }
//---
   if(lotsi>=ilot_max) { lotsi=ilot_max; }
//---
   return(lotsi);
  }
//+------------------------------------------------------------------+

The EA is as above, the trade logic is preposterous, solely put there for the purpose of testing the Email alerts quickly. 

I would like to add Email alert features that functions with the below requirements,

1. It doesn't change my current EA syntax basic structure drastically. 

2. It sends me an email alert every time a trade is opened, and each time a trade is closed via either close-trade logic, stop loss, take profit, or trailing stop, the email needs to include Symbol, order type, order size, order open time and price, order close time and price( if it is closing a trade), order final profits( for closing trades), account balance and account equity at the time of the trade open or close.

3. The email alert feature should have a stable performance, as the EA will be running 24/7, I don't want to have errors like "Mail: not enough space for ' ' " or others.

4. A detailed explanation for the feature logic so that I can understand in order to edit it according to my needs.

4. A timely delivery is a must.


Thanks for your time and let me know if you are up to the task.

Yanıtlandı

1
Geliştirici 1
Derecelendirme
(365)
Projeler
412
36%
Arabuluculuk
35
26% / 57%
Süresi dolmuş
63
15%
Serbest
2
Geliştirici 2
Derecelendirme
(173)
Projeler
201
49%
Arabuluculuk
18
11% / 44%
Süresi dolmuş
1
0%
Serbest
3
Geliştirici 3
Derecelendirme
(349)
Projeler
463
51%
Arabuluculuk
41
24% / 49%
Süresi dolmuş
149
32%
Serbest
4
Geliştirici 4
Derecelendirme
(365)
Projeler
507
40%
Arabuluculuk
159
17% / 74%
Süresi dolmuş
99
20%
Yüklendi
5
Geliştirici 5
Derecelendirme
(807)
Projeler
1127
43%
Arabuluculuk
47
49% / 23%
Süresi dolmuş
84
7%
Serbest
6
Geliştirici 6
Derecelendirme
(1306)
Projeler
1736
49%
Arabuluculuk
55
67% / 16%
Süresi dolmuş
38
2%
Serbest
7
Geliştirici 7
Derecelendirme
(73)
Projeler
85
44%
Arabuluculuk
10
40% / 50%
Süresi dolmuş
9
11%
Serbest
8
Geliştirici 8
Derecelendirme
(1156)
Projeler
1462
63%
Arabuluculuk
21
57% / 10%
Süresi dolmuş
43
3%
Serbest
9
Geliştirici 9
Derecelendirme
(33)
Projeler
35
40%
Arabuluculuk
11
9% / 91%
Süresi dolmuş
4
11%
Serbest
Yayınlandı: 4 kod
10
Geliştirici 10
Derecelendirme
(361)
Projeler
644
26%
Arabuluculuk
92
72% / 14%
Süresi dolmuş
12
2%
Çalışıyor
Yayınlandı: 1 kod
11
Geliştirici 11
Derecelendirme
(16)
Projeler
17
24%
Arabuluculuk
1
0% / 0%
Süresi dolmuş
2
12%
Serbest

Proje bilgisi

Bütçe
30+ USD
Son teslim tarihi
to 2 gün