nemox-0001_133

Author: Copyright � 2005, MetaQuotes Software Corp.
Orders Execution
Checks for the total of open ordersIt Closes Orders by itself It automatically opens orders when conditions are reached
Indicators Used
Fractals
Miscellaneous
It issuies visual alerts to the screen
0 Views
0 Downloads
0 Favorites

Profitability Reports

AUD/USD Oct 2024 - Jan 2025
65.00 %
Total Trades 822
Won Trades 0
Lost trades 0
Win Rate 0.00 %
Expected payoff -7.12
Gross Profit 10831.60
Gross Loss -16684.40
Total Net Profit -5852.80
-100%
-50%
0%
50%
100%
GBP/USD Oct 2024 - Jan 2025
57.00 %
Total Trades 802
Won Trades 408
Lost trades 394
Win Rate 0.51 %
Expected payoff -9.44
Gross Profit 10132.70
Gross Loss -17705.60
Total Net Profit -7572.90
-100%
-50%
0%
50%
100%
nemox-0001_133
//+------------------------------------------------------------------+
//|                                                   ShadowTrader   |
//|                      Copyright © 2005, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//|                                                             v1.2 |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2005, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"

extern double Lots     = 0.1;
extern int TakeProfit  =  500;
extern int StopLoss    =  500;
extern int limit       =   5; // Óðîâåíü óñòàíîâêè îòëîæåííîãî îðäåðà
extern int ProfitLevel =  30; // Îáùèé ïðîôèò äëÿ âñåõ ïîçèöèé ïðè êîòîðîì îíè çàêðûâàþòñÿ

static int magicNumber = 23456;
static datetime prev_min = D'1.1.1'; // Ïðåäûäóùèé ìèíèìóì
static datetime prev_max = D'1.1.1'; // Ïðåäûäóùèé ìàêñèìóì

bool AllowTrade,NewBar,OrdersClose,OpenSell,OpenBuy;
datetime LastTrade;
int ticket,n;

//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
{
   AllowTrade=True;OrdersClose=false;OpenSell=false;OpenBuy=false;
   LastTrade=CurTime();
   ticket=0;n=0;
   return(0);
}

//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
{
   return(0);
}


//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
{
if ((Year()<2005) || (Month()<7)) return (0);

double iFractals_up = 0; // Ìàêñèìóì
double iFractals_lo = 0; // Ìèíèìóì
double TP =0,SL=0,price=0,totalprofit=0;
int cnt=0,i=0,totalcountpos=0;

   
//Òèïû îòêðûòûõ îðäåðîâ
int ps=0,pb=0,ss=0,sb=0,ls=0,lb=0;
   

//+------------------------------------------------------------------------------------------------+
//| Ìîäóëü ïîäñ÷¸òà îòêðûòûõ îðäåðîâ                                           
//+------------------------------------------------------------------------------------------------+
//Åñëè åñòü õîòü îäèí îòêðûòûé îðäåð, îïðåäåëÿåì òèï îòêðûòîãî îðäåðà
for (cnt=OrdersTotal()-1;cnt>=0;cnt--)
{  
   OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
       
   if (OrderType()==OP_SELL && OrderSymbol()==Symbol())
   {  //åñòü îòêðûòàÿ êîðîòêàÿ ïîçèöèÿ
      ps=ps+1;totalcountpos=totalcountpos+1;
      totalprofit=totalprofit+OrderProfit();
   }
   if (OrderType()==OP_BUY  && OrderSymbol()==Symbol())
   {  //åñòü îòêðûòàÿ äëèííàÿ ïîçèöèÿ
      pb=pb+1;totalcountpos=totalcountpos+1;
      totalprofit=totalprofit+OrderProfit();
   }
   if (OrderType()==OP_SELLSTOP && OrderSymbol()==Symbol())
   {  //åñòü îòëîæåííûé îðäåð SellStop
      ss=ss+1;totalcountpos=totalcountpos+1;
   }
   if (OrderType()==OP_BUYSTOP && OrderSymbol()==Symbol())
   {  //åñòü îòëîæåííûé îðäåð BuyStop
      sb=sb+1;totalcountpos=totalcountpos+1;
   }
} 
//+------------------------------------------------------------------------------------------------+
//| Êîíåö ìîäóëÿ ïîäñ÷¸òà îòêðûòûõ îðäåðîâ                                           
//+------------------------------------------------------------------------------------------------+

//+------------------------------------------------------------------------------------------------+
//| Åñëè îáùèé ïðîôèò ïî âñåì îòêðûòûì ïðåâûøàåò íàø óðîâåíü, äàåì ïðèêàç íà çàêðûòèå âñåõ îðäåðîâ                                           
//+------------------------------------------------------------------------------------------------+
if (totalprofit>ProfitLevel)
{
AllowTrade=false;
OrdersClose=true;
}
//+------------------------------------------------------------------------------------------------+
//| Ìîäóëü çàêðûòèÿ âñåõ îðäåðîâ                                           
//+------------------------------------------------------------------------------------------------+

//+------------------------------------------------------------------------------------------------+
//| Ìîäóëü çàêðûòèÿ âñåõ îðäåðîâ                                           
//+------------------------------------------------------------------------------------------------+
if (OrdersClose)
{
AllowTrade=false;
bool result=false;

for (cnt=OrdersTotal()-1;cnt>=0;cnt--)
{  
   if (((CurTime()-LastTrade)<10) || (LastTrade==0)) return (0);
   result=false;
   OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
   RefreshRates();
   {
      if ((OrderSymbol()==Symbol()) && (OrderType()==OP_BUY))
      {
         result=OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,Digits),5,Yellow);  
         if (result){ LastTrade=CurTime();break; }
      }
      if ((OrderSymbol()==Symbol()) && (OrderType()==OP_SELL))
      {
         result=OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask,Digits),5,Blue );  
         if (result){ LastTrade=CurTime();break; }
      }
      if ((OrderSymbol()==Symbol()) && (OrderType()==OP_BUYSTOP) && (OrderMagicNumber()== magicNumber))
      {
         result=OrderDelete(OrderTicket());  
         if (result){ LastTrade=CurTime();break; }
      }   
      if ((OrderSymbol()==Symbol()) && (OrderType()==OP_SELLSTOP) && (OrderMagicNumber()== magicNumber))
      {
         result=OrderDelete(OrderTicket());  
         if (result){ LastTrade=CurTime();break; }
      }   
   
   }
}

if(result==false)
{
   Alert("Order " , OrderTicket() , " failed to close. Error:" , GetLastError() );
   Sleep(3000);
}   
}
//+------------------------------------------------------------------------------------------------+
//| Êîíåö ìîäóëÿ çàêðûòèÿ âñåõ îðäåðîâ                                           
//+------------------------------------------------------------------------------------------------+

//+------------------------------------------------------------------------------------------------+
//| Åñëè îðäåðîâ áîëüøå íå îñòàëîñü, ÷åðåç 5 ñåêóíä íà÷èíàåì òîðãîâëþ çàíîâî                                         
//+------------------------------------------------------------------------------------------------+
if (totalcountpos==0)
{
    OrdersClose=false;
    Sleep(5000);
    AllowTrade=true;
}
//+------------------------------------------------------------------------------------------------+
//|                                          
//+------------------------------------------------------------------------------------------------+
   
// Åñëè ñâîáîäíûé îñòàòîê ìåíüøå íåîáõîäèìîãî, òî âûõîäèì
if (AccountFreeMargin() < ((1000*Ask)*Lots)+100 ) 
{
Alert("Íåäîñòàòî÷íî äåíåã!");
return (0);
}
//+------------------------------------------------------------------------------------------------+
//| Ìîäóëÿ èíäèêàòîðà                                           
//+------------------------------------------------------------------------------------------------+
for (i = 0; i < 300; i++)   
{
   iFractals_up = iFractals(NULL, 0, MODE_UPPER, i);
   iFractals_lo = iFractals(NULL, 0, MODE_LOWER, i);
   if ((iFractals_up != 0) || (iFractals_lo != 0)) break;
}

// Íîâûé ìàêñèìóì ?
if ((iFractals_up != 0) && (Time[i] != prev_max) && (i < 3))
{
   OpenSell=true;prev_max = Time[i];
}
// Íîâûé ìèíèìóì ?
if ((iFractals_lo != 0) && (Time[i] != prev_min) && (i < 3))
{ 
   OpenBuy=true;prev_min = Time[i];
}   
//+------------------------------------------------------------------------------------------------+
//| Êîíåö ìîäóëÿ èíäèêàòîðà                                           
//+------------------------------------------------------------------------------------------------+

//+------------------------------------------------------------------------------------------------+
//| Îòêðûòèå îðäåðîâ                                          
//+------------------------------------------------------------------------------------------------+
if (OpenSell && AllowTrade)
{
   if ((CurTime()-LastTrade)<10) return (0);
   ticket=0;
   // Îòêðîåì îòëîæåííûé îðäåð.
   while (ticket==0)
   {
      RefreshRates();
      price = NormalizeDouble(High[i]+(limit*Point),Digits);
      SL    = price - StopLoss   * Point;
      TP    = price + TakeProfit * Point;      
      ticket=OrderSend(Symbol(), OP_BUYSTOP, Lots, price, 3, SL, TP, "OP_BUYSTOP", magicNumber, 0, Pink);
      Sleep(1000);
   }
   
   Sleep(10000);
      
   ticket=0;
   // Îòêðîåì îñíîâíîé îðäåð.
   while (ticket==0)
   {
      RefreshRates();
      SL = NormalizeDouble(Bid,Digits) + StopLoss   * Point;
      TP = NormalizeDouble(Bid,Digits) - TakeProfit * Point;
      ticket=OrderSend(Symbol(),OP_SELL,Lots,NormalizeDouble(Bid,Digits),3,SL,TP,"OP_SELL",magicNumber,0,Blue);   
      Sleep(1000);
   }
   LastTrade=CurTime();
   OpenSell=false;
}

if (OpenBuy && AllowTrade)
{
   if ((CurTime()-LastTrade)<10) return (0);
   ticket=0;
   // Îòêðîåì îòëîæåííûé îðäåð.
   while (ticket==0)
   {   
   RefreshRates();
   price = NormalizeDouble(Low[i]-(limit*Point),Digits);
   SL    = price + StopLoss   * Point;
   TP    = price - TakeProfit * Point;
   ticket=OrderSend(Symbol(), OP_SELLSTOP, Lots, price, 3, SL, TP, "OP_SELLSTOP", magicNumber, 0, SkyBlue);      
   Sleep(1000);
   }

   Sleep(10000);

   ticket=0;
   // Îòêðîåì îñíîâíîé îðäåð.
   while (ticket==0)
   {
   RefreshRates();
   SL = NormalizeDouble(Ask,Digits) - StopLoss   * Point;
   TP = NormalizeDouble(Ask,Digits) + TakeProfit * Point;
   ticket=OrderSend(Symbol(),OP_BUY,Lots,NormalizeDouble(Ask,Digits),3,SL,TP,"OP_BUY",magicNumber,0,Yellow);
   Sleep(1000);
   }
   LastTrade=CurTime();
   OpenBuy=false;
}
//+------------------------------------------------------------------------------------------------+
//| Êîíåö îòêðûòèÿ îðäåðîâ                                          
//+------------------------------------------------------------------------------------------------+

   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 ---