Trigger with horizontal or diagonal line

MQL4 Esperti C++

Lavoro terminato

Tempo di esecuzione 23 ore
Feedback del cliente
Good programmer, great job, thank you :)
Feedback del dipendente
Good Customer Thank you !

Specifiche

Hello,
I would like my order to trigger on a line I trace.

Example:

When the  moving average to 1 touches my red line
 then my order this triggers as on the photo ...


eurusd

















//+------------------------------------------------------------------+
//|                                                       test35.mq4 |
//|                                                              xxx |
//|                                              http://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "xxx"
#property link      "http://www.mql5.com"
#property version   "1.00"
#property strict
extern double  lots1          = 0.01;
extern double  lots2          = 0.03;
extern double  lots3          = 0.06;


input int      TakeProfit1     =   10;
input int      StopLoss1       =   10;
input int      TakeProfit2     =   10;
input int      StopLoss2       =   10;
input int      TakeProfit3     =   10;
input int      StopLoss3       =   10;


input int period=14;
input int period1=14; 
input int period2=14; 
input int period3=14; 
input int period4=14;


input int OverBought=51; // Over bought level
input int OverSold=49; // Over sold level
input int OverBought1=51; // Over bought level
input int OverSold1=49; // Over sold level
input int OverBought2=51; // Over bought level
input int OverSold2=49; // Over sold level
input int OverBought3=51; // Over bought level
input int OverSold3=49; // Over sold level
input int OverBought4=51; // Over bought level
input int OverSold4  =49;
//extern int     MovingPeriod         = 2;
//extern int     MovingShift          = 1;
//extern int Period_PCh = 20;
extern int     magic=321569;
extern double  Level          = 1.3923;
extern double  MaxDeviation   = 9;         // Max Deviation, points

