A trade alert for the attached Arbitrage MACD indicator.

Работа завершена

Время выполнения 4 дня
Отзыв от заказчика
Great job. He walked me through all the steps. Great to work with and will use again.
Отзыв от исполнителя
Thank you

Техническое задание

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

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


Откликнулись

1
Разработчик 1
Оценка
(22)
Проекты
28
7%
Арбитраж
9
33% / 33%
Просрочено
1
4%
Работает
2
Разработчик 2
Оценка
Проекты
0
0%
Арбитраж
0
Просрочено
0
Свободен
3
Разработчик 3
Оценка
(25)
Проекты
34
26%
Арбитраж
4
50% / 25%
Просрочено
4
12%
Свободен
4
Разработчик 4
Оценка
Проекты
0
0%
Арбитраж
0
Просрочено
0
Свободен
5
Разработчик 5
Оценка
Проекты
1
0%
Арбитраж
0
Просрочено
0
Свободен
6
Разработчик 6
Оценка
(465)
Проекты
813
49%
Арбитраж
75
21% / 51%
Просрочено
141
17%
Работает
7
Разработчик 7
Оценка
(44)
Проекты
60
5%
Арбитраж
6
0% / 67%
Просрочено
5
8%
Свободен
8
Разработчик 8
Оценка
(176)
Проекты
188
46%
Арбитраж
3
33% / 33%
Просрочено
1
1%
Загружен
9
Разработчик 9
Оценка
(13)
Проекты
22
41%
Арбитраж
8
0% / 50%
Просрочено
3
14%
Свободен
10
Разработчик 10
Оценка
Проекты
0
0%
Арбитраж
0
Просрочено
0
Свободен
11
Разработчик 11
Оценка
(52)
Проекты
63
40%
Арбитраж
15
27% / 60%
Просрочено
1
2%
Работает
12
Разработчик 12
Оценка
Проекты
0
0%
Арбитраж
0
Просрочено
0
Свободен
13
Разработчик 13
Оценка
(396)
Проекты
512
23%
Арбитраж
60
57% / 25%
Просрочено
60
12%
Загружен
14
Разработчик 14
Оценка
(2675)
Проекты
3414
68%
Арбитраж
77
48% / 14%
Просрочено
342
10%
Свободен
Опубликовал: 1 пример
15
Разработчик 15
Оценка
(15)
Проекты
20
25%
Арбитраж
2
50% / 0%
Просрочено
4
20%
Работает
16
Разработчик 16
Оценка
(3)
Проекты
4
0%
Арбитраж
0
Просрочено
0
Свободен
17
Разработчик 17
Оценка
Проекты
0
0%
Арбитраж
0
Просрочено
0
Свободен
18
Разработчик 18
Оценка
(1)
Проекты
1
0%
Арбитраж
0
Просрочено
0
Свободен
Опубликовал: 5 примеров
19
Разработчик 19
Оценка
(268)
Проекты
603
34%
Арбитраж
65
22% / 57%
Просрочено
147
24%
Работает
Опубликовал: 1 статью, 22 примера
20
Разработчик 20
Оценка
(50)
Проекты
64
20%
Арбитраж
11
27% / 55%
Просрочено
5
8%
Свободен
21
Разработчик 21
Оценка
(70)
Проекты
88
58%
Арбитраж
6
67% / 17%
Просрочено
2
2%
Загружен
22
Разработчик 22
Оценка
(19)
Проекты
27
11%
Арбитраж
11
9% / 55%
Просрочено
12
44%
Свободен
23
Разработчик 23
Оценка
Проекты
0
0%
Арбитраж
0
Просрочено
0
Свободен
24
Разработчик 24
Оценка
(645)
Проекты
873
48%
Арбитраж
29
38% / 17%
Просрочено
63
7%
Свободен
25
Разработчик 25
Оценка
(12)
Проекты
13
62%
Арбитраж
0
Просрочено
0
Свободен
26
Разработчик 26
Оценка
(83)
Проекты
95
32%
Арбитраж
9
22% / 56%
Просрочено
5
5%
Работает
27
Разработчик 27
Оценка
(3)
Проекты
9
67%
Арбитраж
0
Просрочено
0
Работает
28
Разработчик 28
Оценка
(12)
Проекты
25
4%
Арбитраж
1
0% / 0%
Просрочено
7
28%
Свободен
29
Разработчик 29
Оценка
Проекты
1
0%
Арбитраж
1
100% / 0%
Просрочено
0
Свободен
30
Разработчик 30
Оценка
Проекты
0
0%
Арбитраж
0
Просрочено
0
Свободен
31
Разработчик 31
Оценка
(28)
Проекты
34
35%
Арбитраж
0
Просрочено
2
6%
Работает
32
Разработчик 32
Оценка
Проекты
0
0%
Арбитраж
0
Просрочено
0
Свободен
33
Разработчик 33
Оценка
(3)
Проекты
7
29%
Арбитраж
0
Просрочено
4
57%
Свободен
34
Разработчик 34
Оценка
(322)
Проекты
327
71%
Арбитраж
2
100% / 0%
Просрочено
0
Свободен
Опубликовал: 1 пример
35
Разработчик 35
Оценка
(621)
Проекты
698
42%
Арбитраж
2
100% / 0%
Просрочено
1
0%
Свободен
Опубликовал: 9 примеров
36
Разработчик 36
Оценка
Проекты
0
0%
Арбитраж
0
Просрочено
0
Свободен
Опубликовал: 1 пример
37
Разработчик 37
Оценка
Проекты
0
0%
Арбитраж
0
Просрочено
0
Свободен
38
Разработчик 38
Оценка
(260)
Проекты
305
76%
Арбитраж
13
77% / 0%
Просрочено
5
2%
Работает
39
Разработчик 39
Оценка
Проекты
0
0%
Арбитраж
0
Просрочено
0
Свободен
40
Разработчик 40
Оценка
Проекты
0
0%
Арбитраж
0
Просрочено
0
Свободен
41
Разработчик 41
Оценка
Проекты
0
0%
Арбитраж
0
Просрочено
0
Свободен
42
Разработчик 42
Оценка
Проекты
0
0%
Арбитраж
0
Просрочено
0
Свободен
43
Разработчик 43
Оценка
(2)
Проекты
2
0%
Арбитраж
0
Просрочено
0
Свободен
44
Разработчик 44
Оценка
Проекты
0
0%
Арбитраж
0
Просрочено
0
Свободен
45
Разработчик 45
Оценка
(25)
Проекты
31
13%
Арбитраж
13
0% / 77%
Просрочено
9
29%
Свободен
46
Разработчик 46
Оценка
Проекты
0
0%
Арбитраж
0
Просрочено
0
Свободен
47
Разработчик 47
Оценка
Проекты
0
0%
Арбитраж
0
Просрочено
0
Свободен
48
Разработчик 48
Оценка
(1)
Проекты
1
0%
Арбитраж
0
Просрочено
0
Свободен
Опубликовал: 3 примера
Похожие заказы
please share: Strategy description — entry/exit rules, indicators used, timeframe(s), and instrument(s) (a written explanation, screenshots, or an existing indicator/EA to reference all work) Risk management rules — position sizing method (fixed lot / % risk), stop loss / take profit logic, max drawdown or daily loss limits, and whether martingale/grid/hedging is involved Broker & account details — broker name
I need an experienced MQL5 developer to create a fully automated MT5 Expert Advisor called Ayoub Gold EA , focused exclusively on XAUUSD (Gold) . Main requirements: Platform: MT5 / MQL5. Fully automated BUY and SELL trading on XAUUSD. Must support broker suffixes such as XAUUSD, XAUUSD.f and XAUUSDm. Trading strategy based mainly on Range Breakout with trend confirmation. EMA, ADX and ATR filters. London/New York
Mashiri 50 - 10000 USD
I need a custom MetaTrader 5 indicator designed specifically for XAUUSD gold trading. The indicator should identify potential buy and sell opportunities, display clear entry and exit signals on the chart, provide alerts, and help identify market trends and possible reversals
Looking for an experienced Sierra Chart ACSIL/C++ developer to customize an existing footprint chart. I need 3 things: 7-Day ATR – calculate and display a configurable 7-day ATR. Custom Footprint – modify my existing footprint chart to match my preferred layout/data display. Automatic LVN – detect and plot Low Volume Nodes automatically based on volume distribution. I already have a working footprint chart, so no
Торговый робот XAUUSD AI/ML — MT5 + Python + MQL5 Ищу опытного разработчика с глубокими знаниями в следующих областях: MQL5 / MetaTrader 5 Python Машинное обучение / Искусственный интеллект Алгоритмическая торговля Проект Я хочу разработать торговую систему на основе ИИ/машинного обучения, предназначенную исключительно для XAUUSD (золото) . Архитектура: Данные рынка XAUUSD → Модель Python/ML → ПОКУПКА / ПРОДАЖА /
//———————————————————————————————————————————————————————————————————— struct S_MCAV { double matureSum; double totalSum; double value; void Init () { matureSum = 0.0; totalSum = 0.0; value = 0.5; } void AddContext (int ctx) { totalSum += 1.0; if (ctx == 1) matureSum += 1.0; } void ApplyDecay (double rate) { matureSum *= rate; totalSum *= rate; } void Update () {
1. Title Development of a Custom MQL5 Expert Advisor for XAUUSD (MetaTrader 5) 2. Requirements Specification Overview: I am looking for an experienced MQL5 developer to build a robust, fully custom Expert Advisor (EA) for MetaTrader 5 tailored for trading Gold (XAUUSD). Core Specifications & Features: Asset & Timeframe: Designed specifically for XAUUSD. Timeframe should be selectable directly from the EA inputs
I am looking for a Senior MQL5 Developer to create a new MetaTrader 5 Expert Advisor from scratch. I will provide a complete Requirements Specification containing objective entry, exit and risk-management rules. This is not a request to copy or decompile an existing product. Project requirements: Clean and modular MQL5 source code. Exact implementation of the supplied strategy. One signal evaluation per configured
Composite robot 30 - 200 USD
Title: Multi-Timeframe Pure Price Action & Elliott Wave Execution Bot for XAUUSD 1. Project Overview I need a robust, automated trading bot (Expert Advisor) for MetaTrader 5 (MT5) to trade XAUUSD (Gold) exclusively. The strategy is built entirely on Top-Down Multi-Timeframe (MTF) market structure, pure price action, and Elliott Wave principles. It does not use traditional lagging technical indicators (like RSI or
Build a fully mechanical EA for XAUUSD on D1 timeframe. Trader spends 5-10 mins per day to run it. No discretion. EA calculates, places orders, and walks away. Timeframe Use the Daily (D1) timeframe . At the close of each completed daily candle, identify: Previous day's High (wick) Previous day's Low (wick) Previous day's Open

Информация о проекте

Бюджет
45+ USD