Convert Indicator to EA

MQL4 エキスパート

指定

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 

応答済み

1
開発者 1
評価
(772)
プロジェクト
1039
44%
仲裁
50
8% / 50%
期限切れ
116
11%
2
開発者 2
評価
(414)
プロジェクト
478
40%
仲裁
7
43% / 29%
期限切れ
16
3%
3
開発者 3
評価
(39)
プロジェクト
44
16%
仲裁
1
100% / 0%
期限切れ
7
16%
4
開発者 4
評価
(68)
プロジェクト
111
26%
仲裁
17
6% / 71%
期限切れ
15
14%
パブリッシュした人: 9 codes
5
開発者 5
評価
(121)
プロジェクト
134
66%
仲裁
36
25% / 56%
期限切れ
22
16%
パブリッシュした人: 10 codes
類似した注文
I want to create an SMC bot base on ICT and Market structure,the bot must be able to keep adding on more positions while started.The bot must have a perfect risk management
Hi, im not looking into developing a new EA. I am looking into purchasing an existing EA that can deliver such results like: mq5 source, 4‑year backtest (2022‑2025) report, equity curve, trade list, strategy description, and 1‑month demo access. Please without concrete prove of experience functioning existing EA working perfectly and as contained on my description, then we can't strike a deal. Thank you
Title: Ultimate Quantum EA V1.01 | Dynamic Hedge Recovery System Description: Professional automated trading system designed for high-precision execution and advanced risk management. Key Features: Dynamic Hedge Recovery: Automatically manages losing trades by opening calculated hedge positions (2x-3x) to exit in total profit. Basket Profit Management: Closes all open positions once the total dollar profit target is
I am looking for an experienced MT5 (MQL5) Expert Advisor developer to fix a chart distortion / corruption issue in my existing EA ( EA ALPHA ). Issue Description When the EA is attached to the chart on a specific broker (ATFX), the chart becomes visually distorted The distortion appears on the left-hand side / historical area of the chart The same EA works correctly on other brokers (e.g. CFI) A previous developer
Subject: Experienced MQL5 Developer | High-Quality Execution & Error Handling "Hello, I am interested in developing your trading system. I specialize in building robust MQL5 Expert Advisors that are not only logically sound but also technically optimized for the MT5 platform. Why work with me? Error-Free Execution: I have deep experience in handling common MT5 execution errors such as Invalid Volume, Not Enough
I need a Python script that runs continuously on a VPS and acts as a bridge between our platform and MetaTrader 5 . The script should connect to MT5 accounts in read-only (Investor mode) and synchronize account data (no trading or order execution). Looking for an experienced developer with Python and MT5 API experience. Please share relevant experience and availability
"Hello! I am an experienced programmer specializing in automated trading software for MetaTrader 4 (MQL4) and MetaTrader 5 (MQL5). My goal is to help traders turn their manual strategies into fully automated robots (Expert Advisors) and custom indicators. My services include: Developing Expert Advisors (EA) from scratch based on your strategy. Creating Custom Indicators and Scripts. Modifying existing EAs (adding
I need an arrow that works on mt5 that shows winrate with potential to be triggered on binary.com or deriv. Show me example arrows as picture or video. I'm not interested in coming up with the idea i just want something that works and has source code. Show me examples and state your budget or cost for the solution
Hi, I have a specific set of rules and a strategy to execute a trade. I'm looking for a developer to assist me in developing an MQL5 EA based on my strategies
Project Overview We are seeking an experienced MetaTrader 5 (MT5) / MQL5 developer to design and build a production-ready Expert Advisor intended for live trading with capital at risk . This is not a hobby, experimental, or retail-grade EA. We are only interested in developers with proven experience delivering robust, well-tested MT5 systems . Project Objective Design and implement a high-quality MT5 Expert Advisor

プロジェクト情報

予算
10 - 20 USD
締め切り
最低 1 最高 2 日