MyFractals(example)

Author: I_D / ���� ������
Orders Execution
Checks for the total of open ordersIt can change open orders parameters, due to possible stepping strategyIt automatically opens orders when conditions are reached
0 Views
0 Downloads
0 Favorites

Profitability Reports

AUD/USD Oct 2024 - Jan 2025
0.00 %
Total Trades 18
Won Trades 0
Lost trades 0
Win Rate 0.00 %
Expected payoff -5.79
Gross Profit 0.00
Gross Loss -104.20
Total Net Profit -104.20
-100%
-50%
0%
50%
100%
MyFractals(example)
//+------------------------------------------------------------------+
//|                                                   MyFractals.mq4 |
//|                                                              I_D |
//|             Ñîôò äëÿ óïðàâëåíèÿ êàïèòàëîì: http://www.mymmk.com/ |
//+------------------------------------------------------------------+
#property copyright "I_D / Þðèé Äçþáàí"
#property link      "http://www.mymmk.com/ Ñîôò äëÿ óïðàâëåíèÿ êàïèòàëîì"

#define magic 3904900
// èìïîðòèðóåì áèáëèîòåêó ôóíêöèé äëÿ ðàçëè÷íûõ âèäîâ òðåéëèíãà
// ïðèìåð âûçîâà ôóíêöèé - ñì. áëèæå ê êîíöó êîäà
#import "TrailingAll_11.ex4"
   void TrailingByShadows(int ticket,int tmfrm,int bars_n, int indent,bool trlinloss);
   void TrailingByFractals(int ticket,int tmfrm,int frktl_bars,int indent,bool trlinloss);   
   void TrailingStairs(int ticket,int trldistance,int trlstep);   
   void TrailingUdavka(int ticket,int trl_dist_1,int level_1,int trl_dist_2,int level_2,int trl_dist_3);
   void TrailingByTime(int ticket,int interval,int trlstep,bool trlinloss);   
   void TrailingByATR(int ticket,int atr_timeframe,int atr1_period,int atr1_shift,int atr2_period,int atr2_shift,double coeff,bool trlinloss);
   void TrailingRatchetB(int ticket,int pf_level_1,int pf_level_2,int pf_level_3,int ls_level_1,int ls_level_2,int ls_level_3,bool trlinloss);  
   void TrailingByPriceChannel(int iTicket,int iBars_n,int iIndent);
   void TrailingByMA(int iTicket,int iTmFrme,int iMAPeriod,int iMAShift,int MAMethod,int iApplPrice,int iShift,int iIndent);
   void TrailingFiftyFifty(int iTicket,int iTmFrme,double dCoeff,bool bTrlinloss); 
   void KillLoss(int iTicket,double dSpeedCoeff);   
#import

//---- input parameters
extern int        iTrlBars = 5;   
static datetime   dPrevtime = 0;


