m1v11(killerkhan)





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

//+------------------------------------------------------------------+
//|                                            m1v11(killerkhan).mq4 |
//|                      Copyright © 2005, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2005, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"

extern int  slippage       =1;

int         BreakPeriod1   =27;
int         NumberOfBars1  =2700;
int         CountBars1,CurrentBar1,CurrentTrend1;
double      Value11,Value21,LowestBreak1,HighestBreak1;

int         BreakPeriod2   =9;
int         NumberOfBars2  =2700;
int         CountBars2,CurrentBar2,CurrentTrend2;
double      Value12,Value22,LowestBreak2,HighestBreak2;

datetime    vTime;
string      Period1Signal,Period2Signal;

int init(){return(0);}
int deinit(){return(0);}
int start(){


return(0);}//end start

/*

///////////////////////////////////////////////
// Main Script
///////////////////////////////////////////////
if CurTime - LastTradeTime < 5 then Exit;

if Period != 1 then
{
	Comment("This expert is for M1 Chart Only!!!");
	Exit;
};

If vTime != Time[0] then
{
///////////////////////////////////////////////
// Look for direction of Currency 1
///////////////////////////////////////////////
SetLoopCount(0);
If Bars > NumberOfBars1
then CountBars1 = NumberOfBars1
else CountBars1 = Bars;

For CurrentBar1 = CountBars1-1 Downto 1 Begin
	LowestBreak1 = Low[Lowest(MODE_LOW, CurrentBar1 + BreakPeriod1, BreakPeriod1)];
	HighestBreak1 = High[Highest(MODE_HIGH, CurrentBar1 + BreakPeriod1, BreakPeriod1)];
	
	If Close[CurrentBar1] < LowestBreak1 Then 
	{
		Value11 = Low[CurrentBar1];
		Value21 = High[CurrentBar1];
		CurrentTrend1 = -1;
	}
	Else If Close[CurrentBar1] > HighestBreak1 Then 
	{
		Value11 = High[CurrentBar1];
		Value21 = Low[CurrentBar1];
		CurrentTrend1 = 1;
	}
	Else 
	{
		If (CurrentTrend1 > 0) Then 
		{
			Value11 = High[CurrentBar1];
			Value21 = Low[CurrentBar1];
		}
		Else 
		{
			Value11 = Low[CurrentBar1];
			Value21 = High[CurrentBar1];
		}
	};
End;

///////////////////////////////////////////////
// Look for direction of Currency 2
///////////////////////////////////////////////
SetLoopCount(0);
If Bars > NumberOfBars2
then CountBars2 = NumberOfBars2
else CountBars2 = Bars;

For CurrentBar2 = CountBars2-1 Downto 1 Begin
	LowestBreak2 = Low[Lowest(MODE_LOW, CurrentBar2 + BreakPeriod2, BreakPeriod2)];
	HighestBreak2 = High[Highest(MODE_HIGH, CurrentBar2 + BreakPeriod2, BreakPeriod2)];
	
	If Close[CurrentBar2] < LowestBreak2 Then 
	{
		Value12 = Low[CurrentBar2];
		Value22 = High[CurrentBar2];
		CurrentTrend2 = -1;
	}
	Else If Close[CurrentBar2] > HighestBreak2 Then 
	{
		Value12 = High[CurrentBar2];
		Value22 = Low[CurrentBar2];
		CurrentTrend2 = 1;
	}
	Else 
	{
		If (CurrentTrend2 > 0) Then 
		{
			Value12 = High[CurrentBar2];
			Value22 = Low[CurrentBar2];
		}
		Else 
		{
			Value12 = Low[CurrentBar2];
			Value22 = High[CurrentBar2];
		}
	};
End;

};

///////////////////////////////////////////////
// Set Variables
///////////////////////////////////////////////
vSlippage = Slippage * Point;

///////////////////////////////////////////////
// Count Trades for current Symbol
///////////////////////////////////////////////
Opentrades = 0;
for i = 1 to TotalTrades 
{
	If OrderValue(i,Val_Symbol) == Symbol then
	{
		Opentrades++;
	};
};

///////////////////////////////////////////////
// Trailing Stop and Closing Trades
///////////////////////////////////////////////
if Opentrades != 0 then
{
	for i=1 to TotalTrades
 	{
   		If OrderValue(i,VAL_TYPE) == OP_BUY and OrderValue(i,VAL_SYMBOL) == Symbol then
     	{
     		if vTime != Time[0] and Value22 > Value12 then
     		{
       			CloseOrder(OrderValue(i,VAL_TICKET),Ord(i,VAL_LOTS),Ord(i,VAL_CLOSEPRICE),vSlippage,Teal);
       			Exit;
       		};
       		If vTime != Time[0] and Value12 > Value22 then
       		{
       			vTime = Time[0];
       		};
    	};
    	If OrderValue(i,VAL_TYPE) == OP_SELL and OrderValue(i,VAL_SYMBOL) == Symbol then
     	{
     		If vTime != Time[0] and Value12 > Value22 then
     		{
     			CloseOrder(OrderValue(i,VAL_TICKET),Ord(i,VAL_LOTS),Ord(i,VAL_CLOSEPRICE),vSlippage,Pink);
       			Exit;
       		};
       		if vTime != Time[0] and Value22 > Value12 then
     		{
       			vTime = Time[0];
       		};     		
    	};
    };
};

///////////////////////////////////////////////
// Open New Trades
///////////////////////////////////////////////
if Opentrades == 0 and vTime != Time[0] then 
{	
	if vTime == 0 then
	{
		vTime = Time[0];
		Exit;
	};
	If Value11 > Value21 and Value12 > Value22 then
	{
		If FreeMargin < 100 then Exit;
      	SetOrder(OP_BUY,Lots,Ask,vSlippage,ask-stoploss*point,ask+takeprofit*point,Blue);
      	vTime = Time[0];
		Exit;
	};
	If Value21 > Value11 and Value22 > Value12 then
	{
		If FreeMargin < 100 then Exit;
		SetOrder(OP_SELL,Lots,Bid,vSlippage,bid+stoploss*point,bid-takeprofit*point,Red);
		vTime = Time[0];
		Exit;
	};
};

///////////////////////////////////////////////
// Comments for testing purposes only
///////////////////////////////////////////////
If Value11 > Value21 then Period1Signal = "BUY"
else If Value21 > Value11 then Period1Signal = "SELL"
else Period1Signal = "NONE";

If Value12 > Value22 then Period2Signal = "BUY"
else If Value22 > Value12 then Period2Signal = "SELL"
else Period2Signal = "NONE";

Comment("Period1Signal: ",Period1Signal,"\nPeriod2Signal: ",Period1Signal);





Sample





Analysis



Market Information Used:

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


Indicator Curves created:


Indicators Used:



Custom Indicators Used:

Order Management characteristics:

Other Features: