Convert Indicator to EA

MQL4 Esperti

Specifiche

Add conditional buy n sell code for opening a trade and reverse closing code in the following ea code

- entry of buy at onset of blue dot

- exit of buy at onset of Pink dot

- entry of Sell at onset of pink dot

- exit of Sell at onset of blue dot 

 Var MA Indicator

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

//|                                                  var_mov_avg.mq4 |

//|                                 Copyright © 2016, Dmitri Migunov |

//|                                            sniper_dragon@mail.ru |

//|                                                                  |

//|          Thanks for previous version 2004, GOODMAN & Mstera è AF |

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

#property copyright "Copyright © 2016, Dmitri Migunov"

#property link      "sniper_dragon@mail.ru"

#property version   "1.00"

      

#property indicator_chart_window

#property indicator_buffers 4

#property indicator_color1  clrSienna

#property indicator_color2  clrBlue

#property indicator_color3  clrMagenta

#property indicator_color4  clrYellow


//---- input parameters

input

  int

    periodAMA = 50, // period of AMA

    nfast     = 15, // first noise filter parameter. Higher values make indicator less sensitive to spikes.

    nslow     = 10; // second noise filter parameter. Higher values make indicator less sensitive to spikes.


input

  double

    G   = 1.0,  // the power of filtered part in the moving average. Another way to make the signal line smoother.

    dK  = 0.1;  // doesn't really influence anything much.


input

  bool

    UseAlert  = false,  // if true then alerts will be used.

    UseSound  = false;  // if true then sound will be used in alerts.


input

  string

    SoundFile = "expert.wav"; // name of the sound file for alerts.


input

  int

    offsetInPips = 30;  // maximal offset signal dots from current price


//---- buffers

double

  kAMAbuffer[],

  kAMAupsig[],

  kAMAdownsig[],

  signalBuffer[];


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

int

  cbars     = 0;


double

  slowSC,

  fastSC,

  dSC,

  dKPoint;


bool

  SoundBuy  = false,

  SoundSell = false;


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

//| Custom indicator initialization function                         |

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

int OnInit(void){

//---- indicators

  SetIndexStyle( 0, DRAW_LINE, 0, 2 );

  SetIndexStyle( 1, DRAW_ARROW, STYLE_SOLID, 2 );

  SetIndexArrow( 1, 159 );

  SetIndexStyle( 2, DRAW_ARROW, STYLE_SOLID, 2 );

  SetIndexArrow( 2, 159 );

  SetIndexStyle( 3, DRAW_ARROW, STYLE_SOLID, 1 );

  SetIndexArrow( 3, 159 );

   

  SetIndexBuffer( 0, kAMAbuffer );

  SetIndexBuffer( 1, kAMAupsig );

  SetIndexBuffer( 2, kAMAdownsig );

  SetIndexBuffer( 3, signalBuffer );

   

  IndicatorDigits( Digits );

  

//--- calculate this variables when start

  slowSC  = 2.0 / ( nslow + 1 );

  fastSC  = 2.0 / ( nfast + 1 );

  dSC     = fastSC - slowSC;

  dKPoint = dK * Point;


//--- initialization done

  return(INIT_SUCCEEDED);

}


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

//| Custom indicator iteration function                              |

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

int OnCalculate (const  int       rates_total,

                 const  int       prev_calculated,

                 const  datetime  &time[],

                 const  double    &open[],

                 const  double    &high[],

                 const  double    &low[],

                 const  double    &close[],

                 const  long      &tick_volume[],

                 const  long      &volume[],

                 const  int       &spread[])

{

  int

    pos = 0;

   

  double

    AMA,

    AMA0,

    signal,

    ER,

    ERSC,

    SSC,

    ddK;

  

  string

    message;

   

  if( prev_calculated == rates_total ) return( rates_total );

    

  cbars   = prev_calculated;

  

  if( rates_total <= ( periodAMA+2 ) ){

    return( rates_total );

  }


//---- check for possible errors

  if( cbars < 0 ) return(-1);


//---- last counted bar will be recounted

  if( cbars > 0 ) cbars--;

  

  pos   = rates_total - periodAMA - 2;

  AMA0  = close[ pos+1 ];

  

  for( int p=pos; p>=0; p-- ){

    signal    = MathAbs( close[ p ] - close[ p+periodAMA ] );

    ER        = signal / getNoise( close, p );

    ERSC      = ER * dSC;

    SSC       = ERSC + slowSC;

    ddK       = MathPow( SSC, G ) * ( close[p] - AMA0 );

    AMA       = AMA0 + ddK;

    AMA0      = AMA;

    

    int

      offset  = ( high[p] - low[p] ) / Point() * 2;


    if( offset < 5 )            offset = 5;

    if( offset > offsetInPips ) offset = offsetInPips;

    

    kAMAbuffer[p]   = AMA;

    kAMAupsig[p]    = 0;

    kAMAdownsig[p]  = 0;

    signalBuffer[p] = 0;


    if( MathAbs( ddK ) <= dKPoint )  continue;

    

    if( ddK > 0 ) kAMAupsig[p]    = AMA;

    if( ddK < 0 ) kAMAdownsig[p]  = AMA;


    if( kAMAupsig[p] != EMPTY_VALUE && kAMAupsig[p] != 0 && SoundBuy ){

      SoundBuy        = false;

      signalBuffer[p] = MathMin( close[p+1], low[p] ) - offset * Point;

      if( 0 == p )  showAlert( "BUY @ " + Ask );

    } 

  

    if ( !SoundBuy && ( EMPTY_VALUE == kAMAupsig[p] || 0 == kAMAupsig[p] ) ){

      SoundBuy = true;

    }

    

    if ( kAMAdownsig[p] != EMPTY_VALUE && kAMAdownsig[p] != 0 && SoundSell ){

      SoundSell       = false;

      signalBuffer[p] = MathMax( close[ p+1 ], high[p] ) + offset * Point;

      if( 0 == p )  showAlert( "Sell @" + Bid );

    }

  

    if( !SoundSell && ( EMPTY_VALUE == kAMAdownsig[p] || 0 == kAMAdownsig[p] )){

      SoundSell = true;

    }

  }

  


  return( rates_total );

}


double  getNoise( const double &close[], const int pos ){

  double

    noise = 0.000000001;

    

  for( int i=0; i<periodAMA; i++ ){

    noise += MathAbs( close[ pos+i ] - close[ pos+i+1 ] );

  }

  

  return noise;

}


void  showAlert( string message ){

  message  = TimeCurrent() + " " + Symbol() + " " + Period() + "M " + message;

  Comment( message );


  if( ! UseAlert ) return;

  if( UseSound ) PlaySound( SoundFile );

   

  Alert( message );

}


Thanks 

Con risposta

1
Sviluppatore 1
Valutazioni
(772)
Progetti
1039
44%
Arbitraggio
50
8% / 50%
In ritardo
116
11%
Gratuito
2
Sviluppatore 2
Valutazioni
(414)
Progetti
478
40%
Arbitraggio
7
43% / 29%
In ritardo
16
3%
Gratuito
3
Sviluppatore 3
Valutazioni
(39)
Progetti
44
16%
Arbitraggio
1
100% / 0%
In ritardo
7
16%
Gratuito
4
Sviluppatore 4
Valutazioni
(68)
Progetti
111
26%
Arbitraggio
17
6% / 71%
In ritardo
15
14%
Gratuito
Pubblicati: 9 codici
5
Sviluppatore 5
Valutazioni
(121)
Progetti
134
66%
Arbitraggio
36
25% / 56%
In ritardo
22
16%
Gratuito
Pubblicati: 10 codici
Ordini simili
Do you happen to have a profitable strategy for MNQ? it is urgent if any one can help me with this i will be happy to discuss with you and move forward to pay for it kindly let me know the amount thank fill free to bid
Looking for an experienced MQL5 developer to design and develop a custom Expert Advisor (EA) for MetaTrader 5. The purpose of this EA is not just automated trading, but also to help me better structure, test, and refine my personal trading strategy
I am looking for a developer to build a robust MetaTrader 5 Expert Advisor for Gold (XAUUSD) scalping on the M5 timeframe. The EA must be optimized for small accounts ($200 - $1,000). Technical Requirements: Primary Strategy: Mean Reversion using Bollinger Bands (20, 2.0) and RSI (14). Buy: Price closes below lower band + RSI < 30 + Trend Filter. Sell: Price closes above upper band + RSI > 70 + Trend Filter. Trend
Olá amigos possuo um indicador que não tem o código fonte mas tenho a licença para usar esse indicador que está me trazendo bons resultados no meu operacional desejo automatizar as suas entradas através de um robô funciona mais ou menos da seguinte forma o indicador gera um sinal de compra ou venda e também gera um nível de take profit stop loss.O robô deve fazer a leitura dos sinais e definir TP e SL nos mesmos
An additional indicator signal will be added to the existing EA. The existing mechanical system will NEVER be changed. I will send you the necessary documents and codes. I will send you the necessary documents and codes. thank you
Need MT5 Expert Advisor base on my strategy XAUUSD Fast scalping, Grid , Martingale, TP, SL trailing buy sell both also add magic number fully atumated advance strategy Pro version 24 hours running trades close in profit directly open new trade
Freeallfree 400 - 800 USD
Professional MT5 EA – XAUUSD I need a professional Expert Advisor for MT5 (MQL5) to trade XAUUSD only. This is not a random scalping bot. The EA must trade only high-probability liquidity breakouts during active sessions and avoid ranging or low-volatility markets. Symbol: XAUUSD Timeframe: M15 (optional H1 confirmation) Session filter (Dubai GMT+4): Trade only London and New York sessions Adjustable session times No
Hi Developers, I am looking for a EA based on EURUSD where EA is taking multiple trades in a day with small profits in each trade. Looking for some EA based on HFT trading, scalping
My EA has serious problems and needs full improvement and optimization. Problems: No Stop Loss and Take Profit No risk management system High drawdown and losses Opens multiple trades at same entry (overtrading) No maximum trades per day limit No maximum open trades per symbol No trailing stop Poor entry logic and weak signals Trades open very late (after many days) No equity protection system No daily loss limit No
i need a trading bot that can make 100% profit in 1 day. with capital less than $200 i know this is risky but am willing to take the risk. ea has to be backtestable and also i will test for just 5 random days to make sure it works. and make a purchase if am satisfied with the 5days results. send back test results for me to consider and reply

Informazioni sul progetto

Budget
10 - 20 USD
Scadenze
da 1 a 2 giorno(i)