A trade alert for the attached Arbitrage MACD indicator.

Tarea técnica

I am currently using the attached Arbitrage MACD indicator. However, there are no signal alerts associated with this indicator.

I would like to receive notifications on my android device  the bar after a blue long arrow appears and the bar after a red short arrow appears.




This is the current code:

//+------------+-----------------------------------------------------+

//| v.22.04.07 |                                         ArrZZx2.mq4 |

//+------------+                                                     |

//|------------|              Bookkeeper, 2007, yuzefovich@gmail.com |

//+------------+-----------------------------------------------------+

#property copyright ""

#property link      "http://www.forexter.land.ru/indicators.htm"

//----

#property indicator_chart_window

#property indicator_buffers 8

#property indicator_color1  Yellow

#property indicator_color2  RoyalBlue

#property indicator_color3  Blue

#property indicator_color4  Blue

#property indicator_color5  Blue

#property indicator_color6  Red

#property indicator_color7  Blue

#property indicator_color8  Red

//--------------------------------------------------------------------

extern int    SR     =3;  // =3..4

extern int    SRZZ   =12; // =4..12..20

extern int    MainRZZ=20; // =12..20..54...

extern int    FP     =21;

extern int    SMF    =3;  // =1..5

extern bool   DrawZZ =false;

extern int    PriceConst=0; // 0 - Close

                            // 1 - Open

                            // 2 - High

                            // 3 - Low

                            // 4 - (H+L)/2

                            // 5 - (H+L+C)/3

                            // 6 - (H+L+2*C)/4

//extern string Prefix="ArrZZx2"; 

//--------------------------------------------------------------------

double        Lmt[];

double        LZZ[];

double        SA[];

double        SM[];

double        Up[];

double        Dn[];

double        pUp[];

double        pDn[];

//---------------------------------------------------------------------

int LTF[6]={0,0,0,0,0,0},STF[5]={0,0,0,0,0}; 

int MaxBar, nSBZZ, nLBZZ, SBZZ, LBZZ;

bool First=true;

int prevBars=0;

//---------------------------------------------------------------------

void MainCalculation(int Pos) {

if((Bars-Pos)>(SR+1)) SACalc(Pos); else SA[Pos]=0; 

if((Bars-Pos)>(FP+SR+2)) SMCalc(Pos); else SM[Pos]=0; return; }

//---------------------------------------------------------------------

void SACalc(int Pos) { int sw, i, w, ww, Shift; double sum; 

switch(PriceConst) {

case  0: 

  SA[Pos]=iMA(NULL,0,SR+1,0,MODE_LWMA,PRICE_CLOSE,Pos);

  break;

case  1: 

  SA[Pos]=iMA(NULL,0,SR+1,0,MODE_LWMA,PRICE_OPEN,Pos);

  break;

/*case  2: 

  SA[Pos]=iMA(NULL,0,SR+1,0,MODE_LWMA,PRICE_HIGH,Pos);

  break;

case  3: 

  SA[Pos]=iMA(NULL,0,SR+1,0,MODE_LWMA,PRICE_LOW,Pos);

  break;*/

case  4: 

  SA[Pos]=iMA(NULL,0,SR+1,0,MODE_LWMA,PRICE_MEDIAN,Pos);

  break;

case  5: 

  SA[Pos]=iMA(NULL,0,SR+1,0,MODE_LWMA,PRICE_TYPICAL,Pos);

  break;

case  6: 

  SA[Pos]=iMA(NULL,0,SR+1,0,MODE_LWMA,PRICE_WEIGHTED,Pos);

  break;

default: 

  SA[Pos]=iMA(NULL,0,SR+1,0,MODE_LWMA,PRICE_OPEN,Pos);

  break; }

for(Shift=Pos+SR+2;Shift>Pos;Shift--) { sum=0.0; sw=0; i=0; w=Shift+SR;

ww=Shift-SR; if(ww<Pos) ww=Pos;

while(w>=Shift) {i++; sum=sum+i*SnakePrice(w); sw=sw+i; w--; }

while(w>=ww) { i--; sum=sum+i*SnakePrice(w); sw=sw+i; w--; }

SA[Shift]=sum/sw; } return; }

