55_MA_med_FIN

Author: Copyright � 2009, costy_
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
55_MA_med_FIN
//+------------------------------------------------------------------+
//|                               50 peHta6 tynnel MA medFIN.mq4.mq4 |
//|                                       Copyright © 2009, costy_   |
//|                                                 jena@deneg.net   |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2009, costy_"
#property link      "jena@deneg.net"
 
#define STUPID 0x60BE45
 
extern string     Lots_Desc         =  "Åñëè 0 ïðèìåíÿåòñÿ äèíàìè÷åñêèé ëîò";
extern double     Lots              =  1;
 
extern string     RiskPercentage_Desc =  "Íàñòðîéêà äëÿ äèíàìè÷åñêîãî ëîòà -- % ðèñêà. Åñëè 0 èñïîëüçóåòñÿ ìèíèìàëüíûé äîñòóïíûé ðàçìåð ëîòà, åñëè Lots > 0 ýòà íàñòðîéêà èãíîðèðóåòñÿ";
extern int        RiskPercentage    =  0;
 
extern int        Slippage          =  25;
 
extern string     Target_Desc       =  "Òåéê ïðîôèò, åñëè 0 ïðîôèò íå âûñòàâëÿåòñÿ 90-200";
extern int        Target            =  0 ;
 
extern string     Loss_Desc         =  "Ñòîï ëîññ, åñëè 0 ëîññ íå âûñòàâëÿåòñÿ 30-80";
extern int        Loss              =  0;
 
extern string     MA_DESC           =  "Ïåðèîäû ÌÀ ";
extern int        F55        = 55;
extern int        shift        = 13;
extern int        METHOD_MA=1;
extern int        timeframe =0;

extern string     Òîðãóåìûé_äèàïàçîí  =  " ÷àñàõ(íî -1÷àñ ò.ê. ma shift 1)";
extern int        îêîí÷àíèå=20;
extern int        íà÷àëî=8;

 
extern string     MaxOrders_Desc    =  "åñëè 0 êîëè÷åñòâî îäíîâðåìåííî îòêðûòûõ ïîçèöèé íå îãðàíè÷èâàåòñÿ 1-3";
extern int        MaxOrders         =  1;
 
double LotsToBid;
string symbol;
  bool áûëà_ïîêóïêà?;
  bool áûëà_ïðîäàæà?;
 //---------------------------
  int k=1;

 // èìïîðòèðóåì áèáëèîòåêó ôóíêöèé äëÿ ðàçëè÷íûõ âèäîâ òðåéëèíãà
// ïðèìåð âûçîâà ôóíêöèé - ñì. áëèæå ê êîíöó êîäà
#import "TrailingAll.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
 
 
  
 //--------------------------------------------------------------
// çàêðûòèå ïîêóïîê
void CloseBuys(int MagicNumber, int Slippage)
{
   for(int i = 0; i < OrdersTotal(); i++)
   {
      // already closed
      if(OrderSelect(i, SELECT_BY_POS) == false) continue;
      // not current symbol
      if(OrderSymbol() != Symbol()) continue;
      // order was opened in another way
      if(OrderMagicNumber() != MagicNumber) continue;
      
      if(OrderType() == OP_BUY)
      {
         if(OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, Blue))
         {
            i--;
         }
         RefreshRates();
      }
   }
}
 //-----------------------------------------------------
 
// çàêðûòèå ïðîäàæ
void CloseSells(int MagicNumber, int Slippage)
{
   for(int i = 0; i < OrdersTotal(); i++)
   {
      // already closed
      if(OrderSelect(i, SELECT_BY_POS) == false) continue;
      // not current symbol
      if(OrderSymbol() != Symbol()) continue;
      // order was opened in another way
      if(OrderMagicNumber() != MagicNumber) continue;
      
      if(OrderType() == OP_SELL)
      {
         if (OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, Red))
         {
            i--;
         }
         RefreshRates();
      }
   }
}
 //----------------------------------------------------
 
// ïîäñ÷åò êîë-âà îòêðûòûõ ïîçèöèé
int GetOrdersCount(int MagicNumber, int Type)
{
   int count = 0;
   
   for(int i = 0; i < OrdersTotal(); i++)
   {
      // already closed
      if(OrderSelect(i, SELECT_BY_POS) == false) continue;
      // not current symbol
      if(OrderSymbol() != Symbol()) continue;
      // order was opened in another way
      if(OrderMagicNumber() != MagicNumber) continue;
      
      if(OrderType() == Type)
      {
         count++;
      }
   }
   
   return (count);
}
 //-------------------------------------------------------
 
// Âû÷èñëåíèå äèíàìè÷åñêîãî ëîòà
double GetLotsToBid(int RiskPercentage)
{
   double margin = MarketInfo(Symbol(), MODE_MARGINREQUIRED);
   double minLot = MarketInfo(Symbol(), MODE_MINLOT);
   double maxLot = MarketInfo(Symbol(), MODE_MAXLOT);
   double step = MarketInfo(Symbol(), MODE_LOTSTEP);
   double account = AccountFreeMargin();
   
   double percentage = account*RiskPercentage/100;
   
   double lots = MathRound(percentage/margin/step)*step;
   
   if(lots < minLot)
   {
      lots = minLot;
   }
   
   if(lots > maxLot)
   {
      lots = maxLot;
   }
 
   return (lots);
}
 //----------------------------------------------------
 
// ïîêóïêà
void OpenBuy()
{
   double TP = 0;
   if (Target > 0)
   {
      TP = Bid + Target*Point;
   }
 
   double SL = 0;
   if (Loss > 0)
   {
      SL = Bid - Loss*Point;
   }
   
   if (Lots == 0) LotsToBid = GetLotsToBid(RiskPercentage);
    
   
   OrderSend(Symbol(), OP_BUY, LotsToBid, Ask, Slippage, SL, TP, NULL, STUPID, 0, Blue);
}
 //----------------------------------------------------
 
// ïðîäàæà
void OpenSell()
{
   double TP = 0;
   if (Target > 0)
   {
      TP = Ask - Target*Point;
   }
 
   double SL = 0;
   if (Loss > 0)
   {
      SL = Ask + Loss*Point;
   }
   
   if (Lots == 0) LotsToBid = GetLotsToBid(RiskPercentage);
   
   OrderSend(Symbol(), OP_SELL, LotsToBid, Bid, Slippage,  SL, TP, NULL, STUPID, 0, Red);
}
 //------------------------------------------------------
 // ïðîâåðêà óñëîâèé òîðãîâëè è óïðàâëåíèå ïîçèöèÿìè
void Check()
{
  int X=1*k;
  int Y=13*k;
 
 //--------------------------------------------------------------
   double ma1         = iMA(symbol, timeframe, F55, 0, METHOD_MA, PRICE_MEDIAN,  shift);
   double ma0         = iMA(symbol, timeframe, F55, 0, METHOD_MA, PRICE_MEDIAN,  1);



    if(Hour()<îêîí÷àíèå&&Hour()>íà÷àëî){
              if(ma0>ma1&&áûëà_ïîêóïêà?<1 ){CheckBuy();áûëà_ïîêóïêà?=2;áûëà_ïðîäàæà?=0;
                        }                                 //öåíà íàõîäèòñÿ ÂÛØÅ êàíàëà buy

              if(ma0<ma1&&áûëà_ïðîäàæà?<1 ){CheckSell();áûëà_ïðîäàæà?=2;áûëà_ïîêóïêà?=0;
                       }    }                             //öåíà íàõîäèòñÿ ÍÈÆÅ êàíàëà sell
  
     

}
void PrintComments() {
}
   
 //--------------------------------------------------------------
 //--------------------------------------------------------------
   
void CheckBuy()
{
      if (GetOrdersCount(STUPID, OP_SELL) > 0)
      {
         CloseSells(STUPID, Slippage);
        
      }
      if (GetOrdersCount(STUPID, OP_BUY) < MaxOrders || MaxOrders == 0) 
      {
         OpenBuy();
      }}
