jpytest





//+------------------------------------------------------------------+
//|                                                      jpytest.mq4 |
//|                      Copyright © 2009, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2009, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"
extern double LotSize=0.1; //Ðàçìåð ëîòà äëÿ òîðãîâëè
int MagicNumber;
int OpenedOrder;

double ExtendPoint=1;   //äëÿ ÄÖ ñ äîïîëíèòåëüíûì çíàêîì ExtendPoint=10


int init()
  {
   return(0);
  }

int deinit()
  {
   return(0);
  }

int start()
 {
  MagicNumber=900;
  datetime curtime=iTime(NULL,PERIOD_M1,0);
  if (ExistPositions(Symbol(),-1 , MagicNumber)) {
   if ((TimeHour(curtime)==5 && TimeMinute(curtime)==55) || (TimeHour(curtime)==6 && TimeMinute(curtime)==0))
   OrderClose(OpenedOrder,LotSize,Ask,3);
  } 
  else {
   if (TimeHour(curtime)==4 && TimeMinute(curtime)==0) 
   iSetOrder(Symbol(), OP_SELL, 20*ExtendPoint,10000);
  }

  MagicNumber=901;
  if (ExistPositions(Symbol(),-1 , MagicNumber)) {
   if ((TimeHour(curtime)==12 && TimeMinute(curtime)==55) || (TimeHour(curtime)==13 && TimeMinute(curtime)==0))
   OrderClose(OpenedOrder,LotSize,Bid,3);
  } 
  else {
   if (TimeHour(curtime)==10 && TimeMinute(curtime)==0) 
   iSetOrder(Symbol(), OP_BUY, 15*ExtendPoint,10000);
  }

  return(0);
 }

bool iSetOrder(string symbol, int cmd, double stoploss, double takeprofit, string comment=""){
int Dist_SL =stoploss; // Çàäàííûé SL (pt)
  int Dist_TP =takeprofit; // Çàäàííûé TP (pt)
  double Prots=0.10; // Ïðîöåíò ñâîá. ñð.
  string Symb=symbol; // Ôèíàíñ. èíñòðóìåíò
  double i=0;
  double SL;
  double TP;
  color arr;
  double price;
   
   
//--------------------------------------------------------------- 2 --
  while(i<5) // Öèêë îòêðûòèÿ îðä.
  {
  if (cmd==OP_BUY) {
  SL=Bid - New_Stop(stoploss)*Point; // Âû÷èñëåíèå SL îòêð.
  TP=Bid + New_Stop(takeprofit)*Point; // Âû÷èñëåíèå TP îòêð.
  Alert("Ïîïûòêà îòêðûòü Buy. Îæèäàíèå îòâåòà..");
  price=Ask;
  arr=Maroon; 
  } else
  {
  SL=Ask + New_Stop(stoploss)*Point; // Âû÷èñëåíèå SL îòêð.
  TP=Ask - New_Stop(takeprofit)*Point; // Âû÷èñëåíèå TP îòêð.
  price=Bid;
  arr=Green; 
 
  }//if else
  if (stoploss==0) SL=0;
  if (takeprofit==0) TP=0;

  int ticket=OrderSend(symbol,cmd,LotSize,price,3,SL,TP,comment,MagicNumber,0,arr);//Îòêðûòèå Buy  
 
  //--------------------------------------------------------- 7 --
  if (ticket>0) // Ïîëó÷èëîñü :)
  {
  Alert ("Îòêðûò îðäåð Buy ",ticket);
  OpenedOrder=ticket;
  return(True);
  break; // Âûõîä èç öèêëà
  }
  //--------------------------------------------------------- 8 --
  int Error=GetLastError(); // Íå ïîëó÷èëîñü :(
  switch(Error) // Ïðåîäîëèìûå îøèáêè
  {
  case 135:Alert("Öåíà èçìåíèëàñü. Ïðîáóåì åù¸ ðàç..");
  RefreshRates(); // Îáíîâèì äàííûå
  i=i+1;
  continue; // Íà ñëåä. èòåðàöèþ
  case 136:Alert("Íåò öåí. Æä¸ì íîâûé òèê..");
  while(RefreshRates()==false) // Äî íîâîãî òèêà
  Sleep(1); // Çàäåðæêà â öèêëå
  continue; // Íà ñëåä. èòåðàöèþ
  case 146:Alert("Ïîäñèñòåìà òîðãîâëè çàíÿòà. Ïðîáóåì åù¸..");
  Sleep(500); // Ïðîñòîå ðåøåíèå
  i=i+0.3;
  RefreshRates(); // Îáíîâèì äàííûå
  continue; // Íà ñëåä. èòåðàöèþ
  }
  switch(Error) // Êðèòè÷åñêèå îøèáêè
  {
  case 2 : Alert("Îáùàÿ îøèáêà.");
  break; // Âûõîä èç switch
  case 5 : Alert("Ñòàðàÿ âåðñèÿ êëèåíòñêîãî òåðìèíàëà.");
  break; // Âûõîä èç switch
  case 64: Alert("Ñ÷åò çàáëîêèðîâàí.");
  break; // Âûõîä èç switch
  case 133:Alert("Òîðãîâëÿ çàïðåùåíà");
  break; // Âûõîä èç switch
  default: Alert("Âîçíèêëà îøèáêà ",Error);// Äðóãèå âàðèàíòû  
  }
  break; // Âûõîä èç öèêëà
  }
//--------------------------------------------------------------- 9 --
  return(False);  
}
int New_Stop(int Parametr) // Ïðîâåðêà ñòîï-ïðèê.
  {
  int Min_Dist=MarketInfo(Symbol(),MODE_STOPLEVEL);// Ìèíèì. äèñòàíöèÿ
  if (Parametr < Min_Dist) // Åñëè ìåíüøå äîïóñò.
  {
  Parametr=Min_Dist; // Óñòàíîâèì äîïóñò.
  Alert("Óâåëè÷åíà äèñòàíöèÿ ñòîï-ïðèêàçà.");
  }
  return(Parametr); // Âîçâðàò çíà÷åíèÿ
  }

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:



Indicator Curves created:


Indicators Used:



Custom Indicators Used:

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


Other Features:

It issuies visual alerts to the screen

BackTest : EURUSD on H1

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

BackTest : EURUSD on H1

From 2009-12-01 to 2010-01-17 Profit Factor:1.15 Total Net Profit:16.00

BackTest : EURUSD on H1

From 2010-04-01 to 2010-04-30 Profit Factor:0.00 Total Net Profit:0.00

BackTest : EURUSD on H1

From 2010-05-01 to 2010-05-31 Profit Factor:0.00 Total Net Profit:0.00

BackTest : EURUSD on H1

From 2010-06-01 to 2010-06-30 Profit Factor:0.00 Total Net Profit:0.00

BackTest : GBPUSD on H1

From 2010-01-01 to 2010-02-27 Profit Factor:0.00 Total Net Profit:-10.20

BackTest : USDCAD on H1

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

BackTest : USDJPY on H1

From 2009-11-01 to 2009-11-30 Profit Factor:0.00 Total Net Profit:-23.08

Request Backtest for jpytest


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

Pair: Period: