Welcome Forex EA downloads & MT4/MT5 auto-trading resources — EAs, Gold EAs, quant tools and real-world automation.
Sign In Sign Up

iMFISignAlert - MetaTrader 5 Script | Forex Indicator Download - MT4/MT5 Resources

author EAcpu | 5 reads | 0 comments |

iMFISignAlert - indicator for MetaTrader 5

iMFISignAlert - indicator for MetaTrader 5

The Semaphore Arrow signal indicator is based on the classic Money Flow Index oscillator, leaving overbought and oversold areas, with the functionality of alerts, emails and push notifications to mobile devices.

In order to implement alerts, email messages and push notifications, the following changes were made to the indicator code:

 Input unit number = 1 ; //The number of bars of the signal
Input boolean sound on = true ; //enable alert
Input unit alarm number = 2 ; //Alarm number
input boolean email-on = false ; //enable mailing signal
input boolean pressed = false ; //enable signaling to mobile devices
  • Three new functions have been added at the end of the indicator code: BuySignal(), SellSignal() and GetStringTimeframe()
     //+------------------------------------------------------------------+
    //|Buy signal function |
    //+------------------------------------------------------------------+
    Blank buy signal( string signal sir name, // Indicator name text for emails and push messages double buy arrow(&B)[], // Indicator buffer with buy signal constant integer rate_total, // Current number of bars constant integer ex_calculation, // Number of bars for the previous price move constant double & close [], // Closing price constant integer & spread[]) // spread { //--- stationary unit counter = 0 ;
    if (Rates_total!=Prev_calculated) counter = 0 ;
    
    boolean buysignal = false ;
    booleanSeriesTest = array getSeries (BuyArrow);
    integer exponent;
    if (series test) index = integer (number of items);
    Other indexes=Rates_total- integer (number of items) -1 ;
    if ( Normalized Double (BuyArrow[index], _number ) && BuyArrow[index]!= null_VALUE ) BuySignal= True ;
    if (BuySignal && counter<=NumberofAlerts)
        {
          counter++;
    MqlDateTimeTM ;
    BuildTime ( timecurrent (),tm);
    string literal = string time ( timecurrent (), TIME_DATE ) + "" + string (tm.hour) + ":" + string (tm.minute);
          SeriesTest = arrayGetSeries ( close );
    if (series test) index = integer (number of items);
    Other indexes=Rates_total- integer (number of items) -1 ;
    double question = close [index];
    double bid = close [index];
          SeriesTest = arrayGetSeries (spread);
    if (series test) index = integer (number of items);
    Other indexes=Rates_total- integer (number of items) -1 ;
    bid += spread[index];
    Thin string question = double to string ( question , _number );
    stringbid = double to string ( bid , _number );
    String sPeriod=GetStringTimeframe( ChartPeriod ());
    if (sound on) alert ( "buy signal\n ask=" , ask , "\n bid=" , bid , "\n current time=" , text, "\n symbol=" , symbol (), "period=" ,s period);
    if (email) send mail (signal sir name + ": buy signal alert" , "buy signal at inquiry =" + ask + ", bid =" + bid + ", date = " + text + " symbol = " + symbol () + " period = " + s period);
    s="keyword">If (push) send notification (Signal Mr. Name + ": Buy signal at Ask=" + Ask + ", Bid = " + Bid + ", Date = " + Text + " Symbol = " + Symbol () + "Period = " + sPeriod); } //--- } //+--------------------------------------------------------------------------------+ // | Sell Signal Function | //+--------------------------------------------------------------------------------+ Blank Sell Signal( String Signal Mr. Name, // Indicator name text for emails and push messages Double sales arrows (&S)[], // indicator buffer with sell signals constant integer rates_total, // current number of bars constant integer prev_calculated, // number of bars of the previous price movement constant double & close [], // closing price constant integer &spread[]) // spread { //--- stationary unit counter = 0 ; if (Rates_total!=Prev_calculated) counter = 0 ; boolean SellSignal = False ; boolean Series Test = Array Get Series (Sell Arrow); integer index; if (SeriesTest) index = integer (number of bars); else index = Rates_total - integer (number of bars) - 1 ; if ( normalized double (SellArrow[index], _Number ) && SellArrow[index]!= null_VALUE ) sell signal = true ; if (SellSignal && Counter<=NumberofAlerts) { Counter++; MqlDateTimeTM ; BuildTime ( timecurrent (),tm); string literal = string time ( timecurrent (), TIME_DATE ) + "" + string (tm.hour) + ":" + string (tm.minute); Series test = array to get series ( closed ); if (series test) index = integer (number of bars); other indexes = Rates_total- integer (number of bars) - 1 ; double ask = close [index]; double bid = close [index]; series test = array to get series (propagation); if (series test) index = integer (number of bars); other indexes = Rates_total- integer (number of bars) - 1 ; bid +=spread[index]; string ask = Double to String(ask, _number);string bid=Double to String ( bid , _number ) ; string sPeriod=GetStringTimeframe( ChartPeriod ()); if (sound on) alert ( "sell signal\n ask=" , ask , "\n bid =" , bid , "\n current time= " ,text, "\n symbol= " , symbol (), "period =" ,s period); if (email) send mail (signal sir name+> ": sell signal alert", "sell signal on ask=" + ask + ", bid = " + bid + ", date = " + text + " symbol = " + symbol () + " period = " + s period); if ( push) send notification ( signal sir name + ": sell signal on ask= " + ask + ", bid = " + bid + ", date = " + text + " symbol = " + symbol ( ) + " period = " + s period); ;
  • Added several calls to the BuySignal() and SellSignal() functions after the indicator calculation period in the OnCalculate() block
     BuySignal( "iWPR Signature" ,BuyBuffer,rates_total,prev_calculated,close,spread);
        sell signal( "iWPR signature" ,SellBuffer,rates_total,prev_calculated,close,spread);
  • Where BuyBuffer and SellBuffer are the names of the indicator buffers used to store buy and sell signals. Due to empty values ​​in the indicator buffer must be set to zero or EMPTY_VALUE.

    It is assumed that the only calls to the BuySignal() and SellSignal() functions will be used in the OnCalculate() block of the indicator code.

    iMFISignAlert - indicator for MetaTrader 5

    Figure 1. iMFISignAlert indicator on chart

    iMFISignAlert - indicator for MetaTrader 5

    Figure 2. iMFISignAlert indicator. Generate an alert.


    Attachment download

    📎 imfisignalert.mq5 (11.84 KB)

    Source: MQL5 #15843

    iMFISignAlert - Important points before using the MetaTrader 5 script

    This page has been supplemented with structured instructions, focusing on the purpose of trading scripts, MT4/MT5 platform compatibility, testing procedures and risk control. Before downloading or deploying, it is recommended to first determine whether it is consistent with your own variety, cycle and account environment.

    Suitable for who to use

    • Users who want to quickly screen trading scripts and are willing to do simulation verification first.
    • People who need to compare MT4/MT5 EAs, indicators, scripts or source code projects.
    • Traders who wish to record backtests, parameters and risk boundaries before placing a trade.

    Testing and risk control suggestions

    • First verify the default parameters in the strategy tester or demo account, and then adjust the symbol, period, spread and trading period one by one.
    • Scalping, grid, martin, and high-frequency strategies should focus on observing maximum drawdowns, consecutive losses, slippage, and trading frequency.
    • It is not recommended to run any document directly on the real disk. At least observe the simulated disk performance for 2-4 weeks first.

    FAQ

    Can MT4 and MT5 be used interchangeably?
    Usually cannot be used directly. EX4/MQ4 corresponds to MT4, EX5/MQ5 corresponds to MT5, and the source code needs to be compiled in the corresponding MetaEditor.

    Is this resource guaranteed to be profitable?
    cannot. EAs, indicators and scripts can only be used as trading tools, and the results depend on parameters, market environment, spreads, slippage and risk control.

    What else can I continue to watch?
    Forex EA download , foreign exchange indicator download , EA evaluation , MQL5 CodeBase .

    English Search Notes

    This page is also optimized for English search intent around iMFISignAlert - MetaTrader 5 script . Related search terms include: trading script, MT4 script, MT5 script. Test any Forex EA, Expert Advisor, MT4/MT5 indicator, script or MQL source code with historical data and a demo account before live trading.

    Verification code Refresh