Noah10pips2006





/*-----------------------------+
|			       |
| Shared by www.Aptrafx.com    |
|			       |
+------------------------------*/

//+------------------------------------------------------------------+
//|                                               noah10pips2006.mq4 |
//|                Copyright © 2005, Nick Bilak, beluck[AT]gmail.com |
//|                                    http://metatrader.50webs.com/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2005, Nick Bilak"
#property link      "http://metatrader.50webs.com/"
#include <stdlib.mqh>

extern int    MAGICNUM=1;
extern double Lots = 0.1;
extern int StopLoss = 55;
extern int TakeProfit = 100;
extern int TrailingStop = 0;
extern int slippage = 3;

extern double MaximumRisk = 7.0;
extern double MaxLot = 100.0;
extern double MinLot = 1.0;
extern bool FixedLot = true;

extern int TimeZoneOfData=0; // NY 7,15;
extern int StartHour=2; // 9:00 PM EST
extern int StartMinute=0;
extern int EndHour=23;
extern int EndMinute=0;
extern int FridayEndHour=21;
extern int SecureProfit=10;
extern int TrailSecureProfit=16; 
extern int TradeFriday=1; // 0- dont open trades on friday, 1- Trade on friday
extern int DontReverse=1;
extern int StartYear=2005;
extern int StartMonth=6;
extern int TradesSet=2;
extern int TypeSet=0; // 0 = NONE, 1 = SELL, 2 = BUY
extern int ReverseSet=0;  // 0=False, 1=True


int Today, RefDate, LastBarOfDay, FirstBarOfDay, Loop;
double pre_lo, pre_hi, myC, myO, lotsi;
int Cnt;
int OpenTrades, FilledOrders;
double BuyPrice, SellPrice;
int TimetoOpen, TimetoClose, tmp, i;
int Trades=2; string Type="NONE"; bool Reverse=False;
int mode,tr;
int myEndHour, myFridayEndHour, myStartHour;
bool FirstTime=True;
double range;
double hi_pass;
double lo_pass;
double MP;
double er_hi;
double er_lo;
double erange,erange2;
double r3;
double diffs,diffb;
int res; bool bres;