//----

double SnakePrice(int Shift) {

switch(PriceConst) {

   case  0: return(Close[Shift]);

   case  1: return(Open[Shift]);

   /*case  2: return(High[Shift]);

   case  3: return(Low[Shift]);*/

   case  4: return((High[Shift]+Low[Shift])/2);

   case  5: return((Close[Shift]+High[Shift]+Low[Shift])/3);

   case  6: return((2*Close[Shift]+High[Shift]+Low[Shift])/4);

   default: return(Open[Shift]); } }

//---------------------------------------------------------------------

void SMCalc(int i) { double t, b;

for(int Shift=i+SR+2;Shift>=i;Shift--) {

t=SA[ArrayMaximum(SA,FP,Shift)]; b=SA[ArrayMinimum(SA,FP,Shift)];

SM[Shift]=(2*(2+SMF)*SA[Shift]-(t+b))/2/(1+SMF); } return; }

//---------------------------------------------------------------------

void LZZCalc(int Pos) { 

int i,RBar,LBar,ZZ,NZZ,NZig,NZag; 

i=Pos-1; NZig=0; NZag=0;

while(i<MaxBar && ZZ==0) { i++; LZZ[i]=0; RBar=i-MainRZZ; 

if(RBar<Pos) RBar=Pos; LBar=i+MainRZZ;

if(i==ArrayMinimum(SM,LBar-RBar+1,RBar)) { ZZ=-1; NZig=i; }

if(i==ArrayMaximum(SM,LBar-RBar+1,RBar)) { ZZ=1;NZag=i; } }

if(ZZ==0) return; NZZ=0;

if(i>Pos) { if(SM[i]>SM[Pos]) { if(ZZ==1) {

if(i>=Pos+MainRZZ && NZZ<5) { NZZ++; LTF[NZZ]=i; } NZag=i; 

LZZ[i]=SM[i]; } }

else { if(ZZ==-1) { if(i>=Pos+MainRZZ && NZZ<5) { NZZ++; LTF[NZZ]=i; }

NZig=i; LZZ[i]=SM[i]; } } }

while(i<LBZZ || NZZ<5) {  LZZ[i]=0; RBar=i-MainRZZ; 

if(RBar<Pos) RBar=Pos; LBar=i+MainRZZ;

if(i==ArrayMinimum(SM,LBar-RBar+1,RBar)) {

if(ZZ==-1 && SM[i]<SM[NZig]) { 

if(i>=Pos+MainRZZ && NZZ<5) LTF[NZZ]=i; LZZ[NZig]=0; LZZ[i]=SM[i]; 

NZig=i; }

if(ZZ==1) { if(i>=Pos+MainRZZ && NZZ<5) { NZZ++; LTF[NZZ]=i; } 

LZZ[i]=SM[i]; ZZ=-1; NZig=i; } }

if(i==ArrayMaximum(SM,LBar-RBar+1,RBar)) {

if(ZZ==1 && SM[i]>SM[NZag]) { 

if(i>=Pos+MainRZZ && NZZ<5) LTF[NZZ]=i; LZZ[NZag]=0; LZZ[i]=SM[i]; 

NZag=i; }

if(ZZ==-1) { if(i>=Pos+MainRZZ && NZZ<5) { NZZ++; LTF[NZZ]=i; } 

LZZ[i]=SM[i]; ZZ=1; NZag=i; } } i++; if(i>MaxBar) return; } 

nLBZZ=Bars-LTF[5]; LZZ[Pos]=SM[Pos]; return; }

//----

