-->

Expert Advisors • Indicators • Scripts • Libraries

MQL.RobotFX.org is the biggest collection of MetaTrader expert advisors (MT5 & MT4), indicators, scripts and libraries that can be used to improve trading results, minimize risks or simply automate trading tasks

Metatrader 4 Expert Advisor | New: Trading strategy Heads or Tails | Free MetaTrader Script

Explore the latest free tools from the MQL5 community. Here's a new indicator, expert advisor, or script for MetaTrader.

Image for Trading strategy Heads or Tails

For experienced investors, this strategy represents more of an experimental method for testing hypotheses, rather than a stable way to earn money.

Thus, although the strategy is simple and accessible to every beginner, it carries significant risks and practically has no chance of generating sustainable income in the long term.

Let's consider the main block of the random position opening signal:

if((b + s) == 0) // If there are no active positions

Here, the condition for the absence of open positions is checked. Variable b denotes the number of long ("buy") positions, variable s — short ("sell") positions. If the sum of both equals zero (b + s = 0), it means there is not a single open position.

Reduce lag and improve accuracy with the NonLagMA Expert Advisor for MT4/MT5. Discover it.

if(::MathRand() % 2 == 0) // Random selection of the position opening direction

Inside the condition block triggered previously, a random number is checked. The ::MathRand() function generates a pseudo-random number from 0 to 32767 inclusive. Then this number is divided modulo by 2 (% 2) — if the remainder is 0, the next block is executed.

 // Send a buy order with the specified parameters
         ticket = OrderSend(Symbol(),OP_BUY,iStartLots,Ask,iSlippage,
                  Ask - iStopLoss * _Point,       // Stop-loss price (current Ask value minus SL distance)
                  Ask + iTakeProfit * _Point,     // Take-profit price (current Ask value plus TP distance)
                  "VR Heads or Tails",            // Order comment
                  iMagicNumber,0,clrBlue);        // MagicNumber, expiration, blue arrow color
                  
         // Check if the order was placed successfully
         if(ticket<0)
            Print("OrderSend failed with an error #",GetLastError());  // Error message
         else
            Print("The OrderSend function has been completed successfully");  // Success message
return;

If the random number is even (the remainder of division by 2 equals 0), the trading robot opens a long position (buy) with a volume of iLots. After successfully opening the position, the function execution is interrupted by the return operator.

 // Send a sell order with the specified parameters
         ticket = OrderSend(Symbol(),OP_SELL,iStartLots,Bid,iSlippage,
                  Bid + iStopLoss * _Point,       // Stop-loss price (current Bid value plus SL distance)
                  Bid - iTakeProfit * _Point,     // Take-profit price (current Bid value minus TP distance)
                  "VR Heads or Tails",            // Order comment
                  iMagicNumber,0,clrRed);         // MagicNumber, expiration, red arrow color
                  
         // Check if the order was placed successfully
         if(ticket<0)
            Print("OrderSend failed with an error #",GetLastError());  // Error message
         else
            Print("The OrderSend function has been completed successfully");  // Success message
return;

If the random number was odd (the remainder of division by 2 differed from zero), a short position (sell) with a volume of iLots is opened, and the further execution of the function is also terminated.

Final logic of the fragment:

  • The presence of the trader's open positions is checked.
  • If there are no open positions, a random trade direction is chosen: either buy (long), or sell (short).
  • An opened trade automatically stops the further operation of the function.

Thus, this code is a simple example of an algorithm that makes the decision to open a market position randomly.

Level up your trading with professional RobotFX expert advisors and indicators. Visit www.robotfx.org for proven MT4/MT5 tools.

68251

Best MetaTrader Indicators + Profitable Expert Advisors