int start() {

   if (TimeYear(Time[0])<StartYear) return;

   lotsi=LotsRisk(StopLoss);

   if (FirstTime) {
	   if (TradesSet!=2 || TypeSet!=0 || ReverseSet!=0)  {
		   Trades  = TradesSet;
		   if (TypeSet == 0) Type = "NONE";
		   if (TypeSet == 1) Type = "SELL";
		   if (TypeSet == 2) Type = "BUY";
		   if (ReverseSet ==0) Reverse = False;
		   if (ReverseSet ==1) Reverse = True;
	   }
	   FirstTime=False;
   }

   Today=MathFloor(CurTime()/86400)*86400;
   Cnt=1;
   if (Today!=RefDate) {
	   RefDate=Today;
		   while ( Cnt<(Bars-1) && (Time[Cnt]-TimeZoneOfData*3600>=RefDate) ) {
			   Cnt++;
		   }
		   LastBarOfDay=Cnt;
		   if (DayOfWeek()==1) RefDate=Today-86400*3;
		   else RefDate=Today-86400;
		   while ( Cnt<(Bars-1) && (Time[Cnt]-TimeZoneOfData*3600>=RefDate) ) {
			   Cnt++;
		   }
	   FirstBarOfDay=Cnt-1;
   }

   pre_hi=High[Highest(NULL,0,MODE_HIGH,FirstBarOfDay-LastBarOfDay+1,LastBarOfDay)];
   pre_lo=Low[Lowest(NULL,0,MODE_LOW,FirstBarOfDay-LastBarOfDay+1,LastBarOfDay)];
   myC=Close[LastBarOfDay];

   //pre_hi=High[lookback];
   //pre_lo=Low[lookback];

   // *** calculate all the 10pip numbers ***
   hi_pass = pre_hi + 0.002 ;
   lo_pass = pre_lo - 0.002 ;
   MP = (((pre_hi - pre_lo) / 2.0) + pre_lo);
   MP = NormalizeDouble(MP,Digits);
   hi_pass = NormalizeDouble(hi_pass,Digits);
   lo_pass = NormalizeDouble(lo_pass,Digits);
   
   erange = (pre_hi - pre_lo);
   //erange2= (pre_hi - pre_lo)*10000;

   // *** which entry range amount to use? ***
   // *** less than 160 range ***
   if (erange <= 0.016) 
     r3 = 0.004; 
   else
     r3 = erange * 0.25;

   // *** set entry range ***
   er_hi = (pre_hi - r3);
   er_lo = (pre_lo + r3);
   erange2= (er_hi - er_lo)*10000.0;
   // *** print the numbers on the chart for reference ***
   //Comment("BUY @ ", er_hi,"\nSELL @ ", er_lo);

   // *** draw the lines on the chart ***

   // *** special case for ER if range < 80 ***
   // *** Prints an advisory message on the screen ***


   if (erange <= 0.008) {
	     ObjectDelete("LT80_txt");
	     ObjectCreate("LT80_txt",OBJ_TEXT,0,Time[35],MP);
	     ObjectSetText("LT80_txt","RANGE<80 ",10,"Arial",White);
        //SetObjectText("LT80_txt","RANGE<80 ","Arial",10,Black);
        //MoveObject("LT80_txt",OBJ_TEXT,time[35],mp,time[35],mp,Black);
   }

   // *** Draw lines ***
   ObjectDelete("MP");
   ObjectCreate("MP", OBJ_HLINE,0,Time[25],MP);
   ObjectSetText("MP","MP Range ",8,"Arial",White);
   ObjectSet("MP",OBJPROP_COLOR,Blue);
   ObjectSet("MP",OBJPROP_STYLE,STYLE_DOT);
   //MoveObject("MP",OBJ_HLINE,time[25],mp,Time[25],mp,Blue,1,STYLE_DOT);
   //SetObjectText("MP_txt","MP Range ","Arial",8,Black);
   //MoveObject("MP_txt",OBJ_TEXT,time[25],mp,time[25],mp,Black);

   ObjectDelete("ER_Hi");
   ObjectCreate("ER_Hi", OBJ_HLINE,0,Time[25],er_hi);
   ObjectSetText("ER_Hi","Below Here BUYZONE ->MP ",8,"Arial",White);
   ObjectSet("ER_Hi",OBJPROP_COLOR,Green);
   ObjectSet("ER_Hi",OBJPROP_STYLE,STYLE_DASH);
   //MoveObject("ER_Hi",OBJ_HLINE,time[25],er_hi,Time[25],er_hi,Green,1,STYLE_DASH);
   //SetObjectText("ER_Hi_txt","Below Here BUYZONE ->MP ","Arial",8,Black);
   //MoveObject("ER_Hi_txt",OBJ_TEXT,time[25],er_hi,time[25],er_hi,Black);

   ObjectDelete("ER_Lo");
   ObjectCreate("ER_Lo", OBJ_HLINE,0,Time[25],er_lo);
   ObjectSetText("ER_Lo","Above Here SELLZONE ->MP ",8,"Arial",White);
   ObjectSet("ER_Lo",OBJPROP_COLOR,Red);
   ObjectSet("ER_Lo",OBJPROP_STYLE,STYLE_DASH);
   //MoveObject("ER_Lo",OBJ_HLINE,time[25],er_lo,Time[25],er_lo,red,1,STYLE_DASH);
   //SetObjectText("ER_Lo_txt","Above Here SELLZONE ->MP ","Arial",8,Black);
   //MoveObject("ER_Lo_txt",OBJ_TEXT,time[25],er_lo,time[25],er_lo,Black);

   ObjectDelete("Hi_Pass");
   ObjectCreate("Hi_Pass", OBJ_HLINE,0,Time[25],hi_pass);
   ObjectSetText("Hi_Pass","HiPASS ",8,"Arial",White);
   ObjectSet("Hi_Pass",OBJPROP_COLOR,Green);
   ObjectSet("Hi_Pass",OBJPROP_STYLE,STYLE_DOT);
   //MoveObject("Hi_Pass",OBJ_HLINE,time[25],hi_pass,time[25],hi_pass,Green,1,STYLE_DOT);
   //SetObjectText("Hi_Pass_txt","HiPASS ","Arial",8,Black);
   //MoveObject("Hi_Pass_txt",OBJ_TEXT,time[25],hi_Pass,time[25],hi_pass,Black);

   ObjectDelete("Lo_Pass");
   ObjectCreate("Lo_Pass", OBJ_HLINE,0,Time[25],lo_pass);
   ObjectSetText("Lo_Pass","LoPASS ",8,"Arial",White);
   ObjectSet("Lo_Pass",OBJPROP_COLOR,Red);
   ObjectSet("Lo_Pass",OBJPROP_STYLE,STYLE_DOT);
   //MoveObject("Lo_Pass",OBJ_HLINE,time[25],lo_pass,Time[25],lo_pass,red,1,STYLE_DOT);
   //SetObjectText("Lo_Pass_txt","LoPASS ","Arial",8,Black);
   //MoveObject("Lo_Pass_txt",OBJ_TEXT,time[25],lo_pass,time[25],lo_pass,Black);

   ObjectDelete("Pre_Hi");
   ObjectCreate("Pre_Hi", OBJ_HLINE,0,Time[25],pre_hi);
   ObjectSetText("Pre_Hi","PreHI ",8,"Arial",White);
   ObjectSet("Pre_Hi",OBJPROP_COLOR,Blue);
   ObjectSet("Pre_Hi",OBJPROP_STYLE,STYLE_DASH);
   //MoveObject("Pre_Hi",OBJ_HLINE,time[25],pre_hi,Time[25],pre_hi,Blue,1,STYLE_DASH);
   //SetObjectText("Pre_Hi_txt","PreHI ","Arial",8,Black);
   //MoveObject("Pre_Hi_txt",OBJ_TEXT,time[25],pre_hi,time[25],pre_hi,Black);

   ObjectDelete("Pre_Lo");
   ObjectCreate("Pre_Lo", OBJ_HLINE,0,Time[25],pre_lo);
   ObjectSetText("Pre_Lo","PreLO ",8,"Arial",White);
   ObjectSet("Pre_Lo",OBJPROP_COLOR,Blue);
   ObjectSet("Pre_Lo",OBJPROP_STYLE,STYLE_DASH);
   //MoveObject("Pre_Lo",OBJ_HLINE,time[25],pre_lo,Time[25],pre_lo,Blue,1,STYLE_DASH);	
   //SetObjectText("Pre_Lo_txt","PreLO ","Arial",8,Black);
   //MoveObject("Pre_Lo_txt",OBJ_TEXT,time[25],pre_lo,time[25],pre_lo,Black);


   if ( (Ask > MP) && (Ask < er_hi) ) { 
      Comment("Entry Price In BUYZONE");
   } else {
      if ( (Bid < MP) && (Bid > er_lo) ) {
         Comment("Entry Price In SELLZONE");
      }
   }

   OpenTrades=0;
   for (Cnt=0; Cnt<OrdersTotal(); Cnt++) {
      if (!OrderSelect(Cnt,SELECT_BY_POS,MODE_TRADES)) continue;
	   if ( OrderSymbol()==Symbol() ) {
		   OpenTrades++;
		   if (OrderType()==OP_SELL || OrderType()==OP_BUY)
			   FilledOrders++;
	   }
   }

   // We calculate the endHour based on the TimeZoneofData value
   Cnt=0;
   i=TimeZoneOfData;
   while (Cnt<=EndHour) {
	   if (i>23) i=0;	
	   myEndHour=i;
	   i++;
	   Cnt++;
   }

   // Friday end of day offset
   //cnt=0;
   //i=TimeZoneofData;
   //While (cnt<=FridayEndHour)
   //{
   //	if (i>23) then i=0;	
   //	myFridayEndHour=i;
   //	i++;
   //	cnt++;
   //};
   myFridayEndHour=FridayEndHour;

   if ( (Hour()==myEndHour && Minute()>=EndMinute) || (DayOfWeek()==6 && Hour()==myFridayEndHour && Minute()>=EndMinute) ) {
	   //cnt=0;While cnt<=10000 { cnt++; };
      for (Cnt=OrdersTotal()-1; Cnt>=0; Cnt--) {
         if (!OrderSelect(Cnt,SELECT_BY_POS,MODE_TRADES)) continue;
	      if ( OrderSymbol()==Symbol() ) {
		      mode = OrderType();
			   Trades=2;
			   Type="NONE";
			   Reverse=False;
            tr=0; while (tr<5 && !IsTradeAllowed()) { tr++; Sleep(5000); }
 			   if (mode == OP_BUYSTOP)  bres=OrderDelete(OrderTicket());
 		      if (mode == OP_SELLSTOP)  bres=OrderDelete(OrderTicket());
 			   if (mode == OP_BUYLIMIT)  bres=OrderDelete(OrderTicket());
 		      if (mode == OP_SELLLIMIT)  bres=OrderDelete(OrderTicket());
 			   if (mode == OP_BUY)  bres=OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),slippage,Blue); //CloseOrder(ord(cnt,VAL_TICKET),ord(cnt,VAL_LOTS),bid,Slippage,Blue);
 			   if (mode == OP_SELL) bres=OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),slippage,Blue); //CloseOrder(ord(cnt,VAL_TICKET),ord(cnt,VAL_LOTS),ask,Slippage,red);
   		   if (!bres) Print("Error closing or deleting order : ",ErrorDescription(GetLastError())); 
		   }
	   }
   }


   // We get the StartHour offset
   Cnt=0;
   i=TimeZoneOfData;
   while (Cnt<=StartHour) {
	   if (i>23) i=0;	
	   myStartHour=i;
	   i++;
	   Cnt++;
   }

   if (TradeFriday ==1 || DayOfWeek()!=5) {
      if (Hour()==myStartHour && Minute()>=StartMinute) {
	     if (OpenTrades<1 && erange2 > 40) {
	       if ( (Close[1] > MP) && (Close[1] < hi_pass) ) {
		       Trades=1;
		       Type="NONE";
		       Reverse=True;		
             tr=0; while (tr<5 && !IsTradeAllowed()) { tr++; Sleep(5000); }
             res=OrderSend(Symbol(),OP_SELLSTOP,lotsi,MP,slippage,MP+StopLoss*Point,MP-TakeProfit*Point,"N10",MAGICNUM,0,Red);
		       if (res<=0) Print("Error opening order : ",ErrorDescription(GetLastError())); 
		       //SetOrder(OP_SELLSTOP,Lotsi,MP,Slippage,MP+StopLoss*Point,MP-TakeProfit*Point,RED);		
             //return;
	       }		
		
	       if ( (Close[1] > lo_pass) && (Close[1] < MP) ) {	
		       Trades=1;
		       Type="NONE";
		       Reverse=True;
             tr=0; while (tr<5 && !IsTradeAllowed()) { tr++; Sleep(5000); }
             res=OrderSend(Symbol(),OP_BUYSTOP,lotsi,MP,slippage,MP-StopLoss*Point,MP+TakeProfit*Point,"N10",MAGICNUM,0,Blue);
		       if (res<=0) Print("Error opening order : ",ErrorDescription(GetLastError())); 
		       //SetOrder(OP_BUYSTOP,Lotsi,MP,Slippage,MP-StopLoss*Point,MP+TakeProfit*Point,BLUE);				
             //return;
	       }
	       return;
	     }
      }
   }



   // if we only have one Stop order we place the another one to always have ready both sides
   if (OpenTrades==1 && Trades>=1) {
      for (Cnt=OrdersTotal()-1; Cnt>=0; Cnt--) {
         if (!OrderSelect(Cnt,SELECT_BY_POS,MODE_TRADES)) continue;
	      if ( OrderSymbol()==Symbol() ) {
			   if (OrderType()==OP_SELLSTOP) {
			      if ( (Close[1] > MP) && (Close[1] < hi_pass) ) {
				      Trades=1;
				      Type="NONE";
				      Reverse=True;
                  tr=0; while (tr<5 && !IsTradeAllowed()) { tr++; Sleep(5000); }
                  res=OrderSend(Symbol(),OP_BUYSTOP,lotsi,hi_pass,slippage,hi_pass-StopLoss*Point,hi_pass+TakeProfit*Point,"N10",MAGICNUM,0,Blue);
		            if (res<=0) Print("Error opening order : ",ErrorDescription(GetLastError())); 
    			      //SetOrder(OP_BUYSTOP,Lotsi,HI_PASS,Slippage,HI_PASS-StopLoss*Point,HI_PASS+TakeProfit*Point,blue);
        		      return;
	    	      }
	    	   }
			   if (OrderType()==OP_BUYSTOP) {
    		      if ( (Close[1] > lo_pass) && (Close[1] < MP) ) {
    			      Trades=1;
	    		      Type="NONE";
	    		      Reverse=True;
                  tr=0; while (tr<5 && !IsTradeAllowed()) { tr++; Sleep(5000); }
                  res=OrderSend(Symbol(),OP_SELLSTOP,lotsi,lo_pass,slippage,lo_pass+StopLoss*Point,lo_pass-TakeProfit*Point,"N10",MAGICNUM,0,Red);
		            if (res<=0) Print("Error opening order : ",ErrorDescription(GetLastError())); 
				      //SetOrder(OP_SELLSTOP,Lotsi,LO_PASS,Slippage,LO_PASS+StopLoss*Point,LO_PASS-TakeProfit*Point,Red); 		
        		      return;
    		      }
    		   }
    	   }
	   }
   }

   if (DontReverse==1) Reverse=False;

   // if one order was closed we reverse (only once in a day)
   if ( OpenTrades<1 && Trades==1 && Reverse ) {
	   if (Type=="BUY") {
		   Trades=0;
		   Type="NONE";
		   Reverse=False;
         tr=0; while (tr<5 && !IsTradeAllowed()) { tr++; Sleep(5000); }
         res=OrderSend(Symbol(),OP_BUY,lotsi,Ask,slippage,Ask-StopLoss*Point,Ask+TakeProfit*Point,"N10",MAGICNUM,0,Blue);
         if (res<=0) Print("Error opening order : ",ErrorDescription(GetLastError())); 
		   return;
		   //SetOrder(OP_BUY,Lotsi,Ask,Slippage,Ask-StopLoss*Point,Ask+TakeProfit*Point,Blue); 			
	   }
	
	   if (Type=="SELL") {
		   Trades=0;
		   Type="NONE";
		   Reverse=False;		
         tr=0; while (tr<5 && !IsTradeAllowed()) { tr++; Sleep(5000); }
         res=OrderSend(Symbol(),OP_SELL,lotsi,Bid,slippage,Bid+StopLoss*Point,Bid-TakeProfit*Point,"N10",MAGICNUM,0,Red);
         if (res<=0) Print("Error opening order : ",ErrorDescription(GetLastError())); 
		   return;
		   //SetOrder(OP_SELL,Lotsi,Bid,Slippage,Bid+StopLoss*Point,Bid-TakeProfit*Point,Red);
	   }
   }
   // if we have opened positions we take care of them
   for (Cnt=OrdersTotal()-1; Cnt>=0; Cnt--) {
      if (!OrderSelect(Cnt,SELECT_BY_POS,MODE_TRADES)) continue;
      if ( OrderSymbol()==Symbol() ) {
		   if (OrderType() == OP_BUY) {
            for (i=OrdersTotal()-1; i>=0; i--) {
               if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) continue;
               if ( OrderSymbol()==Symbol() ) {
					   if (OrderType()==OP_SELLSTOP || OrderType()==OP_BUYSTOP) {
						   Trades=1;
						   Type="SELL";
						   Reverse=True;
                     tr=0; while (tr<5 && !IsTradeAllowed()) { tr++; Sleep(5000); }
						   bres=OrderDelete(OrderTicket());
		               if (!bres) Print("Error deleting order : ",ErrorDescription(GetLastError())); 
						   //return;
					   }
				   }
			   }

            if (!OrderSelect(Cnt,SELECT_BY_POS,MODE_TRADES)) continue;
			   //We secure	SecureProfit (10) pips after TrailSecureProfit (16) pips
			   if ( OrderStopLoss()<=OrderOpenPrice()+SecureProfit*Point
			         && Bid-OrderOpenPrice()>=TrailSecureProfit*Point ) {
               tr=0; while (tr<5 && !IsTradeAllowed()) { tr++; Sleep(5000); }
               OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()+SecureProfit*Point,0,0,DeepSkyBlue);
				   //ModifyOrder(Ord(cnt,VAL_TICKET),Ord(cnt,VAL_OPENPRICE),((Ord(cnt,VAL_OPENPRICE))+SecureProfit*Point),0,DeepSkyBlue);
				   Trades=0;
				   Type="NONE";
				   Reverse=False;
				   tmp=OrderOpenPrice()+SecureProfit*Point;
				   Print("BUY Stoploss trailed to Openprice+SecureProfit=",tmp);
				   //Exit;
			   }
			   // Trailing stop after profit secured
			   if (TrailingStop>0) {
				   if ( OrderStopLoss()>=OrderOpenPrice()+SecureProfit*Point && OrderStopLoss()<Bid-TrailingStop*Point ) {
                  tr=0; while (tr<5 && !IsTradeAllowed()) { tr++; Sleep(5000); }
                  OrderModify(OrderTicket(),OrderOpenPrice(),Bid-TrailingStop*Point,0,0,Yellow);
					   //ModifyOrder(OrderValue(cnt,VAL_TICKET),OrderValue(cnt,VAL_OPENPRICE),Bid-Point*(SecureProfit+TrailingStop),0,Yellow);
					   Trades=0;
					   Type="NONE";
					   Reverse=False;
					   //Exit;
				   }
			   }		
		   }
		
		   if (OrderType() == OP_SELL) {
            for (i=OrdersTotal()-1; i>=0; i--) {
               if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) continue;
               if ( OrderSymbol()==Symbol() ) {
					   if (OrderType()==OP_SELLSTOP || OrderType()==OP_BUYSTOP) {
						   Trades=1;
						   Type="BUY";
						   Reverse=True;
                     tr=0; while (tr<5 && !IsTradeAllowed()) { tr++; Sleep(5000); }
						   bres=OrderDelete(OrderTicket());
		               if (!bres) Print("Error deleting order : ",ErrorDescription(GetLastError())); 
						   return;
					   }
				   }
			   }
            if (!OrderSelect(Cnt,SELECT_BY_POS,MODE_TRADES)) continue;
	
			   //We secure	SecureProfit (10) pips after TrailSecureProfit (16) pips
			   if ( OrderStopLoss()>=OrderOpenPrice()-SecureProfit*Point
			         && OrderOpenPrice()-Ask>=TrailSecureProfit*Point ) {
               tr=0; while (tr<5 && !IsTradeAllowed()) { tr++; Sleep(5000); }
               OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()-SecureProfit*Point,0,0,DeepSkyBlue);
				   //ModifyOrder(Ord(cnt,VAL_TICKET),Ord(cnt,VAL_OPENPRICE),((Ord(cnt,VAL_OPENPRICE))-SecureProfit*Point),0,DeepSkyBlue);
				   Trades=0;
				   Type="NONE";
				   Reverse=False;
				   tmp=OrderOpenPrice()-SecureProfit*Point;
				   Print("SELL Stoploss trailed to Openprice-SecureProfit=",tmp);
				   //Exit;
			   }

			   if (TrailingStop>0) {
				   if ( OrderStopLoss()<=OrderOpenPrice()-SecureProfit*Point && OrderStopLoss()>Ask+TrailingStop*Point ) {
                  tr=0; while (tr<5 && !IsTradeAllowed()) { tr++; Sleep(5000); }
                  OrderModify(OrderTicket(),OrderOpenPrice(),Ask+TrailingStop*Point,0,0,Purple);
					   //ModifyOrder(OrderValue(cnt,VAL_TICKET),OrderValue(cnt,VAL_OPENPRICE),Ask+Point*(TrailingStop+SecureProfit),0,Purple);
					   Trades=0;
					   Type="NONE";
					   Reverse=False;
					   //Exit;
				   }
			   }
		   }
	   }
   }
   //Alert(StrToTime("2005.11.30"));
   return;
}