bool RunOnce=false;
int last_order_check=false;
datetime EaStartTime=TimeCurrent();
double takeprofit1=TakeProfit1;
double stoploss1=StopLoss1;
double takeprofit2=TakeProfit2;
double stoploss2=StopLoss2;
double takeprofit3=TakeProfit3;
double stoploss3=StopLoss3;

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()

  {
   MathSrand(GetTickCount());
   if(Digits==5 || Digits==3)
     {
      takeprofit1  =TakeProfit1*10;
      stoploss1    =StopLoss1*10;
      takeprofit2  =TakeProfit2*10;
      stoploss2    =StopLoss2*10;
      takeprofit3  =TakeProfit3*10;
      stoploss3    =StopLoss3*10;
      
     }
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnTimer()
  {
   OnTick();
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  
  {
   if (RunOnce)// ExpertRemove();
   if(IsLastOrderClose())
     {
      OnInit();
      Print("Ea Closed Manually ");
      EaStartTime=TimeCurrent();
     }
        int ticet;
   int t=MathRand();
     
      if(CountVsego()==0)
     {
      //if(t>16383)
      //  {
        // if(Counts()==0) //  && (Ask >=Level && Ask<=Level+(MaxDeviation*_Point) && Level !=0))
          //if(Volume[0]>1) return;
              
             if(Counts()==0)//  &&    MA_Fast1>MA_Low1 && rsi>OverBought && Close[0] > High[4] && Bid <=Level && Bid >= Level-(MaxDeviation*_Point) && Level !=0)
             
           {
            ticet=OrderSend(Symbol(),OP_BUY,lots1,Ask,3,Bid-stoploss1*Point,Ask+takeprofit2*Point,"1",magic,0,clrGreen);
           }
       
      // Partie 1 
      // else if(t<16383)rsi>OverBought1if( Close[0] > High[1] )  Break1();[4]))
     // else if( Close[0] < Low[1] )  Break2();
  
       //  {
         if(Counts()==0 )//  &&  MA_Fast1<MA_Low1  && rsi<OverSold && Close[0] < Low[4] && Ask >=Level && Ask<=Level+(MaxDeviation*_Point) && Level !=0)
          
           {
            ticet=OrderSend(Symbol(),OP_SELL,lots1,Bid,3,Ask+stoploss1*Point,Bid-takeprofit2*Point,"1",magic,0,clrRed);
           }
        
      // Partie 1 
      // else if(t<16383)
         
         //if(Counts()==0//  && (Bid <=Level && Bid >= Level-(MaxDeviation*_Point) && Level !=0))
   
        
        
        
     // if(t>0)
     //   {
         if(Counts()==1)// && (MA_Fast1>MA_Low1 && rsi>OverBought && Close[0] > High[4]))// && (RunOnce || (Ask >=Level && Ask<=Level+(MaxDeviation*_Point) && Level !=0)))
          {
            ticet=OrderSend(Symbol(),OP_BUY,lots2,Ask,3,Bid-stoploss2*Point,Ask+takeprofit2*Point,"2",magic,0,clrGreen);
           }        
         //if (getLastOrderCloseType() == 1) ticet=OrderSend(Symbol(),OP_BUY,lots2,Ask,3,Bid-stoploss2*Point,Ask+takeprofit2*Point,"4",magic,0,clrGreen);
         //  if (getLastOrderCloseType() == 0) ticet=OrderSend(Symbol(),OP_SELL,lots2,Bid,3,Ask+stoploss2*Point,Bid-takeprofit2*Point,"3",magic,0,clrRed);
        
       // }
      // Partie 2 
     // else if(t<16383)
      //  {
         if(Counts()==1)// && (MA_Fast1<MA_Low1  && rsi<OverSold && Close[0] < Low[4]))// && (RunOnce || (Bid <=Level && Bid >= Level-(MaxDeviation*_Point) && Level !=0)))
          {
            ticet=OrderSend(Symbol(),OP_SELL,lots2,Bid,3,Ask+stoploss2*Point,Bid-takeprofit2*Point,"2",magic,0,clrRed);
           }
           
           
           
      //  }
     // if(t>16383)
     //   {
         if(Counts()==2)// &&  (MA_Fast1>MA_Low1 && rsi>OverBought && Close[0] > High[4]))
           {
            ticet=OrderSend(Symbol(),OP_BUY,lots3,Ask,3,Bid-stoploss3*Point,Ask+takeprofit3*Point,"3",magic,0,clrGreen);
           }
         // if (getLastOrderCloseType() == 1) ticet=OrderSend(Symbol(),OP_BUY,lots3,Ask,3,Bid-stoploss3*Point,Ask+takeprofit3*Point,"4",magic,0,clrGreen);
         //if (getLastOrderCloseType() == 0) ticet=OrderSend(Symbol(),OP_SELL,lots3,Bid,3,Ask+stoploss3*Point,Bid-takeprofit3*Point,"3",magic,0,clrRed);
        
     // } //(rsi<OverSold))
      //Partie 3 
     // else if(t<16383)rsi>OverBought2))
     //   {
        if(Counts()==2)// &&  (MA_Fast1<MA_Low1  && rsi<OverSold && Close[0] < Low[4]))// && (RunOnce || (Bid <=Level && Bid >= Level-(MaxDeviation*_Point) && Level !=0)))
           {
          ticet=OrderSend(Symbol(),OP_SELL,lots3,Bid,3,Ask+stoploss3*Point,Bid-takeprofit3*Point,"3",magic,0,clrRed);
           }
           
           
           
     
        
     }
  }
   int getLastOrderCloseType ()
   {
   datetime t = 0;
   int tick = -1;
   
   int i,total=OrdersHistoryTotal();
   for(i=0; i<total; i++) {
      if (OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)) {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==magic)
         {
            if (t < OrderCloseTime()){
               t = OrderCloseTime();
               tick = OrderTicket();
            }
         }
      }
   }
   
   for(i=0; i<total; i++) {
      if (OrderSelect(tick,SELECT_BY_TICKET)) {
         return OrderType();
      }
   }
   
   return tick;
}  
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int CountSELL()
  {
   int count=0;
   int i;
   for(i=OrdersTotal()-1;i>=0;i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==magic && OrderType()==OP_SELL)
            count++;
        }
     }
   return(count);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int CountBUY()
  {
   int count=0;
   int i;
   for(i=OrdersTotal()-1;i>=0;i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==magic && OrderType()==OP_BUY)
            count++;
        }
     }
   return(count);
  }
//+------------------------------------------------------------------+
int Counts()
  {
   int count=0,i;

   for(i=OrdersHistoryTotal()-1;i>=0;i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==magic && OrderOpenTime()>=EaStartTime)
           {
            if(OrderProfit()>0)
              {
               if(count==0)
                 {
                  OnInit();
                  EaStartTime=TimeCurrent();
                  RunOnce = true;
                  return(count);
                                              
                }
              }
            else
              {
               count++;
              }
           }
         if(count> 2 )
            {
               OnInit();
               EaStartTime=TimeCurrent();
               RunOnce = true;
              return(count);
            }
        }
     }
   return(count);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int CountVsego()
  {
   int Vsego;
   Vsego=CountBUY()+CountSELL();

   return(Vsego);
  }
//+------------------------------------------------------------------+
bool IsLastOrderClose()
  {
   bool signal=false;
   for(int i=OrdersHistoryTotal()-1;i>=0;i--)
     {
      bool select=OrderSelect(i,SELECT_BY_POS,MODE_HISTORY);
      if(select && OrderSymbol()==_Symbol && OrderMagicNumber()==magic)
        {
         if(OrderType()==OP_BUY && OrderOpenTime()>=EaStartTime)
           {
            if(OrderClosePrice()>OrderStopLoss() && OrderClosePrice()<OrderTakeProfit())
              {
               signal=true;
              }
            break;
           }
         else if(OrderType()==OP_SELL && OrderOpenTime()>=EaStartTime)
           {
            if(OrderClosePrice()<OrderStopLoss() && OrderClosePrice()>OrderTakeProfit())
              {
               signal=true;
              }
            break;
           }
        }
     }
   return(signal);
  }
//+------------------------------------------------------------------+


Con risposta

1
Sviluppatore 1
Valutazioni
(8)
Progetti
14
29%
Arbitraggio
1
0% / 0%
In ritardo
7
50%
Gratuito
2
Sviluppatore 2
Valutazioni
(22)
Progetti
28
29%
Arbitraggio
3
0% / 67%
In ritardo
7
25%
Gratuito
Ordini simili
I am looking for a professional developer to build a custom trading analysis software for me. This tool is NOT an automated trading bot (EA); it is an analysis dashboard to help me identify high-probability setups based on my strategy. Key Requirements: Multi-Timeframe Analysis: The software should scan 4 different timeframes (M15, M30, H1, H4, D1, WK1, MTH1) and alert me when my conditions are met. Indicator
I want to add and remove few things in ea need some modification needed in ea developer should have some trading knowledge also to understand the requirement better and have good experience in coding
Core Requirements: Two selectable timeframes - dropdown inputs to choose from M1, M5, M15, H1, H4, D1, W1, MN1 Timeframe 1 = Chart's own timeframe (if chart is M5, TF1 should be M5) Timeframe 2 = Higher timeframe for confluence All Ichimoku components displayed for both timeframes: Tenkan-sen Kijun-sen Senkou Span A Senkou Span B Chikou Span Cloud (bullish and bearish) Technical Settings: All buffers accessible for
Hello everyone, I am looking for a highly experienced MQL5 developer to build a fully automated Expert Advisor (EA) based strictly on Smart Money Concepts (SMC) 🔍 Core Strategy Requirements (SMC Only) The EA must be based on Advanced Smart Money Concepts , including: ✅ Market Structure (BOS & CHOCH) ✅ Liquidity concepts (equal highs/lows, stop hunts)✅ Trap Blocks / Fake Order Blocks detection ✅ Valid Order
I need a AI signal generating bot for forex trading that use the latest ai technology to track real time forex market, analyse and give signals. The bot should operate such that when i put it in a chart it will analyse the market, after several minutes it will display whether the trade is buying or selling. It should display the one minute, five minute,15minute, 30 minute, one hour, 4 hours and daily time frame
Hello I want to convert my tradingview indicators into Ninja trader can anyone help me with it it is urgent and I will like to discuss more about it to you if you can help me Kindly do well to bid on it
📌 JOB DESCRIPTION – FULLY AUTOMATED TRADING SYSTEM I am looking for an experienced developer to build a fully automated end-to-end trading system for MetaTrader 5. This is not an indicator-based bot and not a discretionary or black-box AI system. The system must follow a strict, deterministic rule-based trading framework that is already defined. 🎯 PROJECT GOAL Build a system where: A backend continuously evaluates
EA with Zones 30+ USD
Good day! I have an indicator .mq5 this indicator calculates and draw zones on the chart. My request is to add these specific zones drawn and calculated exactly as the indicator in the EA. A replicate behavior of the zones from the indicator to the EA. Thank you
I need a fully automated end-to-end system where a backend continuously runs my deterministic CORE EDGE validator on live market data, generates numeric JSON trade tickets (GO) or alert levels (NO-GO), and automatically pushes those instructions to the MT5 EA for execution. There are no manual signals. ROLE SPLIT (IMPORTANT) Backend (analysis & decision engine): Continuously evaluates live data using my CORE EDGE
I am looking for an experienced MQL4 / MQL5 developer to create a custom Expert Advisor (EA). Trading details: - Symbol: XAUUSD (Gold) only - Platform: MT4 or MT5 - Strategy type: Scalping (fast trades) - Timeframes: M1 / M5 - Fixed Stop Loss and Take Profit - Risk management: - Lot size based on balance OR fixed lot (user configurable) - Maximum trades per day (user configurable) - Spread and slippage filter -

Informazioni sul progetto

Budget
30+ USD
Scadenze
a 1 giorno(i)