void SZZCalc(int Pos) { 

int i,RBar,LBar,ZZ,NZZ,NZig,NZag; 

i=Pos-1; NZig=0; NZag=0;

while(i<=LBZZ && ZZ==0) { i++; pDn[i]=0; pUp[i]=0; Dn[i]=0; Up[i]=0; 

Lmt[i]=0; RBar=i-SRZZ; if(RBar<Pos) RBar=Pos; LBar=i+SRZZ;

if(i==ArrayMinimum(SM,LBar-RBar+1,RBar)) { ZZ=-1; NZig=i; }

if(i==ArrayMaximum(SM,LBar-RBar+1,RBar)) { ZZ=1; NZag=i; } }

if(ZZ==0) return; NZZ=0;

if(i>Pos) { if(SM[i]>SM[Pos]) { if(ZZ==1) {

if(i>=Pos+SRZZ && NZZ<4) { NZZ++; STF[NZZ]=i; } NZag=i; 

Dn[i-1]=Open[i-1]; } }

else { if(ZZ==-1) { if(i>=Pos+SRZZ && NZZ<4) { NZZ++; STF[NZZ]=i; }

NZig=i; Up[i-1]=Open[i-1]; } } }

while(i<=LBZZ || NZZ<4) { pDn[i]=0; pUp[i]=0; Dn[i]=0; Up[i]=0; 

Lmt[i]=0; RBar=i-SRZZ; if(RBar<Pos) RBar=Pos; LBar=i+SRZZ;

if(i==ArrayMinimum(SM,LBar-RBar+1,RBar)) {

if(ZZ==-1 && SM[i]<SM[NZig]) { 

if(i>=Pos+SRZZ && NZZ<4) STF[NZZ]=i; Up[NZig-1]=0; Up[i-1]=Open[i-1]; 

NZig=i; } if(ZZ==1) { if(i>=Pos+SRZZ && NZZ<4) { NZZ++; STF[NZZ]=i; } 

Up[i-1]=Open[i-1]; ZZ=-1; NZig=i;  } }

if(i==ArrayMaximum(SM,LBar-RBar+1,RBar)) {

if(ZZ==1 && SM[i]>SM[NZag]) { 

if(i>=Pos+SRZZ && NZZ<4) STF[NZZ]=i; Dn[NZag-1]=0; Dn[i-1]=Open[i-1]; 

NZag=i; } if(ZZ==-1) { if(i>=Pos+SRZZ && NZZ<4) { NZZ++; STF[NZZ]=i; } 

Dn[i-1]=Open[i-1]; ZZ=1; NZag=i; } } i++; if(i>LBZZ) return; } 

nSBZZ=Bars-STF[4]; return; }

//---------------------------------------------------------------------

void ArrCalc() { int i,j,k,n,z=0; double p, b;

i=LBZZ; while(LZZ[i]==0) i--; j=i; p=LZZ[i]; i--; while(LZZ[i]==0) i--; 

if(LZZ[i]>p) z=1; if(LZZ[i]>0 && LZZ[i]<p) z=-1; p=LZZ[j]; i=j-1;  

while(i>0) { if(LZZ[i]>p) { z=-1; p=LZZ[i]; }

if(LZZ[i]>0 && LZZ[i]<p) { z=1;  p=LZZ[i]; }

if(z>0 && Dn[i]>0) { Lmt[i]=Open[i]; Dn[i]=0; }

if(z<0 && Up[i]>0) { Lmt[i]=Open[i]; Up[i]=0; }

if(z>0 && Up[i]>0) { if(i>1) { j=i-1; k=j-SRZZ+1; if(k<0) k=0; 

n=j; while(n>=k && Dn[n]==0) { pUp[n]=Up[i]; pDn[n]=0; n--; } } 

if(i==1) pUp[0]=Up[i]; } 

if(z<0 && Dn[i]>0) { if(i>1) { j=i-1; k=j-SRZZ+1; if(k<0) k=0; 

n=j; while(n>=k && Up[n]==0) { pDn[n]=Dn[i]; pUp[n]=0; n--; } } 

if(i==1) pDn[0]=Dn[i]; } 

i--; } return; }

//---------------------------------------------------------------------

void deinit() { 

return; }

//---------------------------------------------------------------------

int init() { IndicatorBuffers(8);

SetIndexBuffer(0,Lmt);

SetIndexStyle(0,DRAW_ARROW,EMPTY,2); SetIndexArrow(0,251);

SetIndexEmptyValue(0,0.0);

SetIndexBuffer(1,LZZ);

if(DrawZZ) {

SetIndexStyle(1,DRAW_SECTION,EMPTY,2);

SetIndexEmptyValue(1,0.0); }

else SetIndexStyle(1,DRAW_NONE);

SetIndexBuffer(2,SA); SetIndexStyle(2,DRAW_NONE);

SetIndexBuffer(3,SM); SetIndexStyle(3,DRAW_NONE);

SetIndexBuffer(4,Up); SetIndexStyle(4,DRAW_ARROW,EMPTY,1);

SetIndexArrow(4,233); SetIndexEmptyValue(4,0.0);

SetIndexBuffer(5,Dn); SetIndexStyle(5,DRAW_ARROW,EMPTY,1);

SetIndexArrow(5,234); SetIndexEmptyValue(5,0.0);

SetIndexBuffer(6,pUp); SetIndexStyle(6,DRAW_ARROW);

SetIndexArrow(6,217); SetIndexEmptyValue(6,0.0);

SetIndexBuffer(7,pDn); SetIndexStyle(7,DRAW_ARROW);

SetIndexArrow(7,218); SetIndexEmptyValue(7,0.0); return(0); }

//---------------------------------------------------------------------

int start() { int counted_bars=IndicatorCounted(); int limit,i,j,n;

if(counted_bars<0) return(-1); if(counted_bars>0) counted_bars--;

if(First==true) { 

if(SR<2) SR=2; if(Bars<=2*(MainRZZ+FP+SR+2)) return(-1); 

if(SRZZ<=SR) SRZZ=SR+1; MaxBar=Bars-(MainRZZ+FP+SR+2);

LBZZ=MaxBar; SBZZ=LBZZ; prevBars=Bars; First=false; }

limit=Bars-counted_bars; for(i=limit;i>=0;i--) { MainCalculation(i); }

if(prevBars!=Bars) { SBZZ=Bars-nSBZZ; LBZZ=Bars-nLBZZ; prevBars=Bars; } 

SZZCalc(0); LZZCalc(0); ArrCalc(); return(0); }

//---------------------------------------------------------------------


Han respondido

1
Desarrollador 1
Evaluación
(19)
Proyectos
24
8%
Arbitraje
9
33% / 33%
Caducado
1
4%
Trabajando
2
Desarrollador 2
Evaluación
Proyectos
0
0%
Arbitraje
0
Caducado
0
Libre
3
Desarrollador 3
Evaluación
(25)
Proyectos
34
26%
Arbitraje
4
50% / 25%
Caducado
4
12%
Libre
4
Desarrollador 4
Evaluación
Proyectos
0
0%
Arbitraje
0
Caducado
0
Libre
5
Desarrollador 5
Evaluación
Proyectos
1
0%
Arbitraje
0
Caducado
0
Libre
6
Desarrollador 6
Evaluación
(460)
Proyectos
801
48%
Arbitraje
73
19% / 52%
Caducado
140
17%
Trabaja
7
Desarrollador 7
Evaluación
(44)
Proyectos
58
3%
Arbitraje
6
0% / 67%
Caducado
5
9%
Trabaja
8
Desarrollador 8
Evaluación
(169)
Proyectos
179
46%
Arbitraje
3
33% / 33%
Caducado
1
1%
Trabaja
9
Desarrollador 9
Evaluación
(12)
Proyectos
21
43%
Arbitraje
8
0% / 50%
Caducado
3
14%
Libre
10
Desarrollador 10
Evaluación
Proyectos
0
0%
Arbitraje
0
Caducado
0
Libre
11
Desarrollador 11
Evaluación
(48)
Proyectos
57
35%
Arbitraje
15
27% / 60%
Caducado
1
2%
Trabaja
12
Desarrollador 12
Evaluación
Proyectos
0
0%
Arbitraje
0
Caducado
0
Libre
13
Desarrollador 13
Evaluación
(384)
Proyectos
495
23%
Arbitraje
59
56% / 25%
Caducado
58
12%
Trabaja
14
Desarrollador 14
Evaluación
(2671)
Proyectos
3404
68%
Arbitraje
77
48% / 14%
Caducado
342
10%
Libre
Ha publicado: 1 ejemplo
15
Desarrollador 15
Evaluación
(13)
Proyectos
17
24%
Arbitraje
1
100% / 0%
Caducado
4
24%
Trabaja
16
Desarrollador 16
Evaluación
(2)
Proyectos
3
0%
Arbitraje
0
Caducado
0
Trabaja
17
Desarrollador 17
Evaluación
Proyectos
0
0%
Arbitraje
0
Caducado
0
Libre
18
Desarrollador 18
Evaluación
(1)
Proyectos
1
0%
Arbitraje
0
Caducado
0
Libre
19
Desarrollador 19
Evaluación
(268)
Proyectos
602
34%
Arbitraje
64
20% / 58%
Caducado
147
24%
Trabaja
Ha publicado: 1 artículo, 22 ejemplos
20
Desarrollador 20
Evaluación
(50)
Proyectos
64
20%
Arbitraje
11
27% / 55%
Caducado
5
8%
Libre
21
Desarrollador 21
Evaluación
(49)
Proyectos
63
57%
Arbitraje
4
75% / 25%
Caducado
1
2%
Libre
22
Desarrollador 22
Evaluación
(19)
Proyectos
27
11%
Arbitraje
11
9% / 55%
Caducado
12
44%
Libre
23
Desarrollador 23
Evaluación
Proyectos
0
0%
Arbitraje
0
Caducado
0
Libre
24
Desarrollador 24
Evaluación
(642)
Proyectos
869
48%
Arbitraje
29
38% / 17%
Caducado
63
7%
Libre
25
Desarrollador 25
Evaluación
(8)
Proyectos
9
56%
Arbitraje
0
Caducado
0
Libre
26
Desarrollador 26
Evaluación
(79)
Proyectos
89
31%
Arbitraje
9
11% / 56%
Caducado
4
4%
Trabajando
27
Desarrollador 27
Evaluación
Proyectos
0
0%
Arbitraje
0
Caducado
0
Libre
28
Desarrollador 28
Evaluación
(12)
Proyectos
25
4%
Arbitraje
1
0% / 0%
Caducado
7
28%
Libre
29
Desarrollador 29
Evaluación
Proyectos
1
0%
Arbitraje
1
100% / 0%
Caducado
0
Libre
30
Desarrollador 30
Evaluación
Proyectos
0
0%
Arbitraje
0
Caducado
0
Libre
31
Desarrollador 31
Evaluación
(27)
Proyectos
33
36%
Arbitraje
0
Caducado
2
6%
Libre
32
Desarrollador 32
Evaluación
Proyectos
0
0%
Arbitraje
0
Caducado
0
Libre
33
Desarrollador 33
Evaluación
(3)
Proyectos
7
29%
Arbitraje
0
Caducado
4
57%
Libre
34
Desarrollador 34
Evaluación
(316)
Proyectos
321
70%
Arbitraje
2
100% / 0%
Caducado
0
Libre
Ha publicado: 1 ejemplo
35
Desarrollador 35
Evaluación
(613)
Proyectos
690
42%
Arbitraje
2
100% / 0%
Caducado
1
0%
Trabaja
Ha publicado: 9 ejemplos
36
Desarrollador 36
Evaluación
Proyectos
0
0%
Arbitraje
0
Caducado
0
Libre
37
Desarrollador 37
Evaluación
Proyectos
0
0%
Arbitraje
0
Caducado
0
Libre
38
Desarrollador 38
Evaluación
(251)
Proyectos
295
76%
Arbitraje
13
77% / 0%
Caducado
4
1%
Libre
39
Desarrollador 39
Evaluación
Proyectos
0
0%
Arbitraje
0
Caducado
0
Libre
40
Desarrollador 40
Evaluación
Proyectos
0
0%
Arbitraje
0
Caducado
0
Libre
Solicitudes similares
We are seeking talented Graphic Designers capable of transforming concepts into visually striking representations. Whether your expertise lies in branding, marketing materials, or digital graphics, we welcome your application. Our criteria include: - Creativity and originality - Effective communication skills - Prompt delivery of work - A comprehensive and professional portfolio We invite you to submit your portfolio
I already have the source code of an MT5 Expert Advisor. The EA is about 70% complete. I need someone to modify and complete it. Requirements: • Manage EURUSD only. • Manage manual trades only (Magic Number = 0). • Support unlimited manual positions simultaneously. • Automatically add a 10-pip Stop Loss if a position has no Stop Loss. • Automatically add a 10-pip Take Profit if a position has no Take Profit. • Do not
I am looking for an expert MQL5 developer to build a robust, professional Expert Advisor for Gold (XAUUSD). The EA must be Event-Driven (OnTick) with no 'Sleep' functions, ensuring instant execution. ​ Core Logic: ​ Grid Strategy: Start with 0.02 Buy/Sell. Lot size sequence: 0.02, 0.03, 0.05, 0.09, 0.14, 0.26, 0.44, 0.75, 1.28, 2.18 (Max 10 steps). ​ Dynamic TP: Total basket TP must update instantly upon new order
SETJEO'S GOLD EA 30 - 200 USD
double GetTodayProfit() { double profit = 0; datetime today = StringToTime(TimeToString(TimeCurrent(), TIME_DATE)); HistorySelect(today, TimeCurrent()); for(int i = HistoryDealsTotal() - 1; i >= 0; i--) { ulong ticket = HistoryDealGetTicket(i); if(HistoryDealGetString(ticket, DEAL_SYMBOL) == _Symbol) { profit += HistoryDealGetDouble(ticket, DEAL_PROFIT); } } return profit; }
مطلوب موشر مع ربطه علي بوت تداول قوي جدا مختبر ومجرب مع التاكيد علي نسبه النجاح يتم انشاءه علي جميع الموشرات في الفوركس الذهب والبتكوين والus100 مع شرح للستراتيجية ونتايج اختيار اذا كان مجرب
I have an expert advisor's investor login. I want you to study it and make me the exact same EA. There should be absolutely no differences or mistakes. You should have great observation skills for this aswell
I am looking for an experienced MQL5 developer to code a simple grid trading strategy into an Expert Advisor. The strategy logic is already defined, and I am looking for someone with strong MQL5 development experience to implement it accurately and efficiently. If you are interested and have relevant experience, please get in touch so we can discuss the project details
I am looking for an experienced MQL5 or MQL4 developer with a strong background in low-latency algorithmic trading, market data integration, arbitrage and execution optimization. The project involves developing a high-performance HFT Expert Advisor (EA) for XAUUSD or US30 on IC Markets that is designed for robust execution in both demo and live environments. The EA may use market data feeds (such as lmax,one zero or
I am looking for an experienced MQL5 or MQL4 developer with a strong understanding of high-frequency trading (HFT) concepts who can explain how certain HFT-style strategies have historically been able to pass proprietary firm evaluations while also being profitable on demo accounts and capable of transitioning successfully to live trading. I am interested in understanding the legitimate trading logic, execution
Looking for a Prop Firm Trading Bot (Gold/XAUUSD Preferred) I am looking for an experienced developer who can either: Create a custom prop firm trading bot, or Provide an existing, proven prop firm trading bot. Requirements: Preferably trades Gold (XAUUSD) . Designed to pass prop firm evaluation challenges. Must respect the following risk parameters: Daily Drawdown: Maximum 5% Overall Maximum Drawdown: 10% Strong

Información sobre el proyecto

Presupuesto
45+ USD

Cliente

(6)
Encargos realizados7
Número de arbitrajes0