yug_oneMA_v2





//+------------------------------------------------------------------+
//|                                                 yug_oneMA_v0.mq4 |
//|                                                     Yuriy Tokman |
//|                                            yuriytokman@gmail.com |
//+------------------------------------------------------------------+
#property copyright "Yuriy Tokman"
#property link      "yuriytokman@gmail.com"


//123.86  3.02	period=44 	ma_shift=4 	ma_method=1 	applied_price=5 
//	shift=3 	level_high=25 	level_low=27 	shift_level=3 	stoploss=100 	takeprofit=50	
//timeframe=0 	Lots=0.01 	slippage=3 

extern string ____1___   = "Íàñòðîéêè èíäèêàòîðà";
extern int timeframe     = 0;//1, 5, 15, 30, 60, 240, 1440, 10080, 43200
extern int period        = 44;//Ïåðèîä óñðåäíåíèÿ äëÿ âû÷èñëåíèÿ ñêîëüçÿùåãî ñðåäíåãî.
extern int ma_shift      = 4;//Ñäâèã èíäèêàòîðà îòíîñèòåëüíî öåíîâîãî ãðàôèêà.
extern int ma_method     = 1;//0-3 Ìåòîä óñðåäíåíèÿ.
extern int applied_price = 5;//0-6 Èñïîëüçóåìàÿ öåíà.
extern int shift         = 3;//ñäâèã ÌÀ îòíîñèòåëüíî òåêóùåãî áàðà
extern int level_high    = 25;//âåðõíèé êîðèäîð
extern int level_low     = 27;//íèæíèé êîðèäîð
extern int shift_level   = 3;//ñäâèã òåêóùåãî áàðà

extern string ____2___   = "Íàñòðîéêè îðäåðîâ";
extern double Lots          = 0.01;//Ëîòû
extern int slippage         = 3;//ïðîñêàëüçûâàíèå
extern int stoploss         = 100;//ñòîïëîññ
extern int takeprofit       = 50;//òåéêïðîôèò
extern int magic            = 28081975;//ìàãè÷åñêèé íîìåð


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

   if(!ExistPositions(NULL,OP_BUY,magic) && GetSignal()==1)
   OrderSend(Symbol(),OP_BUY,Lots,Ask,slippage,Bid-stoploss*Point,Ask+takeprofit*Point,"",magic,0,Green);

   if(!ExistPositions(NULL,OP_SELL,magic) && GetSignal()==-1)
   OrderSend(Symbol(),OP_SELL,Lots,Bid,slippage,Ask+stoploss*Point,Bid-takeprofit*Point,"",magic,0,Red);

//----
   return(0);
  }
//+------------------------------------------------------------------+
 int GetSignal()
   {
    
	 double MA = iMA(NULL,timeframe,period,ma_shift,ma_method,applied_price,shift);
	 double MA_high = MA + level_high*Point;
	 double MA_low  = MA - level_low*Point;
	 double high = iHigh(NULL,timeframe,shift_level);
	 double low  = iLow(NULL,timeframe,shift_level);
	 double open = iOpen(NULL,timeframe,shift_level);
    
    int vSignal = 0;
    if (low>MA && low<MA_high && open>MA_high)vSignal = 1;//up 
    else
    if (high<MA && high>MA_low && open<MA_low)    vSignal =-1;//down

    
    return (vSignal);
   } 
   
//+----------------------------------------------------------------------------+
//|  Àâòîð    : Êèì Èãîðü Â. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Âåðñèÿ   : 06.03.2008                                                     |
//|  Îïèñàíèå : Âîçâðàùàåò ôëàã ñóùåñòâîâàíèÿ ïîçèöèé                          |
//+----------------------------------------------------------------------------+
//|  Ïàðàìåòðû:                                                                |
//|    sy - íàèìåíîâàíèå èíñòðóìåíòà   (""   - ëþáîé ñèìâîë,                   |
//|                                     NULL - òåêóùèé ñèìâîë)                 |
//|    op - îïåðàöèÿ                   (-1   - ëþáàÿ ïîçèöèÿ)                  |
//|    mn - MagicNumber                (-1   - ëþáîé ìàãèê)                    |
//|    ot - âðåìÿ îòêðûòèÿ             ( 0   - ëþáîå âðåìÿ îòêðûòèÿ)           |
//+----------------------------------------------------------------------------+
bool ExistPositions(string sy="", int op=-1, int mn=-1, datetime ot=0) {
  int i, k=OrdersTotal();

  if (sy=="0") sy=Symbol();
  for (i=0; i<k; i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
      if (OrderSymbol()==sy || sy=="") {
        if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
          if (op<0 || OrderType()==op) {
            if (mn<0 || OrderMagicNumber()==mn) {
              if (ot<=OrderOpenTime()) return(True);
            }
          }
        }
      }
    }
  }
  return(False);
}



Sample





Analysis



Market Information Used:

Series array that contains the highest prices of each bar
Series array that contains the lowest prices of each bar
Series array that contains open prices of each bar


Indicator Curves created:


Indicators Used:

Moving average indicator


Custom Indicators Used:

Order Management characteristics:
It automatically opens orders when conditions are reached
Checks for the total of open orders


Other Features:

BackTest : EURUSD on H1

From 2009-08-01 to 2009-10-01 Profit Factor:0.83 Total Net Profit:-8.16

BackTest : EURUSD on H1

From 2009-12-01 to 2010-01-17 Profit Factor:0.77 Total Net Profit:-10.51

BackTest : GBPUSD on H1

From 2010-01-01 to 2010-02-27 Profit Factor:0.70 Total Net Profit:-14.55

BackTest : USDCAD on H1

From 2009-12-01 to 2010-01-01 Profit Factor:0.56 Total Net Profit:-17.38

BackTest : USDJPY on H1

From 2009-11-01 to 2009-11-30 Profit Factor:0.50 Total Net Profit:-18.66

Request Backtest for yug_oneMA_v2


From : (yyyy/mm/dd) To: (yyyy/mm/dd)

Pair: Period: