Convert Indicator to EA

MQL4 Uzmanlar

Şartname

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 

Yanıtlandı

1
Geliştirici 1
Derecelendirme
(772)
Projeler
1039
44%
Arabuluculuk
50
8% / 50%
Süresi dolmuş
116
11%
Serbest
2
Geliştirici 2
Derecelendirme
(414)
Projeler
478
40%
Arabuluculuk
7
43% / 29%
Süresi dolmuş
16
3%
Serbest
3
Geliştirici 3
Derecelendirme
(39)
Projeler
44
16%
Arabuluculuk
1
100% / 0%
Süresi dolmuş
7
16%
Serbest
4
Geliştirici 4
Derecelendirme
(68)
Projeler
111
26%
Arabuluculuk
17
6% / 71%
Süresi dolmuş
15
14%
Serbest
Yayınlandı: 9 kod
5
Geliştirici 5
Derecelendirme
(121)
Projeler
134
66%
Arabuluculuk
36
25% / 56%
Süresi dolmuş
22
16%
Serbest
Yayınlandı: 10 kod
Benzer siparişler
Project Title: Development of a Custom Breakout Expert Advisor (EA) with Dynamic Trailing Stop and On-Screen Dashboard for MT5 Project Description: Overview: I am looking for an experienced MQL5 developer to build a fully automated Trading Robot (Expert Advisor) for MetaTrader 5 based on a pending orders breakout strategy with strict dynamic risk management. The EA must be highly optimized, bug-free, and follow the
👋 Hey can anyone help me with creating an indicator for tradovate These were the ones I was looking at but I only have source code for TVS Trading view 1. engulfing Candle indicator by rmunoz 2. Fvg nephew sam (locked) 3. True volume surrogate (mt5)
I am looking for someone who can get me started on Sierra Charts. I need a setup with vwap and dayly VP aswell as session vp and vwap. Also previous days vp. I want to learn and use cvd and dom. Initially I just want to have my setup with the charts I use and connect all to the prop firm etc. Can you give me a good price for the above? I’d also like to understand how the setup works rather than simply having someone
Hi, I’m looking for an experienced MQL5 developer to convert my TradingView Pine Script into an MT5 EA. Here are the main requirements: **MBS BREAKOUT** * Buy when price breaks the Green Line * Sell when price breaks the Red Line **TIMEFRAMES** * Strategy 1 = M1 * Strategy 2 = M5 * Strategy 3 = M15 * Strategy 4 = M30 * Strategy 5 = H1 * Strategy 6 = H4 * Strategy 7 = D1 * Strategy 8 = W1 * Strategy 9 = MN1 Each
SUPER SCALPING 30+ USD
I WISH TO BUILD A ROBOT THAT CAN FIND BREAKOUTS ON 15MIN CHARTS, STARTING WITH THE WAVE 3 ON ELLIO WAVE ANALYSIS, ONCE IS PROFITABLE ENOUGH WILL OPEN A SECOND TRADE AFTER THE FIRST PULL BACK AND SET THE TP OF THE FIRST TRADE WITH THE SL OF THE SECOND TRADE IN A WAY TO GAIN A MINIMUM PROFIT OF 10 DOLLARS OR MORE, IF THE THIRD PULL BACK HAPPENS ANOTHER TRADE WILL BE PLACED MOVING ALL TP AND SL IN SUCH A WAY THAT THE
I am looking for someone with strong experience using QuantAnalyzer, StrategyQuant Portfolio Master, or a similar portfolio-analysis tool to create an accurate backtest of several existing MT5 EAs running together as one portfolio. The individual EAs can be backtested separately in MT5. My main requirement is to combine those results into a portfolio backtest using different risk allocations for each EA. For example
i need someone to help me create 3 random tradingview strategy i need it for a test, i need it to have 5% to 20% win rate and 1:1 RR, the win rate is very important is the main thing i need those strategy for, i am planning on building a tradingview strategy and i need this 3 tradingview strategy first they are for test on my plans to build the main tradingview strategy, also for he 3 i have a fixed budget of $30 for
Looking for some one to build me a liquidity grab EA who has experience in this department must work specifically on XAUUSD. Must be able to figure out swing high and lows also
I need a simple EA for MT5 based on RSI. The idea is quite basic: Buy when RSI crosses above a level Sell when RSI crosses below a level Use closed candles for the signal I want to be able to change the RSI period and levels in the inputs Fixed lot size SL and TP should also be adjustable Only one trade at a time per symbol Magic number input If possible add a simple trading time filter No martingale, grid or
Account size 100$ to 200$ ( Account $ Size may not matter ) Min Lot 0.01 [ if averaging possible ] Averaging + Shift TP Faster Required if Trend Direction is Clear Account Protection Maxx Profit Max Loss Key Based Activation News Filter trading session filter Need Expert to handle this to avoid false entry [ Developer can suggest extra additional filters inputs here ] as i mentioned I have no great ideas what all

Proje bilgisi

Bütçe
10 - 20 USD
Son teslim tarihi
from 1 to 2 gün