Noah10pips2006

Author: Copyright � 2005, Nick Bilak
Orders Execution
Checks for the total of open ordersIt Closes Orders by itself It automatically opens orders when conditions are reachedIt can change open orders parameters, due to possible stepping strategy
0 Views
0 Downloads
0 Favorites

Profitability Reports

AUD/USD Oct 2024 - Jan 2025
18.00 %
Total Trades 2
Won Trades 0
Lost trades 0
Win Rate 0.00 %
Expected payoff -22.50
Gross Profit 10.00
Gross Loss -55.00
Total Net Profit -45.00
-100%
-50%
0%
50%
100%
GBP/USD Oct 2024 - Jan 2025
18.00 %
Total Trades 10
Won Trades 5
Lost trades 5
Win Rate 0.50 %
Expected payoff -22.50
Gross Profit 50.00
Gross Loss -275.00
Total Net Profit -225.00
-100%
-50%
0%
50%
100%
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);
}


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 ---