void CheckSell()
{
      if (GetOrdersCount(STUPID, OP_BUY) > 0)
      {
         CloseBuys(STUPID, Slippage);
      }
      if (GetOrdersCount(STUPID, OP_SELL) < MaxOrders || MaxOrders == 0) 
      {
         OpenSell();
      }}
 //--------------------------------------------------------------
 //--------------------------------------------------------------
int init()
{

   LotsToBid = Lots;
   symbol = Symbol();
}
 //--------------------------------------------------------------
int start()
{

PrintComments();
   // Check for open new orders and close current ones
   Check();
   for (int i=0;i<OrdersTotal();i++)
         {
         if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) break;
         if (OrderMagicNumber()!=STUPID || OrderSymbol()!=Symbol()) continue;
         if ((OrderType()==OP_BUY) || (OrderType()==OP_SELL))
            {
            // !!! ÏÐÈÌÅÐ ÂÛÇÎÂÀ ÔÓÍÊÖÈÉ ÒÐÅÉËÈÍÃÀ !!!
            // !!! ÏÐÈÌÅÐ ÂÛÇÎÂÀ ÔÓÍÊÖÈÉ ÒÐÅÉËÈÍÃÀ !!!
            // !!! ÏÐÈÌÅÐ ÂÛÇÎÂÀ ÔÓÍÊÖÈÉ ÒÐÅÉËÈÍÃÀ !!!
            // ñðåäè âîçìîæíûõ âàðèàíòîâ ìû, äîïóñòèì, âûáðàëè òðåéëèíã ïî ôðàêòàëàì. Òðåéëèíãóåì ïî 
            // 5-áàðíûì ôðàêòàëàì íà äíåâêàõ, ñ îòñòóïîì îò ýêñòðåìóìà â 3 ï., â çîíå ëîññîâ íå òðàëèì
            //TrailingByFractals(OrderTicket(),5,10,8,false);
            // (êàê âèäèì, äîñòàòî÷íî ïðåäâàðèòåëüíî âûáðàòü îðäåð OrderSelect() è âûçâàòü ôóíêöèþ, 
            // ïåðåäàâ åé òèêåò ïîçèöèè è îïðåäåëèâ íåîáõîäèìûå ïàðàìåòðû).
            // Ïðè æåëàíèè Âû ìîæåòå çàêîìåíòèðîâàòü äàííûé âèä òðåéëèíãà è ïîäêëþ÷èòü ëþáîé äðóãîé 
            // èëè äàæå "ñêîíñòðóèðîâàòü" èç íèõ áîëåå èëè ìåíåå ñëîæíóþ êîíñòðóêöèþ.    
//--------------------------------------------------------------


//--------------------------------------------------------------
//| 1) ÒÐÅÉËÈÍÃ ÏÎ ÔÐÀÊÒÀËÀÌ                                            |
//| TrailingByFractals(int ticket,int tmfrm,int frktl_bars,int indent,bool trlinloss)

//| Ïàðàìåòðû:
//| ticket - óíèêàëüíûé ïîðÿäêîâûé íîìåð îðäåðà(âûáðàííûé ïåðåä âûçîâîì ôóíêöèè ñ ïîìîùüþ OrderSelect());
//| tmfrm - òàéìôðåéì, ïî áàðàì êîòîðîãî îñóùåñòâëÿåòñÿ òðåéëèíã (âàðèàíòû - 1, 5, 15, 30, 60, 240, 1440, 10080, 43200);
//| bars_n - êîëè÷åñòâî áàðîâ â ñîñòàâå ôðàêòàëà (íå ìåíüøå 3);
//| indent - îòñòóï (ïóíêòîâ) îò ýêñòðåìóìà ïîñëåäíåãî ôðàêòàëà, íà êîòîðîì áóäåò ðàçìåùåí ñòîïëîññ (íå ìåíüøå 0);
//| trlinloss - óêàçàòåëü òîãî, ñëåäóåò ëè ïåðåäâèãàòü ñòîïëîññ íà "ëîññîâîì" ó÷àñòêå, ò.å. â èíòåðâàëå ìåæäó 
//|    íà÷àëüíûì ñòîïëîññîì è êóðñîì îòêðûòèÿ (true - òðàëèì, false - òðåéëèíã íà÷èíàåòñÿ òîëüêî ïðè óñëîâèè, 
//|    ÷òî íîâûé ñòîïëîññ "ëó÷øå" êóðñà îòêðûòèÿ, "â ïðîôèòå").

//TrailingByFractals(OrderTicket(),5,8,8,false);
            
//--------------------------------------------------------------
//| 2) ÒÐÅÉËÈÍà ÏÎ ÒÅÍßÌ N ÑÂÅ×ÅÉ                                       |
//|  TrailingByShadows(int ticket,int tmfrm,int bars_n, int indent,bool trlinloss)

//| Ïàðàìåòðû:
//| ticket - óíèêàëüíûé ïîðÿäêîâûé íîìåð îðäåðà (âûáðàííûé ïåðåä âûçîâîì ôóíêöèè ñ ïîìîùüþ OrderSelect());
//| tmfrm - òàéìôðåéì, ïî áàðàì êîòîðîãî îñóùåñòâëÿåòñÿ òðåéëèíã (âàðèàíòû - 1, 5, 15, 30, 60, 240, 1440, 10080, 43200);
//| bars_n - êîëè÷åñòâî áàðîâ, êîòîðûå èñïîëüçóþòñÿ äëÿ îïðåäåëåíèÿ óðîâíÿ ñòîïëîññà (íå ìåíüøå 1);
//| indent - îòñòóï (ïóíêòîâ) îò âûáðàííîãî high/low, íà êîòîðîì áóäåò ðàçìåùåí ñòîïëîññ (íå ìåíüøå 0);
//| trlinloss - óêàçàòåëü òîãî, ñëåäóåò ëè ïåðåäâèãàòü ñòîïëîññ íà "ëîññîâîì" ó÷àñòêå, ò.å. 
//|   â èíòåðâàëå ìåæäó íà÷àëüíûì ñòîïëîññîì è êóðñîì îòêðûòèÿ (true - òðàëèì, false - òðåéëèíã íà÷èíàåòñÿ òîëüêî ïðè óñëîâèè, 
//|   ÷òî íîâûé ñòîïëîññ "ëó÷øå" êóðñà îòêðûòèÿ, "â ïðîôèòå").          
   
//TrailingByShadows(OrderTicket(),5,10,4,false);      

//--------------------------------------------------------------
//| 3) ÒÐÅÉËÈÍà ÑÒÀÍÄÀÐÒÍÛÉ-ÑÒÓÏÅÍ×ÀÑÒÛÉ   
//| TrailingStairs(int ticket,int trldistance,int trlstep)

//| Ïàðàìåòðû:
//| ticket - óíèêàëüíûé ïîðÿäêîâûé íîìåð îðäåðà (âûáðàííûé ïåðåä âûçîâîì ôóíêöèè ñ ïîìîùüþ OrderSelect());
//| trldistance - ðàññòîÿíèå îò òåêóùåãî êóðñà (ïóíêòîâ), íà êîòîðîì "òðàëèì" (íå ìåíüøå MarketInfo(Symbol(),MODE_STOPLEVEL));
//| trlstep - "øàã" èçìåíåíèÿ ñòîïëîññà (ïóíêòîâ) (íå ìåíüøå 1).

//TrailingStairs(OrderTicket(),30,15);

//--------------------------------------------------------------
//| 4) ÒÐÅÉËÈÍÃ ÑÒÀÍÄÀÐÒÍÛÉ-"ÓÄÀÂÊÀ" 
//| TrailingUdavka(int ticket,int trl_dist_1,int level_1,int trl_dist_2,int level_2,int trl_dist_3)

//| Ïàðàìåòðû:
//| ticket - óíèêàëüíûé ïîðÿäêîâûé íîìåð îðäåðà (âûáðàííûé ïåðåä âûçîâîì ôóíêöèè ñ ïîìîùüþ OrderSelect());
//| trl_dist_1 - èñõîäíîå ðàññòîÿíèå òðåéëèíãà (ïóíêòîâ) (íå ìåíüøå MarketInfo(Symbol(),MODE_STOPLEVEL), 
//|            áîëüøå trl_dist_2 è trl_dist_3);
//| level_1 - óðîâåíü ïðîôèòà (ïóíêòîâ), ïðè äîñòèæåíèè êîòîðîãî äèñòàíöèÿ òðåéëèíãà áóäåò ñîêðàùåíà 
//|            ñ trl_dist_1 äî trl_dist_2 (ìåíüøå level_2; áîëüøå trl_dist_1);
//| trl dist_2 - ðàññòîÿíèå òðåéëèíãà (ïóíêòîâ) ïîñëå äîñòèæåíèÿ êóðñîì óðîâíÿ ïðîôèòà â level_1 ïóíêòîâ 
//|           (íå ìåíüøå MarketInfo(Symbol(),MODE_STOPLEVEL));
//| level_2 - óðîâåíü ïðîôèòà (ïóíêòîâ), ïðè äîñòèæåíèè êîòîðîãî äèñòàíöèÿ òðåéëèíãà áóäåò ñîêðàùåíà 
//|            ñ trl_dist_2 äî trl_dist_3 ïóíêòîâ (áîëüøå trl_dist_1 è áîëüøå level_1);
//| trl dist_3 - ðàññòîÿíèå òðåéëèíãà (ïóíêòîâ) ïîñëå äîñòèæåíèÿ êóðñîì óðîâíÿ ïðîôèòà â level_2 ïóíêòîâ (
//|            íå ìåíüøå MarketInfo(Symbol(),MODE_STOPLEVEL)).

//TrailingUdavka(OrderTicket(),int trl_dist_1,int level_1,int trl_dist_2,int level_2,int trl_dist_3);

//--------------------------------------------------------------
//| 5) ÒÐÅÉËÈÍÃ ÏÎ ÂÐÅÌÅÍÈ 
//| TrailingByTime(int ticket,int interval,int trlstep,bool trlinloss) 
  
//| Ïàðàìåòðû:
//| ticket - óíèêàëüíûé ïîðÿäêîâûé íîìåð îðäåðà (âûáðàííûé ïåðåä âûçîâîì ôóíêöèè ñ ïîìîùüþ OrderSelect());
//| interval - êîëè÷åñòâî öåëûõ ìèíóò ñ ìîìåíòà îòêðûòèÿ ïîçèöèè, ïî èñòå÷åíèþ êîòîðûõ ïûòàåìñÿ ïåðåìåñòèòü ñòîïëîññ 
//|           íà øàã trlstep ïóíêòîâ;
//| trlstep - øàã (ïóíêòîâ), íà êîòîðûé ïûòàåìñÿ ïåðåìåùàòü ñòîïëîññ ÷åðåç êàæäûå interval ìèíóò;
//| trlinloss - â äàííîì ñëó÷àå åñëè trlinloss==true, òî òðàëèì îò ñòîïëîññà, èíà÷å îò êóðñà îòêðûòèÿ 
//|           (åñëè ñòîïëîññ íå áûë óñòàíîâëåí, ==0, òðàëèì âñåãäà îò êóðñà îòêðûòèÿ).
 
//TrailingByTime(OrderTicket(),30,10,true);

//--------------------------------------------------------------
//| 6) ÒÐÅÉËÈÍÃ ÏÎ ATR (Average True Range, Ñðåäíèé èñòèííûé äèàïàçîí)
//| TrailingByATR(int ticket,int atr_timeframe,int atr1_period,int atr1_shift,int atr2_period,int atr2_shift,double coeff,bool trlinloss)
   
//| Ïàðàìåòðû:
//| ticket - óíèêàëüíûé ïîðÿäêîâûé íîìåð îðäåðà (âûáðàííûé ïåðåä âûçîâîì ôóíêöèè ñ ïîìîùüþ OrderSelect());
//| atr_timeframe - òàéìôðåéì, íà êîòîðîì ðàññ÷èòûâàåì çíà÷åíèå ATR (âàðèàíòû - 1, 5, 15, 30, 60, 240, 1440, 10080, 43200);
//| atr1_period - ïåðèîä ïåðâîãî ATR (áîëüøå 0; ìîæåò áûòü ðàâåí atr2_period, íî ëó÷øå îòëè÷åí îò ïîñëåäíåãî, ïî÷åìó - ñì. âûøå);
//| atr1_shift - äëÿ ïåðâîãî ATR ñäâèã "îêíà", â êîòîðîì ðàññ÷èòûâàåòñÿ çíà÷åíèå ATR, îòíîñèòåëüíî òåêóùåãî áàðà íà óêàçàííîå 
//|              êîëè÷åñòâî áàðîâ íàçàä (íåîòðèöàòåëüíîå öåëîå ÷èñëî);
//| atr2_period - ïåðèîä âòîðîãî ATR (áîëüøå 0);
//| atr2_shift - äëÿ âòîðîãî ATR ñäâèã "îêíà", â êîòîðîì ðàññ÷èòûâàåòñÿ çíà÷åíèå ATR, îòíîñèòåëüíî òåêóùåãî áàðà íà óêàçàííîå 
//|              êîëè÷åñòâî áàðîâ íàçàä (íåîòðèöàòåëüíîå öåëîå ÷èñëî);
//| coeff - ñòîïëîññ ñ÷èòàåì êàê ATR*coeff, ò.å. ýòî êîýôôèöèåíò, îïðåäåëÿþùèé, íà ðàññòîÿíèè ñêîëüêèõ ATR îò òåêóùåãî êóðñà 
//|         ñëåäóåò ðàçìåñòèòü ñòîïëîññ;
//| trlinloss - óêàçàòåëü òîãî, ñëåäóåò ëè ïåðåäâèãàòü ñòîïëîññ íà "ëîññîâîì" ó÷àñòêå, ò.å. â èíòåðâàëå ìåæäó íà÷àëüíûì 
//|             ñòîïëîññîì è êóðñîì îòêðûòèÿ (true - òðàëèì, false - òðåéëèíã íà÷èíàåòñÿ òîëüêî ïðè óñëîâèè, 
//|             ÷òî íîâûé ñòîïëîññ "ëó÷øå" êóðñà îòêðûòèÿ, "â ïðîôèòå").   
   
//TrailingByATR(OrderTicket(),int atr_timeframe,int atr1_period,int atr1_shift,int atr2_period,int atr2_shift,double coeff,bool trlinloss);
   
//--------------------------------------------------------------
//| 7) ÒÐÅÉËÈÍÃ RATCHET ÁÀÐÈØÏÎËÜÖÀ
//| 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)   
   
//| Ïàðàìåòðû:
//| ticket - óíèêàëüíûé ïîðÿäêîâûé íîìåð îðäåðà (âûáðàííûé ïåðåä âûçîâîì ôóíêöèè ñ ïîìîùüþ OrderSelect());
//| pf_level_1 - óðîâåíü ïðîôèòà (ïóíêòîâ), ïðè êîòîðîì ñòîïëîññ ïåðåíîñèì â áåçóáûòîê + 1 ïóíêò;
//| pf_level_2 - óðîâåíü ïðîôèòà (ïóíêòîâ), ïðè êîòîðîì ñòîïëîññ ïåðåíîñèì ñ +1 íà ðàññòîÿíèå pf_level_1 ïóíêòîâ îò êóðñà îòêðûòèÿ;
//| pf_level_3 - óðîâåíü ïðîôèòà (ïóíêòîâ), ïðè êîòîðîì ñòîïëîññ ïåðåíîñèì ñ pf_level_1 íà pf_level_2 ïóíêòîâ îò êóðñà îòêðûòèÿ 
//|              (íà ýòîì äåéñòâèÿ ôóíêöèè çàêàí÷èâàþòñÿ);
//| ls_level_1 - ðàññòîÿíèå îò êóðñà îòêðûòèÿ â ñòîðîíó "ëîññà", íà êîòîðîì áóäåò óñòàíîâëåí ñòîïëîññ ïðè äîñòèæåíèè ïðîôèòîì 
//|              ïîçèöèè +1 (ò.å. ïðè +1 ñòîïëîññ áóäåò ïîäæàò íà ls_level_1);
//| ls_level_2 - ðàññòîÿíèå îò êóðñà îòêðûòèÿ â "ëîññå", íà êîòîðîì áóäåò óñòàíîâëåí ñòîïëîññ ïðè óñëîâèè, ÷òî êóðñ ñíà÷àëà 
//|              îïóñêàëñÿ íèæå ls_level_1, à ïîòîì ïîäíÿëñÿ âûøå (ò.å. èìåëè ëîññ, íî îí íà÷àë óìåíüøàòüñÿ - 
//|              íå äîïóñòèì åãî ïîâòîðíîãî óâåëè÷åíèÿ);
//| ls_level_3 - ðàññòîÿíèå îò êóðñà îòêðûòèÿ "ìèíóñå", íà êîòîðîì áóäåò óñòàíîâëåí ñòîïëîññ ïðè óñëîâèè, ÷òî êóðñ ñíèæàëñÿ 
//|              íèæå ls_level_2, à ïîòîì ïîäíÿëñÿ âûøå;
//| trlinloss - óêàçàòåëü òîãî, ñëåäóåò ëè ïåðåäâèãàòü ñòîïëîññ íà "ëîññîâîì" ó÷àñòêå, ò.å. â èíòåðâàëå ìåæäó íà÷àëüíûì 
//|             ñòîïëîññîì è êóðñîì îòêðûòèÿ (true - òðàëèì, false - òðåéëèíã íà÷èíàåòñÿ òîëüêî ïðè óñëîâèè, 
//|             ÷òî íîâûé ñòîïëîññ "ëó÷øå" êóðñà îòêðûòèÿ, "â ïðîôèòå").   
   
//TrailingRatchetB(OrderTicket(),80,2000,1500,50,30,20,false);   
   
//--------------------------------------------------------------
//| 8) ÒÐÅÉËÈÍÃ ÏÎ ÖÅÍÂÎÌÓ ÊÀÍÀËÓ    
//| TrailingByPriceChannel(int iTicket,int iBars_n,int iIndent)

//| Ïàðàìåòðû:
//| iTicket - óíèêàëüíûé ïîðÿäêîâûé íîìåð îðäåðà (âûáðàííûé ïåðåä âûçîâîì ôóíêöèè ñ ïîìîùüþ OrderSelect());
//| iBars_n - ïåðèîä êàíàëà (êîë-âî áàðîâ, ñðåäè êîòðûõ èùåì íàèáîëüøèé õàé è íàèìåíüøèé ëîó - âåðõíþþ è íèæíþþ 
//|           ãðàíèöû êàíàëà ñîîòâåòñòâåííî);
//| iIndent - îòñòóï (ïóíêòîâ), ñ êîòîðûì óñòàíàâëèâàåì ñòîïëîññ îò ãðàíèöû êàíàëà.

//TrailingByPriceChannel(OrderTicket(),16,5);
 
//--------------------------------------------------------------
//|  9) ÒÐÅÉËÈÍÃ ÏÎ ÑÊÎËÜÇßÙÅÌÓ ÑÐÅÄÍÅÌÓ
//|  TrailingByMA(OrderTicket(),int iTmFrme,int iMAPeriod,int iMAShift,int MAMethod,int iApplPrice,int iShift,int iIndent)  
   
//| Ïàðàìåòðû:
//| iTicket - óíèêàëüíûé ïîðÿäêîâûé íîìåð îðäåðà (âûáðàííûé ïåðåä âûçîâîì ôóíêöèè ñ ïîìîùüþ OrderSelect());
//| iTmFrme - ïåðèîä ÷àðòà, íà êîòîðîì áóäåò ðàñ÷èòûâàòüñÿ ìóâèíã; äîïóñòèìûå âàðèàíòû ââîäà: 1 (M1), 5 (M5), 15 (M15), 30 (M30), 60 (H1), 240 (H4), 1440 (D), 10080 (W), 43200 (MN);
//| iMAPeriod - ïåðèîä óñðåäíåíèÿ äëÿ âû÷èñëåíèÿ ñêîëüçÿùåãî ñðåäíåãî;
//| iMAShift - ñäâèã èíäèêàòîðà îòíîñèòåëüíî öåíîâîãî ãðàôèêà;
//| iMAMethod - ìåòîä óñðåäíåíèÿ; äîïóñòèìûå âàðèàíòû ââîäà: 0 (MODE_SMA), 1 (MODE_EMA), 2 (MODE_SMMA), 3 (MODE_LWMA);
//| iApplPrice - èñïîëüçóåìàÿ öåíà; âàðèàíòû ââîäà: 0 (PRICE_CLOSE), 1 (PRICE_OPEN), 2 (PRICE_HIGH), 3 (PRICE_LOW), 4 (PRICE_MEDIAN), 5 (PRICE_TYPICAL), 6 (PRICE_WEIGHTED);
//| iShift - ñäâèã îòíîñèòåëüíî òåêóùåãî áàðà íà óêàçàííîå êîëè÷åñòâî ïåðèîäîâ íàçàä;
//| iIndent - îòñòóï (ïóíêòîâ) îò çíà÷åíèÿ ñðåäíåãî ïðè ðàçìåùåíèè ñòîïëîññà.

//    Äîïóñòèìûå âàðèàíòû ââîäà:   
//    iTmFrme:    1 (M1), 5 (M5), 15 (M15), 30 (M30), 60 (H1), 240 (H4), 1440 (D), 10080 (W), 43200 (MN);
//    iMAPeriod:  2-infinity, öåëûå ÷èñëà; 
//    iMAShift:   öåëûå ïîëîæèòåëüíûå èëè îòðèöàòåëüíûå ÷èñëà, à òàêæå 0;
//    MAMethod:   0 (MODE_SMA), 1 (MODE_EMA), 2 (MODE_SMMA), 3 (MODE_LWMA);
//    iApplPrice: 0 (PRICE_CLOSE), 1 (PRICE_OPEN), 2 (PRICE_HIGH), 3 (PRICE_LOW), 4 (PRICE_MEDIAN), 5 (PRICE_TYPICAL), 6 (PRICE_WEIGHTED)
//    iShift:     0-Bars, öåëûå ÷èñëà;
//    iIndent:    0-infinity, öåëûå ÷èñëà;
  
//TrailingByMA(OrderTicket(),5,21,0,0,0,0,0);

//--------------------------------------------------------------
//|  10) ÒÐÅÉËÈÍÃ "ÏÎËÎÂÈÍßÙÈÉ" 
//|  TrailingFiftyFifty(int iTicket,int iTmFrme,double dCoeff,bool bTrlinloss)   

//| Ïàðàìåòðû:
//| iTicket - óíèêàëüíûé ïîðÿäêîâûé íîìåð îðäåðà (âûáðàííûé ïåðåä âûçîâîì ôóíêöèè ñ ïîìîùüþ OrderSelect());
//| iTmFrme - ïåðèîä ÷àðòà, ïî áàðàì êîòîðîãî áóäåò îñóùåñòâëÿòüñÿ òðåéëèíã; äîïóñòèìûå âàðèàíòû ââîäà: 1 (M1), 5 (M5), 15 (M15), 30 (M30), 60 (H1), 240 (H4), 1440 (D), 10080 (W), 43200 (MN);

//| dCoeff - êîýôôèöèåíò, îïðåäåëÿþùèé òî, â ñêîëüêî ðàç áóäåò ñîêðàùåíî ðàññòîÿíèå ìåæäó êóðñîì íà ìîìåíò çàêðûòèÿ áàðà 
//|          è òåêóùèì ñòîïëîññîì;
//| bTrlinloss - óêàçàòåëü òîãî, ñëåäóåò ëè îñóùåñòâëÿòü òðåéëèíã íà ëîññîâîì ó÷àñòêå.
       
//TrailingFiftyFifty(OrderTicket(),15,2,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 ---