//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
   {
   if (Bars<100)  {  Print("There are less than 100 bars (",Bars," on the chart. Traiding is not allowed.");   return(0);}
   return(0);
   }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
   {
   return(0);
   }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
   {
   if (dPrevtime == Time[0]) 
      return(0);
   else
      {
      // êîððåêòèðóåì îðäåðà ðàç â ïåðèîä
      dPrevtime = Time[0];
      
      // ïåðåìåííûå:
      int i;
      double lastbuyhigh;
      double lastbuystop;
      double lastselllow;
      double lastsellstop;
      int buys, sells; // pending orders
      int allopens; // open orders
      
      // íàõîäèì áëèæàéøèå ôðàêòàëû íà ïîêóïêó (ýêñòðåìóì - ââåðõ) è íà ïðîäàæó (ýêñòðåìóì - âíèç)
      // ôðàêòàë íà ïîêóïêó
      for(i=1;i<Bars;i++)
         {         
         if ((High[i]<High[i+1]) && (High[i+1]>=High[i+2]) && (High[i+1]>=High[i+3]))         
            {
            lastbuyhigh = High[i+1] + (3 + MarketInfo(Symbol(),MODE_SPREAD))*Point;   
            lastbuystop = Low[iLowest(Symbol(),0,1,4,i)] - 1*Point;
            break;
            }
         }
         
      // ôðàêòàë íà ïðîäàæó   
      for(i=1;i<Bars;i++)
         {         
         if ((Low[i]>Low[i+1]) && (Low[i+1]<=Low[i+2]) && (Low[i+1]<=Low[i+3]))         
            {
            lastselllow = Low[i+1] - 3*Point;   
            lastsellstop = High[iHighest(Symbol(),0,2,4,i)] + (1+MarketInfo(Symbol(),MODE_SPREAD))*Point;
            break;
            }
         } 
         
      // åñëè ïîñëåäíèé çàêðûâøèéñÿ áàð "ïðîáèâàåò" (ïðåâûøàåò - äëÿ ôðàêòàëîâ íà ïîêóïêó èëè íèæå - íà ïðîäàæó)
      // (ïîêóïêà) ýêñòðåìóì ïîñëåäíåãî ôðàêòàëà, òî: à) åñëè çàêðûâàåòñÿ âûøå ýêñòðåìóìà - âûñòàâëÿåì áàé ñòîï 
      // íà õàé ïðîáèâàþùåãî äàííîãî áàðà, á) åñëè çàêðûâàåòñÿ íèæå ýêñòðåìóìà - ñåëë ñòîï íà ëîó ïðîáèâàþùåãî áàðà,
      // òåéê - íà ñðåäèíó äèàïàçîíà
      // äëÿ íà÷àëà - ïðîñòî ôèëüòðóåì âõîäû îò òåõ, â êîòîðûõ ïðîáèâàþùàÿ ñâå÷à çàêðûâàåòñÿ íèæå ýêñòðåìóìà
      
      if ((High[1]>=lastbuyhigh) && (Close[1]>=lastbuyhigh))
         {
         // åñëè óæå åñòü òàêèå îðäåðà è ñåé÷àñ óñëîâèÿ ëó÷øå, ïðàâèì, èíà÷å âûñòàâëÿåì
         allopens = 0; buys = 0;
         for (i=0;i<OrdersTotal();i++)
            {
            if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) break;
            if (OrderMagicNumber()!=magic || OrderSymbol()!=Symbol()) continue;
            if (OrderType()==OP_BUYSTOP)
               {             
               if ((High[1]+(3+MarketInfo(Symbol(),MODE_SPREAD))*Point)<OrderOpenPrice())
               OrderModify(OrderTicket(),High[1]+(3+MarketInfo(Symbol(),MODE_SPREAD))*Point,lastbuystop,0,0,Red);               
               buys++;            
               }
            if (OrderType()==OP_BUY) allopens++;
            }
         // åñëè áàéñòîïîâ==0, âûñòàâëÿåì         
         if ((buys==0) && (allopens==0))
            {                     
            if (OrderSend(Symbol(),OP_BUYSTOP,0.1,High[1]+(3+MarketInfo(Symbol(),MODE_SPREAD))*Point,3,High[1]-(50+MarketInfo(Symbol(),MODE_SPREAD))*Point,0,NULL,magic,0,Red)<0)
            Print("Failed to send buy stop order. Err: ",GetLastError());
            }
         }
         
      if ((Low[1]<=lastselllow) && (Close[1]<=lastselllow))
         {
         // åñëè óæå åñòü òàêèå îðäåðà è ñåé÷àñ óñëîâèÿ ëó÷øå, ïðàâèì, èíà÷å âûñòàâëÿåì
         allopens = 0; sells = 0;
         for (i=0;i<OrdersTotal();i++)
            {
            if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) break;
            if (OrderMagicNumber()!=magic || OrderSymbol()!=Symbol()) continue;
            if (OrderType()==OP_SELLSTOP)
               {             
               if ((Low[1]-3*Point)>OrderOpenPrice())
               OrderModify(OrderTicket(),Low[1]-3*Point,lastsellstop,0,0,Blue);
               sells++;            
               }
            if (OrderType()==OP_SELL) allopens++;
            }
         // åñëè áàéñòîïîâ==0, âûñòàâëÿåì         
         if ((sells==0) && (allopens==0))
            {
            if (!OrderSend(Symbol(),OP_SELLSTOP,0.1,Low[1]-3*Point,3,Low[1]+50*Point,0,NULL,magic,0,Blue)<0)
            Print("Failed to send sell stop order. Err: ",GetLastError());
            }
         }         
         
      // äåéñòâèÿ ïî çàêðûòèþ áàðà (1 ðàç / áàð)
     for (i=0;i<OrdersTotal();i++)
         {
         if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) break;
         if (OrderMagicNumber()!=magic || OrderSymbol()!=Symbol()) continue;
         if ((OrderType()==OP_BUY) || (OrderType()==OP_SELL))
            {
            // !!! ÏÐÈÌÅÐ ÂÛÇÎÂÀ ÔÓÍÊÖÈÉ ÒÐÅÉËÈÍÃÀ !!!
            // !!! ÏÐÈÌÅÐ ÂÛÇÎÂÀ ÔÓÍÊÖÈÉ ÒÐÅÉËÈÍÃÀ !!!
            // !!! ÏÐÈÌÅÐ ÂÛÇÎÂÀ ÔÓÍÊÖÈÉ ÒÐÅÉËÈÍÃÀ !!!
            // ñðåäè âîçìîæíûõ âàðèàíòîâ ìû, äîïóñòèì, âûáðàëè òðåéëèíã ïî ôðàêòàëàì. Òðåéëèíãóåì ïî 
            // 5-áàðíûì ôðàêòàëàì íà äíåâêàõ, ñ îòñòóïîì îò ýêñòðåìóìà â 3 ï., â çîíå ëîññîâ íå òðàëèì
            TrailingByFractals(OrderTicket(),1440,5,3,false);
            // (êàê âèäèì, äîñòàòî÷íî ïðåäâàðèòåëüíî âûáðàòü îðäåð OrderSelect() è âûçâàòü ôóíêöèþ, 
            // ïåðåäàâ åé òèêåò ïîçèöèè è îïðåäåëèâ íåîáõîäèìûå ïàðàìåòðû).
            // Ïðè æåëàíèè Âû ìîæåòå çàêîìåíòèðîâàòü äàííûé âèä òðåéëèíãà è ïîäêëþ÷èòü ëþáîé äðóãîé 
            // èëè äàæå "ñêîíñòðóèðîâàòü" èç íèõ áîëåå èëè ìåíåå ñëîæíóþ êîíñòðóêöèþ.            
            //TrailingByShadows(OrderTicket(),60,iTrlBars,3,true);            
            //TrailingRatchetB(OrderTicket(),10,25,30,10,25,30,false);
            //TrailingStairs(OrderTicket(),50,10);  
            //TrailingByATR(OrderTicket(),1440,5,1,20,1,1,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 ---