A trade alert for the attached Arbitrage MACD indicator.

MQL4 Indicadores Experts Forex

Trabalho concluído

Tempo de execução 4 dias
Comentário do desenvolvedor
Thank you
Comentário do cliente
Great job. He walked me through all the steps. Great to work with and will use again.

Termos de Referência

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); }

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


Respondido

1
Desenvolvedor 1
Classificação
(22)
Projetos
28
7%
Arbitragem
9
33% / 33%
Expirado
1
4%
Trabalhando
2
Desenvolvedor 2
Classificação
Projetos
0
0%
Arbitragem
0
Expirado
0
Livre
3
Desenvolvedor 3
Classificação
(25)
Projetos
34
26%
Arbitragem
4
50% / 25%
Expirado
4
12%
Livre
4
Desenvolvedor 4
Classificação
Projetos
0
0%
Arbitragem
0
Expirado
0
Livre
5
Desenvolvedor 5
Classificação
Projetos
1
0%
Arbitragem
0
Expirado
0
Livre
6
Desenvolvedor 6
Classificação
(465)
Projetos
815
49%
Arbitragem
76
21% / 50%
Expirado
142
17%
Trabalhando
7
Desenvolvedor 7
Classificação
(44)
Projetos
60
5%
Arbitragem
6
0% / 67%
Expirado
5
8%
Livre
8
Desenvolvedor 8
Classificação
(185)
Projetos
199
47%
Arbitragem
4
50% / 25%
Expirado
1
1%
Trabalhando
9
Desenvolvedor 9
Classificação
(13)
Projetos
23
39%
Arbitragem
8
0% / 50%
Expirado
4
17%
Livre
10
Desenvolvedor 10
Classificação
Projetos
0
0%
Arbitragem
0
Expirado
0
Livre
11
Desenvolvedor 11
Classificação
(54)
Projetos
68
43%
Arbitragem
15
27% / 60%
Expirado
1
1%
Trabalhando
12
Desenvolvedor 12
Classificação
Projetos
0
0%
Arbitragem
0
Expirado
0
Livre
13
Desenvolvedor 13
Classificação
(402)
Projetos
520
24%
Arbitragem
61
57% / 25%
Expirado
60
12%
Carregado
14
Desenvolvedor 14
Classificação
(2678)
Projetos
3422
68%
Arbitragem
78
47% / 14%
Expirado
343
10%
Trabalhando
Publicou: 1 código
15
Desenvolvedor 15
Classificação
(16)
Projetos
21
29%
Arbitragem
2
50% / 0%
Expirado
4
19%
Livre
16
Desenvolvedor 16
Classificação
(3)
Projetos
4
0%
Arbitragem
0
Expirado
0
Livre
17
Desenvolvedor 17
Classificação
Projetos
0
0%
Arbitragem
0
Expirado
0
Livre
18
Desenvolvedor 18
Classificação
(1)
Projetos
1
0%
Arbitragem
0
Expirado
0
Livre
Publicou: 6 códigos
19
Desenvolvedor 19
Classificação
(268)
Projetos
603
34%
Arbitragem
65
22% / 57%
Expirado
146
24%
Trabalhando
Publicou: 1 artigo, 22 códigos
20
Desenvolvedor 20
Classificação
(50)
Projetos
64
20%
Arbitragem
11
27% / 55%
Expirado
5
8%
Livre
21
Desenvolvedor 21
Classificação
(78)
Projetos
105
55%
Arbitragem
5
80% / 20%
Expirado
5
5%
Carregado
22
Desenvolvedor 22
Classificação
(19)
Projetos
27
11%
Arbitragem
11
9% / 55%
Expirado
12
44%
Livre
23
Desenvolvedor 23
Classificação
Projetos
0
0%
Arbitragem
0
Expirado
0
Livre
24
Desenvolvedor 24
Classificação
(648)
Projetos
876
48%
Arbitragem
29
38% / 17%
Expirado
63
7%
Livre
25
Desenvolvedor 25
Classificação
(13)
Projetos
14
64%
Arbitragem
0
Expirado
0
Livre
26
Desenvolvedor 26
Classificação
(83)
Projetos
98
33%
Arbitragem
9
22% / 56%
Expirado
5
5%
Trabalhando
27
Desenvolvedor 27
Classificação
(3)
Projetos
9
67%
Arbitragem
0
Expirado
0
Trabalhando
28
Desenvolvedor 28
Classificação
(12)
Projetos
25
4%
Arbitragem
1
0% / 0%
Expirado
7
28%
Livre
29
Desenvolvedor 29
Classificação
Projetos
1
0%
Arbitragem
1
100% / 0%
Expirado
0
Livre
30
Desenvolvedor 30
Classificação
Projetos
0
0%
Arbitragem
0
Expirado
0
Livre
31
Desenvolvedor 31
Classificação
(29)
Projetos
36
39%
Arbitragem
0
Expirado
2
6%
Livre
32
Desenvolvedor 32
Classificação
Projetos
0
0%
Arbitragem
0
Expirado
0
Livre
33
Desenvolvedor 33
Classificação
(3)
Projetos
7
29%
Arbitragem
0
Expirado
4
57%
Livre
34
Desenvolvedor 34
Classificação
(328)
Projetos
333
71%
Arbitragem
2
100% / 0%
Expirado
0
Livre
Publicou: 1 código
35
Desenvolvedor 35
Classificação
(631)
Projetos
709
42%
Arbitragem
2
100% / 0%
Expirado
1
0%
Livre
Publicou: 9 códigos
36
Desenvolvedor 36
Classificação
Projetos
0
0%
Arbitragem
0
Expirado
0
Livre
Publicou: 1 código
37
Desenvolvedor 37
Classificação
Projetos
0
0%
Arbitragem
0
Expirado
0
Livre
38
Desenvolvedor 38
Classificação
(264)
Projetos
311
75%
Arbitragem
16
69% / 0%
Expirado
6
2%
Trabalhando
39
Desenvolvedor 39
Classificação
Projetos
0
0%
Arbitragem
0
Expirado
0
Livre
40
Desenvolvedor 40
Classificação
Projetos
0
0%
Arbitragem
0
Expirado
0
Livre
41
Desenvolvedor 41
Classificação
Projetos
0
0%
Arbitragem
0
Expirado
0
Livre
42
Desenvolvedor 42
Classificação
Projetos
0
0%
Arbitragem
0
Expirado
0
Livre
43
Desenvolvedor 43
Classificação
(2)
Projetos
2
0%
Arbitragem
0
Expirado
0
Livre
44
Desenvolvedor 44
Classificação
Projetos
0
0%
Arbitragem
0
Expirado
0
Livre
45
Desenvolvedor 45
Classificação
(25)
Projetos
31
13%
Arbitragem
14
0% / 79%
Expirado
9
29%
Livre
46
Desenvolvedor 46
Classificação
Projetos
0
0%
Arbitragem
0
Expirado
0
Livre
47
Desenvolvedor 47
Classificação
Projetos
0
0%
Arbitragem
0
Expirado
0
Livre
48
Desenvolvedor 48
Classificação
(1)
Projetos
1
0%
Arbitragem
0
Expirado
0
Livre
Publicou: 4 códigos
Pedidos semelhantes
1. EA OVERVIEW I need an Expert Advisor for METATRADER 4/5 that executes a directional trend- following + scaling strategy with multiple modes : Swing, Intraday, and Aggressive ( Martingale - style scaling) 2. ENTRY LOGIC Explain clearly: - EA opens first trade based on a defined signal ( let developer add indicator – based entry) - Direction: BUY or SELL allowed ( no restriction)
PROJECT: Automatic Gold and Forex Trading Robot for MetaTrader 5 (MQL5) I want a fully automated Expert Advisor (EA) for MetaTrader 5 that can analyze the market and automatically open, manage and close trades on Gold and selected Forex currency pairs. 1. TRADING INSTRUMENTS - Gold: XAUUSD - Forex: EURUSD, GBPUSD and USDJPY, subject to broker availability. - Allow the user to enable or disable each trading symbol. -
Hello, I want to create a custom Expert Advisor (EA) for MetaTrader 5 based on 3 main confirmations: Market Structure & Price Action: Identify high time-frame trend direction (HL/LH). Chart Pattern: Detect classic continuous/reversal patterns (e.g. Cup and Handle, Double Bottom/Top) on trading timeframe. Volume Profile (PoC): Confirm entry when price breaks/retests the Point of Control (PoC) level. Risk Management &
I am looking for a highly skilled trading strategist and MQL5 developer with genuine experience in researching, designing, testing, and implementing systematic trading strategies. My primary interest is XAUUSD (Gold), although proven experience with other financial markets is also welcome. I am not looking for someone who simply converts trading rules into code. I want to identify a professional who understands
We’re looking for an investment partner to help fund AegisGoldAIPro , an algorithmic trading platform being developed for MetaTrader 5, initially focused on gold. We’re building a modular system that combines market-structure analysis with planned AI-assisted decision support, risk controls, and automated execution. What we are building is not just a basic trading robots that depend on only one indicator or strategy
Looking for a Complete Forex & Gold Signal System — Telegram Automation + Performance Tracking I’m looking for a complete automated trading signal solution for Forex pairs, including EUR/USD, GBP/USD and others, as well as gold (XAU/USD). Requirements: • An average of 2–3 quality signals per day across the selected instruments. Quality matters more than generating signals just to meet a quota. • A high win rate
I need a robot that will grow small accounts to bigger amounts like this one in this link, https://youtu.be/d38pMbJihew?si=3NeIOVyrlwDr4X_o. Please click the link and watch how this EA grow small accounts. Then create a robot like that. I will test it on demo first then if it does what i want, i will take it. Please it must be simply to use. It must set targets, for example, once it reaches $500 profit, it must
Here is a professional, detailed requirements specification draft for your MQL5 freelance order based on your prompt: ​ Strategy Objective: Develop an automated Expert Advisor (EA) featuring a 1:3 Risk-to-Reward ratio optimized for a small starting budget. ​ Core Trading Logic: ​Execute automatic Buy and Sell trades using high-probability entry signals. ​Target a strict 90% theoretical win-rate structure through
i want to fix my gold martingale bot MT5. RSI 14 ENTRY 30 BUY 70 SELL Lot 0.02 0.04 0.07 TP 150 for all SL 90 30 30 once total daily profit is 200$ stop trading stop trading once 2 consecutives total losses stop trading if spread exceeded 30 and between hour 15 & 17 PM Move SL to breakeven point once the profit exceeded 50 from from breakeven thanks
MarketMind Breakout Pro XAUUSD H1 — Donchian Breakout EA Project type: Personal EA development and backtesting Platform: MetaTrader 5 Instrument: XAUUSD Timeframe: H1 Strategy: Donchian Channel breakout with EMA 200 Project overview This project evaluates a Donchian breakout trading strategy for XAUUSD on the H1 timeframe. The system uses channel-based breakout conditions and an EMA 200 trend filter. Historical

Informações sobre o projeto

Orçamento
45+ USD