double LotsRisk(int StopLoss)  { 
   double lot=Lots;
//---- select lot size
   if (!FixedLot)
      lot=NormalizeDouble(AccountFreeMargin()*MaximumRisk*0.001/StopLoss,1);
   else
      lot=Lots;
//---- return lot size
   if(lot<MinLot) lot=MinLot;
   if(lot>MaxLot) lot=MaxLot;
   return(lot);
}






Sample





Analysis



Market Information Used:

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


Indicator Curves created:


Indicators Used:



Custom Indicators Used:

Order Management characteristics:
Checks for the total of open orders

It Closes Orders by itself
It automatically opens orders when conditions are reached
It can change open orders parameters, due to possible stepping strategy

Other Features:

BackTest : EURUSD on H1

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

BackTest : EURUSD on H1

From 2009-12-01 to 2010-01-17 Profit Factor:0.40 Total Net Profit:-493.50

BackTest : EURUSD on H1

From 2010-03-01 to 2010-03-27 Profit Factor:3.15 Total Net Profit:638.10

BackTest : EURUSD on H1

From 2010-04-01 to 2010-04-30 Profit Factor:0.68 Total Net Profit:-91.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:2.08 Total Net Profit:1402.50

BackTest : GBPUSD on H1

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

BackTest : USDCAD on H1

From 2009-01-01 to 2010-01-01 Profit Factor:0.73 Total Net Profit:-1557.25

BackTest : USDCAD on H1

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

BackTest : USDJPY on H1

From 2009-11-01 to 2009-11-30 Profit Factor:0.04 Total Net Profit:-1134.06

Request Backtest for Noah10pips2006


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

Pair: Period: