AboveBelowMA

Author: AD
Orders Execution
Checks for the total of open ordersIt Closes Orders by itself It automatically opens orders when conditions are reached
Indicators Used
Moving average indicator
0 Views
0 Downloads
0 Favorites

Profitability Reports

GBP/USD Oct 2024 - Jan 2025
0.00 %
Total Trades 0
Won Trades 0
Lost trades 0
Win Rate 0.0 %
Expected payoff 0.00
Gross Profit 0.00
Gross Loss 0.00
Total Net Profit 0.00
-100%
-50%
0%
50%
100%
NZD/USD Oct 2024 - Jan 2025
0.00 %
Total Trades 0
Won Trades 0
Lost trades 0
Win Rate 0.0 %
Expected payoff 0.00
Gross Profit 0.00
Gross Loss 0.00
Total Net Profit 0.00
-100%
-50%
0%
50%
100%
AboveBelowMA
#property copyright "AD"
#property link      ""

double Lots = 1;

// Åñòü ëè îòêðûòûå ñîâåòíèêîì îðäåðà? Åñëè åñòü, òî: èëè çàêðûâàåì, èëè çàïðåùàåì îòêðûâàòü íîâûé
bool CheckOrders(int Type)
{
 int ticket,i;
 bool Result;
 
 Result=True;
 if(OrdersTotal()!=0) 
  {
   for(i=0;i<OrdersTotal();i++)
    {
     ticket=OrderSelect(i,SELECT_BY_POS);
     if(OrderMagicNumber()==553)
      {
       if(OrderType()==Type)
        {
         if(Type==OP_BUY)
          {         
           if(OrderClose(OrderTicket(),OrderLots(),Bid,10)==False)
            Result=False;
           }
         if(Type==OP_SELL)
          {        
           if(OrderClose(OrderTicket(),OrderLots(),Ask,20)==False)
            Result=False;
           } 
         } 
       else Result=False;
       }
     }
   }
  return(Result); 
}


int start()
  {
   double MA, MAPrev;
   int ticket;
   
   MA = iMA("GBPUSD",15,1,0,MODE_EMA,PRICE_TYPICAL,0);
   MAPrev = iMA("GBPUSD",15,1,0,MODE_EMA,PRICE_TYPICAL,1);

   // Îòêðûòèå ââåðõ
   if(Open[0]<MA-Point && Ask<MA)   
     if(CheckOrders(OP_SELL)==True && MAPrev<MA)
      {
       Lots=NormalizeDouble(AccountFreeMargin()/10000, 1);
       if(Lots>5)
        Lots=5;
       ticket=OrderSend("GBPUSD",OP_BUY,Lots,Ask,10,0,0,NULL,553);
       if(ticket<0)
         Print("Íå óäàëîñü îòêðûòü îðäåð BUY. Îøèáêà N", GetLastError());
       }
       
   // Îòêðûòèå âíèç
   if(Open[0]>MA+Point && Bid>MA)
     if(CheckOrders(OP_BUY)==True && MAPrev>MA)
      {
       Lots=NormalizeDouble(AccountFreeMargin()/10000, 1);
       if(Lots>5)
        Lots=5;
       ticket=OrderSend("GBPUSD",OP_SELL,Lots,Bid,10,0,0,NULL,553);
       if(ticket<0)
        Print("Íå óäàëîñü îòêðûòü îðäåð SELL. Îøèáêà N", GetLastError());
       }
               
   return(0);
  }
//+------------------------------------------------------------------+

Comments

Markdown supported. Formatting help

Markdown Formatting Guide

Element Markdown Syntax
Heading # H1
## H2
### H3
Bold **bold text**
Italic *italicized text*
Link [title](https://www.example.com)
Image ![alt text](image.jpg)
Code `code`
Code Block ```
code block
```
Quote > blockquote
Unordered List - Item 1
- Item 2
Ordered List 1. First item
2. Second item
Horizontal Rule ---