Why are you search signal or buy signal and waste your time for calculating signal. Just click on the our refferal website banner and join our refferal website.
send me your email id and trade account no at aksharmty@ymail.com. After verified your account in my reffer list, I send you free EA for your MT4.
Just add EA in your MT4 and start your trading automatic. For best result install your MT4 on VPS.
Our forex partner website are ALPARI ,
INSTAFOREX ,
FOREX4YOU ,
WELTRADE
Tuesday, July 17, 2018
EMA CROSSOVER MOVING AVERAGE ROBOT
//+------------------------------------------------------------------+
//EMA crossover Robot 15 Minutes
//+------------------------------------------------------------------+
extern int MagicNumber=10001;
extern double Lots =0.01;
extern double StopLoss=0;
extern double TakeProfit=5;
extern int TrailingStop=0;
extern int Slippage=3;
//+------------------------------------------------------------------+
// expert start function
//+------------------------------------------------------------------+
int start()
{
string signal="";
double MyPoint=Point;
if(Digits==3 || Digits==5) MyPoint=Point*10;
//current chart, current period, 20 candles, No shift, simple , close price
double SlowMovingAverage = iMA (NULL,0,20,0,MODE_EMA,PRICE_CLOSE,0);
//current chart, current period, 20 candles, No shift, simple , close price
double LastSlowMovingAverage = iMA (NULL,0,20,0,MODE_EMA,PRICE_CLOSE,1);
//current chart, current period, 10 candles, No shift, simple , close price
double FastMovingAverage = iMA (NULL,0,10,0,MODE_EMA,PRICE_CLOSE,0);
//current chart, current period, 10 candles, No shift, simple , close price
double LastFastMovingAverage = iMA (NULL,0,10,0,MODE_EMA,PRICE_CLOSE,1);
//--------------------------------------------------------------------
if ((LastFastMovingAverage < LastSlowMovingAverage) && (FastMovingAverage > SlowMovingAverage))
{
//set the signal variable to buy
signal="buy";
}
//if the moving average above the current price
if ((LastFastMovingAverage > LastSlowMovingAverage) && (FastMovingAverage < SlowMovingAverage))
{
//set the signal variable to sell
signal="sell";
}
//chart output for the signal
Comment ("The current signal is :",signal);
double TheStopLoss=0;
double TheTakeProfit=0;
if( TotalOrdersCount()==0 )
{
int result=0;
//if the fast SMA is now above
if ((LastFastMovingAverage < LastSlowMovingAverage) && (FastMovingAverage > SlowMovingAverage)) // Here is your open buy rule
{
result=OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,0,0,"EMA crossover Robot 15 Minutes https://forexwithcandlestick.blogspot.com",MagicNumber,0,Blue);
if(result>0)
{
TheStopLoss=0;
TheTakeProfit=0;
if(TakeProfit>0) TheTakeProfit=Ask+TakeProfit*MyPoint;
if(StopLoss>0) TheStopLoss=Ask-StopLoss*MyPoint;
OrderSelect(result,SELECT_BY_TICKET);
OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(TheStopLoss,Digits),NormalizeDouble(TheTakeProfit,Digits),0,Green);
}
return(0);
}
//if the fast SMA is now above
if ((LastFastMovingAverage > LastSlowMovingAverage) && (FastMovingAverage < SlowMovingAverage)) // Here is your open Sell rule
{
result=OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,0,0,"EMA crossover Robot 15 Minutes https://forexwithcandlestick.blogspot.com ",MagicNumber,0,Red);
if(result>0)
{
TheStopLoss=0;
TheTakeProfit=0;
if(TakeProfit>0) TheTakeProfit=Bid-TakeProfit*MyPoint;
if(StopLoss>0) TheStopLoss=Bid+StopLoss*MyPoint;
OrderSelect(result,SELECT_BY_TICKET);
OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(TheStopLoss,Digits),NormalizeDouble(TheTakeProfit,Digits),0,Green);
}
return(0);
}
}
for(int cnt=0;cnt<OrdersTotal();cnt++)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if(OrderType()<=OP_SELL &&
OrderSymbol()==Symbol() &&
OrderMagicNumber()==MagicNumber
)
{
if(OrderType()==OP_BUY)
{
if(TrailingStop>0)
{
if(Bid-OrderOpenPrice()>MyPoint*TrailingStop)
{
if(OrderStopLoss()<Bid-MyPoint*TrailingStop)
{
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-TrailingStop*MyPoint,OrderTakeProfit(),0,Green);
return(0);
}
}
}
}
else
{
if(TrailingStop>0)
{
if((OrderOpenPrice()-Ask)>(MyPoint*TrailingStop))
{
if((OrderStopLoss()>(Ask+MyPoint*TrailingStop)) || (OrderStopLoss()==0))
{
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+MyPoint*TrailingStop,OrderTakeProfit(),0,Red);
return(0);
}
}
}
}
}
}
return(0);
}
int TotalOrdersCount()
{
int result=0;
for(int i=0;i<OrdersTotal();i++)
{
OrderSelect(i,SELECT_BY_POS ,MODE_TRADES);
if (OrderMagicNumber()==MagicNumber) result++;
}
return (result);
}
//EMA crossover Robot 15 Minutes
//+------------------------------------------------------------------+
extern int MagicNumber=10001;
extern double Lots =0.01;
extern double StopLoss=0;
extern double TakeProfit=5;
extern int TrailingStop=0;
extern int Slippage=3;
//+------------------------------------------------------------------+
// expert start function
//+------------------------------------------------------------------+
int start()
{
string signal="";
double MyPoint=Point;
if(Digits==3 || Digits==5) MyPoint=Point*10;
//current chart, current period, 20 candles, No shift, simple , close price
double SlowMovingAverage = iMA (NULL,0,20,0,MODE_EMA,PRICE_CLOSE,0);
//current chart, current period, 20 candles, No shift, simple , close price
double LastSlowMovingAverage = iMA (NULL,0,20,0,MODE_EMA,PRICE_CLOSE,1);
//current chart, current period, 10 candles, No shift, simple , close price
double FastMovingAverage = iMA (NULL,0,10,0,MODE_EMA,PRICE_CLOSE,0);
//current chart, current period, 10 candles, No shift, simple , close price
double LastFastMovingAverage = iMA (NULL,0,10,0,MODE_EMA,PRICE_CLOSE,1);
//--------------------------------------------------------------------
if ((LastFastMovingAverage < LastSlowMovingAverage) && (FastMovingAverage > SlowMovingAverage))
{
//set the signal variable to buy
signal="buy";
}
//if the moving average above the current price
if ((LastFastMovingAverage > LastSlowMovingAverage) && (FastMovingAverage < SlowMovingAverage))
{
//set the signal variable to sell
signal="sell";
}
//chart output for the signal
Comment ("The current signal is :",signal);
double TheStopLoss=0;
double TheTakeProfit=0;
if( TotalOrdersCount()==0 )
{
int result=0;
//if the fast SMA is now above
if ((LastFastMovingAverage < LastSlowMovingAverage) && (FastMovingAverage > SlowMovingAverage)) // Here is your open buy rule
{
result=OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,0,0,"EMA crossover Robot 15 Minutes https://forexwithcandlestick.blogspot.com",MagicNumber,0,Blue);
if(result>0)
{
TheStopLoss=0;
TheTakeProfit=0;
if(TakeProfit>0) TheTakeProfit=Ask+TakeProfit*MyPoint;
if(StopLoss>0) TheStopLoss=Ask-StopLoss*MyPoint;
OrderSelect(result,SELECT_BY_TICKET);
OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(TheStopLoss,Digits),NormalizeDouble(TheTakeProfit,Digits),0,Green);
}
return(0);
}
//if the fast SMA is now above
if ((LastFastMovingAverage > LastSlowMovingAverage) && (FastMovingAverage < SlowMovingAverage)) // Here is your open Sell rule
{
result=OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,0,0,"EMA crossover Robot 15 Minutes https://forexwithcandlestick.blogspot.com ",MagicNumber,0,Red);
if(result>0)
{
TheStopLoss=0;
TheTakeProfit=0;
if(TakeProfit>0) TheTakeProfit=Bid-TakeProfit*MyPoint;
if(StopLoss>0) TheStopLoss=Bid+StopLoss*MyPoint;
OrderSelect(result,SELECT_BY_TICKET);
OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(TheStopLoss,Digits),NormalizeDouble(TheTakeProfit,Digits),0,Green);
}
return(0);
}
}
for(int cnt=0;cnt<OrdersTotal();cnt++)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if(OrderType()<=OP_SELL &&
OrderSymbol()==Symbol() &&
OrderMagicNumber()==MagicNumber
)
{
if(OrderType()==OP_BUY)
{
if(TrailingStop>0)
{
if(Bid-OrderOpenPrice()>MyPoint*TrailingStop)
{
if(OrderStopLoss()<Bid-MyPoint*TrailingStop)
{
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-TrailingStop*MyPoint,OrderTakeProfit(),0,Green);
return(0);
}
}
}
}
else
{
if(TrailingStop>0)
{
if((OrderOpenPrice()-Ask)>(MyPoint*TrailingStop))
{
if((OrderStopLoss()>(Ask+MyPoint*TrailingStop)) || (OrderStopLoss()==0))
{
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+MyPoint*TrailingStop,OrderTakeProfit(),0,Red);
return(0);
}
}
}
}
}
}
return(0);
}
int TotalOrdersCount()
{
int result=0;
for(int i=0;i<OrdersTotal();i++)
{
OrderSelect(i,SELECT_BY_POS ,MODE_TRADES);
if (OrderMagicNumber()==MagicNumber) result++;
}
return (result);
}
Saturday, July 14, 2018
Simple SMA Robot
Simple SMA robot use only standerd account this EA not work propper on micro/nano account.
//CODE START
extern int MagicNumber=10001;
extern double Lots =0.02;
extern double TakeProfit=5;
//-------------------------------------------
void OnTick()
{
//we create a string variable for signal
string signal="";
//we calculate the moving average 20 candles for the signal
double MyMovingAverage = iMA(_Symbol,_Period,20,0,MODE_SMA,PRICE_CLOSE,0);
//if the moving average is below the candle price
if (MyMovingAverage<Close[0])
{
//set the signal variable to buy
signal="buy";
}
//if the moving average above the current price
if (MyMovingAverage>Close[0])
{
//set the signal variable to sell
signal="sell";
}
//buy 10 microlot
if (MyMovingAverage<Close[0]&& OrdersTotal()==0)
OrderSend(_Symbol,OP_BUY,Lots,Ask,3,0,Ask+TakeProfit*_Point,"SMA ROBOT",MagicNumber,0,Green);
//sell 10 microlot
if (MyMovingAverage>Close[0] && OrdersTotal()==0)
OrderSend (_Symbol,OP_SELL,Lots,Bid,3,0,Bid-TakeProfit*_Point,"SMA RONBOT",MagicNumber,0,Red);
//chart output for the signal
Comment ("The current signal is :",signal);
}
//CODE START
extern int MagicNumber=10001;
extern double Lots =0.02;
extern double TakeProfit=5;
//-------------------------------------------
void OnTick()
{
//we create a string variable for signal
string signal="";
//we calculate the moving average 20 candles for the signal
double MyMovingAverage = iMA(_Symbol,_Period,20,0,MODE_SMA,PRICE_CLOSE,0);
//if the moving average is below the candle price
if (MyMovingAverage<Close[0])
{
//set the signal variable to buy
signal="buy";
}
//if the moving average above the current price
if (MyMovingAverage>Close[0])
{
//set the signal variable to sell
signal="sell";
}
//buy 10 microlot
if (MyMovingAverage<Close[0]&& OrdersTotal()==0)
OrderSend(_Symbol,OP_BUY,Lots,Ask,3,0,Ask+TakeProfit*_Point,"SMA ROBOT",MagicNumber,0,Green);
//sell 10 microlot
if (MyMovingAverage>Close[0] && OrdersTotal()==0)
OrderSend (_Symbol,OP_SELL,Lots,Bid,3,0,Bid-TakeProfit*_Point,"SMA RONBOT",MagicNumber,0,Red);
//chart output for the signal
Comment ("The current signal is :",signal);
}
//CODE END
Monday, July 9, 2018
Simple RSI,SAR,Bollinger Bands,EMA Robot
Step 1.
create Simple RSI,SAR,Bollinger Bands,EMA Robot file in expert folder and
Step 2. copy paste code given below on your SimpleRSI,SAR,Bollinger Bands,EMA Robot file :
//code start
//+------------------------------------------------------------------+
// Simple Moving Average Crossover Robot
//https://forexwithcandlestick.blogspot.com
//
// Disclaimer: This EA is provided to you without any warranty
// Please use first on demo account before live account
// We WILL not responsible for
// FOR ANY LOSS OF USE, REVENUE OR PROFIT, LOST OR DAMAGED DATA, OR OTHER COMMERCIAL OR
// ECONOMIC LOSS OR FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, STATUTORY, PUNITIVE,
// EXEMPLARY OR CONSEQUENTIAL DAMAGES WHATSOEVER RELATED TO YOUR USE OF THIS EA OR
// FOREXEADVISOR STRATEGY BUILDER
//
// USE THIS EA AT YOUR OWN RISK.
//
// Before adding this expert advisor to a chart, make sure there are NO
// open positions.
//
//+------------------------------------------------------------------+
create Simple RSI,SAR,Bollinger Bands,EMA Robot file in expert folder and
Step 2. copy paste code given below on your SimpleRSI,SAR,Bollinger Bands,EMA Robot file :
//code start
//+------------------------------------------------------------------+
// Simple Moving Average Crossover Robot
//https://forexwithcandlestick.blogspot.com
//
// Disclaimer: This EA is provided to you without any warranty
// Please use first on demo account before live account
// We WILL not responsible for
// FOR ANY LOSS OF USE, REVENUE OR PROFIT, LOST OR DAMAGED DATA, OR OTHER COMMERCIAL OR
// ECONOMIC LOSS OR FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, STATUTORY, PUNITIVE,
// EXEMPLARY OR CONSEQUENTIAL DAMAGES WHATSOEVER RELATED TO YOUR USE OF THIS EA OR
// FOREXEADVISOR STRATEGY BUILDER
//
// USE THIS EA AT YOUR OWN RISK.
//
// Before adding this expert advisor to a chart, make sure there are NO
// open positions.
//
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+// Simple RSI,SAR,Bollinger Bands,EMA Robot
//https://forexwithcandlestick.blogspot.com
//
// Disclaimer: This EA is provided to you without any warranty
// or liability obligations to you of any kind.
// We WILL not responsible for
// FOR ANY LOSS OF USE, REVENUE OR PROFIT, LOST OR DAMAGED DATA, OR OTHER COMMERCIAL OR
// ECONOMIC LOSS OR FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, STATUTORY, PUNITIVE,
// EXEMPLARY OR CONSEQUENTIAL DAMAGES WHATSOEVER RELATED TO YOUR USE OF THIS EA OR
// FOREXEADVISOR STRATEGY BUILDER
//
// USE THIS EA AT YOUR OWN RISK.
//
// Before adding this expert advisor to a chart, make sure there are NO
// open positions.
//
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//RSI,SAR,Bollinger Bands,EMA Robot
//+------------------------------------------------------------------+
extern int MagicNumber=10001;
extern double Lots =0.01;
extern double StopLoss=100;
extern double TakeProfit=50;
extern int TrailingStop=0;
extern int Slippage=3;
//+------------------------------------------------------------------+
// expert start function
//+------------------------------------------------------------------+
int start()
{
double MyPoint=Point;
if(Digits==3 || Digits==5) MyPoint=Point*10;
double TheStopLoss=0;
double TheTakeProfit=0;
if( TotalOrdersCount()==0 )
{
int result=0;
if((iRSI(NULL,0,14,PRICE_CLOSE,0)>70)||(iSAR(NULL,0,0.02,0.2,0)<Bid)||(iBands(NULL,0,20,2,0,PRICE_CLOSE,MODE_LOWER,0)>Ask)||(iMA(NULL,0,10,0,MODE_EMA,PRICE_CLOSE,0)>Ask)) // Here is your open buy rule
{
result=OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,0,0,"RSI,SAR,Bollinger Bands,EMA Robot",MagicNumber,0,Blue);
if(result>0)
{
TheStopLoss=0;
TheTakeProfit=0;
if(TakeProfit>0) TheTakeProfit=Ask+TakeProfit*MyPoint;
if(StopLoss>0) TheStopLoss=Ask-StopLoss*MyPoint;
OrderSelect(result,SELECT_BY_TICKET);
OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(TheStopLoss,Digits),NormalizeDouble(TheTakeProfit,Digits),0,Green);
}
return(0);
}
if((iRSI(NULL,0,14,PRICE_CLOSE,0)<30)||(iSAR(NULL,0,0.02,0.2,0)>Ask)||(iBands(NULL,0,20,2,0,PRICE_CLOSE,MODE_UPPER,0)<Bid)||(iMA(NULL,0,20,0,MODE_EMA,PRICE_CLOSE,0)<Bid)) // Here is your open Sell rule
{
result=OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,0,0,"RSI,SAR,Bollinger Bands,EMA Robot",MagicNumber,0,Red);
if(result>0)
{
TheStopLoss=0;
TheTakeProfit=0;
if(TakeProfit>0) TheTakeProfit=Bid-TakeProfit*MyPoint;
if(StopLoss>0) TheStopLoss=Bid+StopLoss*MyPoint;
OrderSelect(result,SELECT_BY_TICKET);
OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(TheStopLoss,Digits),NormalizeDouble(TheTakeProfit,Digits),0,Green);
}
return(0);
}
}
for(int cnt=0;cnt<OrdersTotal();cnt++)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if(OrderType()<=OP_SELL &&
OrderSymbol()==Symbol() &&
OrderMagicNumber()==MagicNumber
)
{
if(OrderType()==OP_BUY)
{
if(TrailingStop>0)
{
if(Bid-OrderOpenPrice()>MyPoint*TrailingStop)
{
if(OrderStopLoss()<Bid-MyPoint*TrailingStop)
{
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-TrailingStop*MyPoint,OrderTakeProfit(),0,Green);
return(0);
}
}
}
}
else
{
if(TrailingStop>0)
{
if((OrderOpenPrice()-Ask)>(MyPoint*TrailingStop))
{
if((OrderStopLoss()>(Ask+MyPoint*TrailingStop)) || (OrderStopLoss()==0))
{
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+MyPoint*TrailingStop,OrderTakeProfit(),0,Red);
return(0);
}
}
}
}
}
}
return(0);
}
int TotalOrdersCount()
{
int result=0;
for(int i=0;i<OrdersTotal();i++)
{
OrderSelect(i,SELECT_BY_POS ,MODE_TRADES);
if (OrderMagicNumber()==MagicNumber) result++;
}
return (result);
}
//----------------------------------------------------------------------------------------
//https://forexwithcandlestick.blogspot.com
//
// Disclaimer: This EA is provided to you without any warranty
// or liability obligations to you of any kind.
// We WILL not responsible for
// FOR ANY LOSS OF USE, REVENUE OR PROFIT, LOST OR DAMAGED DATA, OR OTHER COMMERCIAL OR
// ECONOMIC LOSS OR FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, STATUTORY, PUNITIVE,
// EXEMPLARY OR CONSEQUENTIAL DAMAGES WHATSOEVER RELATED TO YOUR USE OF THIS EA OR
// FOREXEADVISOR STRATEGY BUILDER
//
// USE THIS EA AT YOUR OWN RISK.
//
// Before adding this expert advisor to a chart, make sure there are NO
// open positions.
//
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//RSI,SAR,Bollinger Bands,EMA Robot
//+------------------------------------------------------------------+
extern int MagicNumber=10001;
extern double Lots =0.01;
extern double StopLoss=100;
extern double TakeProfit=50;
extern int TrailingStop=0;
extern int Slippage=3;
//+------------------------------------------------------------------+
// expert start function
//+------------------------------------------------------------------+
int start()
{
double MyPoint=Point;
if(Digits==3 || Digits==5) MyPoint=Point*10;
double TheStopLoss=0;
double TheTakeProfit=0;
if( TotalOrdersCount()==0 )
{
int result=0;
if((iRSI(NULL,0,14,PRICE_CLOSE,0)>70)||(iSAR(NULL,0,0.02,0.2,0)<Bid)||(iBands(NULL,0,20,2,0,PRICE_CLOSE,MODE_LOWER,0)>Ask)||(iMA(NULL,0,10,0,MODE_EMA,PRICE_CLOSE,0)>Ask)) // Here is your open buy rule
{
result=OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,0,0,"RSI,SAR,Bollinger Bands,EMA Robot",MagicNumber,0,Blue);
if(result>0)
{
TheStopLoss=0;
TheTakeProfit=0;
if(TakeProfit>0) TheTakeProfit=Ask+TakeProfit*MyPoint;
if(StopLoss>0) TheStopLoss=Ask-StopLoss*MyPoint;
OrderSelect(result,SELECT_BY_TICKET);
OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(TheStopLoss,Digits),NormalizeDouble(TheTakeProfit,Digits),0,Green);
}
return(0);
}
if((iRSI(NULL,0,14,PRICE_CLOSE,0)<30)||(iSAR(NULL,0,0.02,0.2,0)>Ask)||(iBands(NULL,0,20,2,0,PRICE_CLOSE,MODE_UPPER,0)<Bid)||(iMA(NULL,0,20,0,MODE_EMA,PRICE_CLOSE,0)<Bid)) // Here is your open Sell rule
{
result=OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,0,0,"RSI,SAR,Bollinger Bands,EMA Robot",MagicNumber,0,Red);
if(result>0)
{
TheStopLoss=0;
TheTakeProfit=0;
if(TakeProfit>0) TheTakeProfit=Bid-TakeProfit*MyPoint;
if(StopLoss>0) TheStopLoss=Bid+StopLoss*MyPoint;
OrderSelect(result,SELECT_BY_TICKET);
OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(TheStopLoss,Digits),NormalizeDouble(TheTakeProfit,Digits),0,Green);
}
return(0);
}
}
for(int cnt=0;cnt<OrdersTotal();cnt++)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if(OrderType()<=OP_SELL &&
OrderSymbol()==Symbol() &&
OrderMagicNumber()==MagicNumber
)
{
if(OrderType()==OP_BUY)
{
if(TrailingStop>0)
{
if(Bid-OrderOpenPrice()>MyPoint*TrailingStop)
{
if(OrderStopLoss()<Bid-MyPoint*TrailingStop)
{
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-TrailingStop*MyPoint,OrderTakeProfit(),0,Green);
return(0);
}
}
}
}
else
{
if(TrailingStop>0)
{
if((OrderOpenPrice()-Ask)>(MyPoint*TrailingStop))
{
if((OrderStopLoss()>(Ask+MyPoint*TrailingStop)) || (OrderStopLoss()==0))
{
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+MyPoint*TrailingStop,OrderTakeProfit(),0,Red);
return(0);
}
}
}
}
}
}
return(0);
}
int TotalOrdersCount()
{
int result=0;
for(int i=0;i<OrdersTotal();i++)
{
OrderSelect(i,SELECT_BY_POS ,MODE_TRADES);
if (OrderMagicNumber()==MagicNumber) result++;
}
return (result);
}
//----------------------------------------------------------------------------------------
//code end
Step 3.
Lunch your MT4 and find RSI,SAR,Bollinger Bands,EMA Robot and drag and drop on your favourite currency window
set your parameter and allow live trading on commen section.
Happy Trading Now
Sunday, July 8, 2018
Parabolic SAR Signal
Step 1.
create ParabolicSARsignal file in expert folder and
Step 2. copy paste code given below on your ParabolicSARsignal file :
//code start
void OnTick()
{
// String variable for the signal
string signal="";
//We calculate the Parabolic SAR Indicator
double MySARValue = iSAR(_Symbol,_Period ,0.02,0.2,0);
// if the Parabolic SAR Value is below the Bid Price
if (MySARValue<Bid)
{//create a buy signal
signal="buy";
}
// if the Parabolic SAR Value is above the Ask Price
if (MySARValue>Ask)
{//create a sell signal
signal="sell";
}
//Output the signal on the chart
Comment("MySARValue : ",MySARValue,"\n","Current Signaal is :",signal);
}
//+------------------------------------------------------------------+
create ParabolicSARsignal file in expert folder and
Step 2. copy paste code given below on your ParabolicSARsignal file :
//code start
void OnTick()
{
// String variable for the signal
string signal="";
//We calculate the Parabolic SAR Indicator
double MySARValue = iSAR(_Symbol,_Period ,0.02,0.2,0);
// if the Parabolic SAR Value is below the Bid Price
if (MySARValue<Bid)
{//create a buy signal
signal="buy";
}
// if the Parabolic SAR Value is above the Ask Price
if (MySARValue>Ask)
{//create a sell signal
signal="sell";
}
//Output the signal on the chart
Comment("MySARValue : ",MySARValue,"\n","Current Signaal is :",signal);
}
//+------------------------------------------------------------------+
//code end
Step 3.
Now open MT4 and go to :
Insert >> Indicator >> ParabolicSARsignal
Set parameter : Step : 0.02, Maximum : 0.2 , style : Yellow then OK
Step 4.
Now open MT4 and go to :
Charts >> Template >> save template >> save file as tester.tpl.
Step5.
Now open MT4 and go to :
View >> strategy test :
set your symbol
Use date
Visual Mode
Start
Step6.
View signal on left side on top in your chart.
Bulls Power Signal
Step 1.
create bullspowersignal file in expert folder and
Step 2. copy paste code given below on your bullspowersignal file :
//code start
void OnTick()
{
// String variable for the signal
string signal="";
//We calculate the Bull Power Indicator
double BullsPowerValue = iBullsPower(_Symbol,_Period ,13, PRICE_CLOSE,0);
// if the Bulls Power Value is above 0
if (BullsPowerValue>0)
{//create a buy signal
signal="buy";
}
// if the Bulls Power Value is below 0
if (BullsPowerValue<0)
{//create a sell signal
signal="sell";
}
//Output the signal on the chart
Comment("BullsPowerValue : ",BullsPowerValue,"\n","Current Signaal is :",signal);
}
//+------------------------------------------------------------------+
create bullspowersignal file in expert folder and
Step 2. copy paste code given below on your bullspowersignal file :
//code start
void OnTick()
{
// String variable for the signal
string signal="";
//We calculate the Bull Power Indicator
double BullsPowerValue = iBullsPower(_Symbol,_Period ,13, PRICE_CLOSE,0);
// if the Bulls Power Value is above 0
if (BullsPowerValue>0)
{//create a buy signal
signal="buy";
}
// if the Bulls Power Value is below 0
if (BullsPowerValue<0)
{//create a sell signal
signal="sell";
}
//Output the signal on the chart
Comment("BullsPowerValue : ",BullsPowerValue,"\n","Current Signaal is :",signal);
}
//+------------------------------------------------------------------+
//code end
Step 3.
Now open MT4 and go to :
Insert >> Indicator >> Bulls Power
Set parameter : Period : 13 , Apply to : close , style : Yellow then OK
Step 4.
Now open MT4 and go to :
Charts >> Template >> save template >> save file as tester.tpl.
Step5.
Now open MT4 and go to :
View >> strategy test :
set your symbol
Use date
Visual Mode
Start
Step6.
View signal on left side on top in your chart.
Saturday, July 7, 2018
Simple Moving Average Crossover Robot
Step 1.
create Simple Moving Average Crossover Robot file in expert folder and
Step 2. copy paste code given below on your SimpleMovingAverageCrossoverRobot file :
//code start
//+------------------------------------------------------------------+
// Simple Moving Average Crossover Robot
//https://forexwithcandlestick.blogspot.com
//
// Disclaimer: This EA is provided to you without any warranty
// Please use first on demo account before live account
// We WILL not responsible for
// FOR ANY LOSS OF USE, REVENUE OR PROFIT, LOST OR DAMAGED DATA, OR OTHER COMMERCIAL OR
// ECONOMIC LOSS OR FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, STATUTORY, PUNITIVE,
// EXEMPLARY OR CONSEQUENTIAL DAMAGES WHATSOEVER RELATED TO YOUR USE OF THIS EA OR
// FOREXEADVISOR STRATEGY BUILDER
//
// USE THIS EA AT YOUR OWN RISK.
//
// Before adding this expert advisor to a chart, make sure there are NO
// open positions.
//
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
extern int MagicNumber=10001;
extern double Lots =0.01;
extern double StopLoss=0.00;
extern double TakeProfit=100.00;
extern int TrailingStop=15;
extern int Slippage=3;
//+------------------------------------------------------------------+
// expert start function
//+------------------------------------------------------------------+
int start()
{
double MyPoint=Point;
if(Digits==3 || Digits==5) MyPoint=Point*10;
//current chart, current period, 20 candles, No shift, simple , close price
double SlowMovingAverage = iMA (NULL,0,20,0,MODE_SMA,PRICE_CLOSE,0);
//current chart, current period, 20 candles, No shift, simple , close price
double LastSlowMovingAverage = iMA (NULL,0,20,0,MODE_SMA,PRICE_CLOSE,1);
//current chart, current period, 10 candles, No shift, simple , close price
double FastMovingAverage = iMA (NULL,0,10,0,MODE_SMA,PRICE_CLOSE,0);
//current chart, current period, 10 candles, No shift, simple , close price
double LastFastMovingAverage = iMA (NULL,0,10,0,MODE_SMA,PRICE_CLOSE,1);
//--------------------------------------------------------------------
double TheStopLoss=0;
double TheTakeProfit=0;
if( TotalOrdersCount()==0 )
{
int result=0;
//if the fast SMA is now above
if ((LastFastMovingAverage < LastSlowMovingAverage) && (FastMovingAverage > SlowMovingAverage))
{
result=OrderSend(Symbol(),OP_BUY,AdvancedMM(),Ask,Slippage,0,0,"Simple Moving Average Crossover Robot https://forexwithcandlestick.blogspot.com",MagicNumber,0,Blue);
if(result>0)
{
TheStopLoss=0;
TheTakeProfit=0;
if(TakeProfit>0) TheTakeProfit=Ask+TakeProfit*MyPoint;
if(StopLoss>0) TheStopLoss=Ask-StopLoss*MyPoint;
OrderSelect(result,SELECT_BY_TICKET);
OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(TheStopLoss,Digits),NormalizeDouble(TheTakeProfit,Digits),0,Green);
}
return(0);
}
//if the fast SMA is now above
if ((LastFastMovingAverage > LastSlowMovingAverage) && (FastMovingAverage < SlowMovingAverage))
{
result=OrderSend(Symbol(),OP_SELL,AdvancedMM(),Bid,Slippage,0,0,"Simple Moving Average Crossover Robot https://forexwithcandlestick.blogspot.com",MagicNumber,0,Red);
if(result>0)
{
TheStopLoss=0;
TheTakeProfit=0;
if(TakeProfit>0) TheTakeProfit=Bid-TakeProfit*MyPoint;
if(StopLoss>0) TheStopLoss=Bid+StopLoss*MyPoint;
OrderSelect(result,SELECT_BY_TICKET);
OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(TheStopLoss,Digits),NormalizeDouble(TheTakeProfit,Digits),0,Green);
}
return(0);
}
}
for(int cnt=0;cnt<OrdersTotal();cnt++)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if(OrderType()<=OP_SELL &&
OrderSymbol()==Symbol() &&
OrderMagicNumber()==MagicNumber
)
{
if(OrderType()==OP_BUY)
{
if(TrailingStop>0)
{
if(Bid-OrderOpenPrice()>MyPoint*TrailingStop)
{
if(OrderStopLoss()<Bid-MyPoint*TrailingStop)
{
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-TrailingStop*MyPoint,OrderTakeProfit(),0,Green);
return(0);
}
}
}
}
else
{
if(TrailingStop>0)
{
if((OrderOpenPrice()-Ask)>(MyPoint*TrailingStop))
{
if((OrderStopLoss()>(Ask+MyPoint*TrailingStop)) || (OrderStopLoss()==0))
{
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+MyPoint*TrailingStop,OrderTakeProfit(),0,Red);
return(0);
}
}
}
}
}
}
return(0);
}
int TotalOrdersCount()
{
int result=0;
for(int i=0;i<OrdersTotal();i++)
{
OrderSelect(i,SELECT_BY_POS ,MODE_TRADES);
if (OrderMagicNumber()==MagicNumber) result++;
}
return (result);
}
double AdvancedMM()
{
int i;
double AdvancedMMLots = 0;
bool profit1=false;
int SystemHistoryOrders=0;
for( i=0;i<OrdersHistoryTotal();i++)
{ OrderSelect(i,SELECT_BY_POS ,MODE_HISTORY);
if (OrderMagicNumber()==MagicNumber) SystemHistoryOrders++;
}
bool profit2=false;
int LO=0;
if(SystemHistoryOrders<2) return(Lots);
for( i=OrdersHistoryTotal()-1;i>=0;i--)
{
if(OrderSelect(i,SELECT_BY_POS ,MODE_HISTORY))
if (OrderMagicNumber()==MagicNumber)
{
if(OrderProfit()>=0 && profit1) return(Lots);
if( LO==0)
{ if(OrderProfit()>=0) profit1=true;
if(OrderProfit()<0) return(OrderLots());
LO=1;
}
if(OrderProfit()>=0 && profit2) return(AdvancedMMLots);
if(OrderProfit()>=0) profit2=true;
if(OrderProfit()<0 )
{ profit1=false;
profit2=false;
AdvancedMMLots+=OrderLots();
}
}
}
return(AdvancedMMLots);
}
//----------------------------------------------------------------------------------------
create Simple Moving Average Crossover Robot file in expert folder and
Step 2. copy paste code given below on your SimpleMovingAverageCrossoverRobot file :
//code start
//+------------------------------------------------------------------+
// Simple Moving Average Crossover Robot
//https://forexwithcandlestick.blogspot.com
//
// Disclaimer: This EA is provided to you without any warranty
// Please use first on demo account before live account
// We WILL not responsible for
// FOR ANY LOSS OF USE, REVENUE OR PROFIT, LOST OR DAMAGED DATA, OR OTHER COMMERCIAL OR
// ECONOMIC LOSS OR FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, STATUTORY, PUNITIVE,
// EXEMPLARY OR CONSEQUENTIAL DAMAGES WHATSOEVER RELATED TO YOUR USE OF THIS EA OR
// FOREXEADVISOR STRATEGY BUILDER
//
// USE THIS EA AT YOUR OWN RISK.
//
// Before adding this expert advisor to a chart, make sure there are NO
// open positions.
//
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
extern int MagicNumber=10001;
extern double Lots =0.01;
extern double StopLoss=0.00;
extern double TakeProfit=100.00;
extern int TrailingStop=15;
extern int Slippage=3;
//+------------------------------------------------------------------+
// expert start function
//+------------------------------------------------------------------+
int start()
{
double MyPoint=Point;
if(Digits==3 || Digits==5) MyPoint=Point*10;
//current chart, current period, 20 candles, No shift, simple , close price
double SlowMovingAverage = iMA (NULL,0,20,0,MODE_SMA,PRICE_CLOSE,0);
//current chart, current period, 20 candles, No shift, simple , close price
double LastSlowMovingAverage = iMA (NULL,0,20,0,MODE_SMA,PRICE_CLOSE,1);
//current chart, current period, 10 candles, No shift, simple , close price
double FastMovingAverage = iMA (NULL,0,10,0,MODE_SMA,PRICE_CLOSE,0);
//current chart, current period, 10 candles, No shift, simple , close price
double LastFastMovingAverage = iMA (NULL,0,10,0,MODE_SMA,PRICE_CLOSE,1);
//--------------------------------------------------------------------
double TheStopLoss=0;
double TheTakeProfit=0;
if( TotalOrdersCount()==0 )
{
int result=0;
//if the fast SMA is now above
if ((LastFastMovingAverage < LastSlowMovingAverage) && (FastMovingAverage > SlowMovingAverage))
{
result=OrderSend(Symbol(),OP_BUY,AdvancedMM(),Ask,Slippage,0,0,"Simple Moving Average Crossover Robot https://forexwithcandlestick.blogspot.com",MagicNumber,0,Blue);
if(result>0)
{
TheStopLoss=0;
TheTakeProfit=0;
if(TakeProfit>0) TheTakeProfit=Ask+TakeProfit*MyPoint;
if(StopLoss>0) TheStopLoss=Ask-StopLoss*MyPoint;
OrderSelect(result,SELECT_BY_TICKET);
OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(TheStopLoss,Digits),NormalizeDouble(TheTakeProfit,Digits),0,Green);
}
return(0);
}
//if the fast SMA is now above
if ((LastFastMovingAverage > LastSlowMovingAverage) && (FastMovingAverage < SlowMovingAverage))
{
result=OrderSend(Symbol(),OP_SELL,AdvancedMM(),Bid,Slippage,0,0,"Simple Moving Average Crossover Robot https://forexwithcandlestick.blogspot.com",MagicNumber,0,Red);
if(result>0)
{
TheStopLoss=0;
TheTakeProfit=0;
if(TakeProfit>0) TheTakeProfit=Bid-TakeProfit*MyPoint;
if(StopLoss>0) TheStopLoss=Bid+StopLoss*MyPoint;
OrderSelect(result,SELECT_BY_TICKET);
OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(TheStopLoss,Digits),NormalizeDouble(TheTakeProfit,Digits),0,Green);
}
return(0);
}
}
for(int cnt=0;cnt<OrdersTotal();cnt++)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if(OrderType()<=OP_SELL &&
OrderSymbol()==Symbol() &&
OrderMagicNumber()==MagicNumber
)
{
if(OrderType()==OP_BUY)
{
if(TrailingStop>0)
{
if(Bid-OrderOpenPrice()>MyPoint*TrailingStop)
{
if(OrderStopLoss()<Bid-MyPoint*TrailingStop)
{
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-TrailingStop*MyPoint,OrderTakeProfit(),0,Green);
return(0);
}
}
}
}
else
{
if(TrailingStop>0)
{
if((OrderOpenPrice()-Ask)>(MyPoint*TrailingStop))
{
if((OrderStopLoss()>(Ask+MyPoint*TrailingStop)) || (OrderStopLoss()==0))
{
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+MyPoint*TrailingStop,OrderTakeProfit(),0,Red);
return(0);
}
}
}
}
}
}
return(0);
}
int TotalOrdersCount()
{
int result=0;
for(int i=0;i<OrdersTotal();i++)
{
OrderSelect(i,SELECT_BY_POS ,MODE_TRADES);
if (OrderMagicNumber()==MagicNumber) result++;
}
return (result);
}
double AdvancedMM()
{
int i;
double AdvancedMMLots = 0;
bool profit1=false;
int SystemHistoryOrders=0;
for( i=0;i<OrdersHistoryTotal();i++)
{ OrderSelect(i,SELECT_BY_POS ,MODE_HISTORY);
if (OrderMagicNumber()==MagicNumber) SystemHistoryOrders++;
}
bool profit2=false;
int LO=0;
if(SystemHistoryOrders<2) return(Lots);
for( i=OrdersHistoryTotal()-1;i>=0;i--)
{
if(OrderSelect(i,SELECT_BY_POS ,MODE_HISTORY))
if (OrderMagicNumber()==MagicNumber)
{
if(OrderProfit()>=0 && profit1) return(Lots);
if( LO==0)
{ if(OrderProfit()>=0) profit1=true;
if(OrderProfit()<0) return(OrderLots());
LO=1;
}
if(OrderProfit()>=0 && profit2) return(AdvancedMMLots);
if(OrderProfit()>=0) profit2=true;
if(OrderProfit()<0 )
{ profit1=false;
profit2=false;
AdvancedMMLots+=OrderLots();
}
}
}
return(AdvancedMMLots);
}
//----------------------------------------------------------------------------------------
//code end
Step 3.
Now open MT4 and go to :
Insert >> Indicator >> Moving Average
Set parameter : Period : 10 , shift : 0 , MA Method : Simple , Apply to : close , style : Yellow then OK
repeate again
Insert >> Indicator >> Moving Average
Set parameter : Period : 20 , shift : 0 , MA Method : Simple , Apply to : close , style : Red then OK
Step 4.
Lunch your MT4 and findSIMPLEMOVINGAVERAGECROSSOVERROBOT and drag and drop on your favourite currency window
set your parameter and allow live trading on commen section.
Step 5.
Now just watch your robot automatic place order on SIMPLE MOVING AVERAGE CROSSOVER signal.
Happy Trading Now
Friday, July 6, 2018
BOLLINGER BANDS EA AUTOROBOT
If you want trading using robot then you use this free of cost .
BOLLINGER BANDS Expert Advisor for MT4
Step 1.
create BOLLINGERBANDSROBOT file in expert folder and
Step 2. copy paste code given below on your BOLLINGERBANDSROBOT file :
//code start
//+------------------------------------------------------------------+
// BOLLINGER BANDS EA AUTOROBOT
//https://forexwithcandlestick.blogspot.com
//
// Disclaimer: This EA is provided to you without any warranty
// Please use first on demo account before live account
// We WILL not responsible for
// FOR ANY LOSS OF USE, REVENUE OR PROFIT, LOST OR DAMAGED DATA, OR OTHER COMMERCIAL OR
// ECONOMIC LOSS OR FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, STATUTORY, PUNITIVE,
// EXEMPLARY OR CONSEQUENTIAL DAMAGES WHATSOEVER RELATED TO YOUR USE OF THIS EA OR
// FOREXEADVISOR STRATEGY BUILDER
//
// USE THIS EA AT YOUR OWN RISK.
//
// Before adding this expert advisor to a chart, make sure there are NO
// open positions.
//
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
extern int MagicNumber=10001;
extern double Lots =0.01;
extern double StopLoss=0.00;
extern double TakeProfit=50.00;
extern int TrailingStop=15;
extern int Slippage=3;
//+------------------------------------------------------------------+
// expert start function
//+------------------------------------------------------------------+
int start()
{
double MyPoint=Point;
if(Digits==3 || Digits==5) MyPoint=Point*10;
//symbol, period,20 candles, deviation 2, no shift, close price, candle
double LowerBB=iBands(_Symbol,_Period,20,2,0,PRICE_CLOSE,MODE_LOWER,1);
double UpperBB=iBands(_Symbol,_Period,20,2,0,PRICE_CLOSE,MODE_UPPER,1);
// calculate the candle before
double PrevLowerBB=iBands(_Symbol,_Period,20,2,0,PRICE_CLOSE,MODE_LOWER,2);
double PrevUpperBB=iBands(_Symbol,_Period,20,2,0,PRICE_CLOSE,MODE_UPPER,2);
//--------------------------------------------------------------------
double TheStopLoss=0;
double TheTakeProfit=0;
if( TotalOrdersCount()==0 )
{
int result=0;
//symbol, period,20 candles, deviation 2, no shift, close price, candle
// if price is above the last close
if (Ask>Close[1])
//if close2 was below lower band
if (Close[2]<PrevLowerBB)
//if close1 was above lower band
if (Close[1]>LowerBB)
{
result=OrderSend(Symbol(),OP_BUY,AdvancedMM(),Ask,Slippage,0,0,"Bollinger Band Robot https://forexwithcandlestick.blogspot.com",MagicNumber,0,Blue);
if(result>0)
{
TheStopLoss=0;
TheTakeProfit=0;
if(TakeProfit>0) TheTakeProfit=Ask+TakeProfit*MyPoint;
if(StopLoss>0) TheStopLoss=Ask-StopLoss*MyPoint;
OrderSelect(result,SELECT_BY_TICKET);
OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(TheStopLoss,Digits),NormalizeDouble(TheTakeProfit,Digits),0,Green);
}
return(0);
}
// if price is bellow the last close
if (Bid<Close[1])
// if close2 was above upper band
if (Close[2]>PrevUpperBB)
// if close is below upper band
if (Close[1]<UpperBB)
{
result=OrderSend(Symbol(),OP_SELL,AdvancedMM(),Bid,Slippage,0,0,"Bollinger Band Robot https://forexwithcandlestick.blogspot.com",MagicNumber,0,Red);
if(result>0)
{
TheStopLoss=0;
TheTakeProfit=0;
if(TakeProfit>0) TheTakeProfit=Bid-TakeProfit*MyPoint;
if(StopLoss>0) TheStopLoss=Bid+StopLoss*MyPoint;
OrderSelect(result,SELECT_BY_TICKET);
OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(TheStopLoss,Digits),NormalizeDouble(TheTakeProfit,Digits),0,Green);
}
return(0);
}
}
for(int cnt=0;cnt<OrdersTotal();cnt++)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if(OrderType()<=OP_SELL &&
OrderSymbol()==Symbol() &&
OrderMagicNumber()==MagicNumber
)
{
if(OrderType()==OP_BUY)
{
if(TrailingStop>0)
{
if(Bid-OrderOpenPrice()>MyPoint*TrailingStop)
{
if(OrderStopLoss()<Bid-MyPoint*TrailingStop)
{
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-TrailingStop*MyPoint,OrderTakeProfit(),0,Green);
return(0);
}
}
}
}
else
{
if(TrailingStop>0)
{
if((OrderOpenPrice()-Ask)>(MyPoint*TrailingStop))
{
if((OrderStopLoss()>(Ask+MyPoint*TrailingStop)) || (OrderStopLoss()==0))
{
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+MyPoint*TrailingStop,OrderTakeProfit(),0,Red);
return(0);
}
}
}
}
}
}
return(0);
}
int TotalOrdersCount()
{
int result=0;
for(int i=0;i<OrdersTotal();i++)
{
OrderSelect(i,SELECT_BY_POS ,MODE_TRADES);
if (OrderMagicNumber()==MagicNumber) result++;
}
return (result);
}
double AdvancedMM()
{
int i;
double AdvancedMMLots = 0;
bool profit1=false;
int SystemHistoryOrders=0;
for( i=0;i<OrdersHistoryTotal();i++)
{ OrderSelect(i,SELECT_BY_POS ,MODE_HISTORY);
if (OrderMagicNumber()==MagicNumber) SystemHistoryOrders++;
}
bool profit2=false;
int LO=0;
if(SystemHistoryOrders<2) return(Lots);
for( i=OrdersHistoryTotal()-1;i>=0;i--)
{
if(OrderSelect(i,SELECT_BY_POS ,MODE_HISTORY))
if (OrderMagicNumber()==MagicNumber)
{
if(OrderProfit()>=0 && profit1) return(Lots);
if( LO==0)
{ if(OrderProfit()>=0) profit1=true;
if(OrderProfit()<0) return(OrderLots());
LO=1;
}
if(OrderProfit()>=0 && profit2) return(AdvancedMMLots);
if(OrderProfit()>=0) profit2=true;
if(OrderProfit()<0 )
{ profit1=false;
profit2=false;
AdvancedMMLots+=OrderLots();
}
}
}
return(AdvancedMMLots);
}
//----------------------------------------------------------------------------------------
BOLLINGER BANDS Expert Advisor for MT4
Step 1.
create BOLLINGERBANDSROBOT file in expert folder and
Step 2. copy paste code given below on your BOLLINGERBANDSROBOT file :
//code start
//+------------------------------------------------------------------+
// BOLLINGER BANDS EA AUTOROBOT
//https://forexwithcandlestick.blogspot.com
//
// Disclaimer: This EA is provided to you without any warranty
// Please use first on demo account before live account
// We WILL not responsible for
// FOR ANY LOSS OF USE, REVENUE OR PROFIT, LOST OR DAMAGED DATA, OR OTHER COMMERCIAL OR
// ECONOMIC LOSS OR FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, STATUTORY, PUNITIVE,
// EXEMPLARY OR CONSEQUENTIAL DAMAGES WHATSOEVER RELATED TO YOUR USE OF THIS EA OR
// FOREXEADVISOR STRATEGY BUILDER
//
// USE THIS EA AT YOUR OWN RISK.
//
// Before adding this expert advisor to a chart, make sure there are NO
// open positions.
//
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
extern int MagicNumber=10001;
extern double Lots =0.01;
extern double StopLoss=0.00;
extern double TakeProfit=50.00;
extern int TrailingStop=15;
extern int Slippage=3;
//+------------------------------------------------------------------+
// expert start function
//+------------------------------------------------------------------+
int start()
{
double MyPoint=Point;
if(Digits==3 || Digits==5) MyPoint=Point*10;
//symbol, period,20 candles, deviation 2, no shift, close price, candle
double LowerBB=iBands(_Symbol,_Period,20,2,0,PRICE_CLOSE,MODE_LOWER,1);
double UpperBB=iBands(_Symbol,_Period,20,2,0,PRICE_CLOSE,MODE_UPPER,1);
// calculate the candle before
double PrevLowerBB=iBands(_Symbol,_Period,20,2,0,PRICE_CLOSE,MODE_LOWER,2);
double PrevUpperBB=iBands(_Symbol,_Period,20,2,0,PRICE_CLOSE,MODE_UPPER,2);
//--------------------------------------------------------------------
double TheStopLoss=0;
double TheTakeProfit=0;
if( TotalOrdersCount()==0 )
{
int result=0;
//symbol, period,20 candles, deviation 2, no shift, close price, candle
// if price is above the last close
if (Ask>Close[1])
//if close2 was below lower band
if (Close[2]<PrevLowerBB)
//if close1 was above lower band
if (Close[1]>LowerBB)
{
result=OrderSend(Symbol(),OP_BUY,AdvancedMM(),Ask,Slippage,0,0,"Bollinger Band Robot https://forexwithcandlestick.blogspot.com",MagicNumber,0,Blue);
if(result>0)
{
TheStopLoss=0;
TheTakeProfit=0;
if(TakeProfit>0) TheTakeProfit=Ask+TakeProfit*MyPoint;
if(StopLoss>0) TheStopLoss=Ask-StopLoss*MyPoint;
OrderSelect(result,SELECT_BY_TICKET);
OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(TheStopLoss,Digits),NormalizeDouble(TheTakeProfit,Digits),0,Green);
}
return(0);
}
// if price is bellow the last close
if (Bid<Close[1])
// if close2 was above upper band
if (Close[2]>PrevUpperBB)
// if close is below upper band
if (Close[1]<UpperBB)
{
result=OrderSend(Symbol(),OP_SELL,AdvancedMM(),Bid,Slippage,0,0,"Bollinger Band Robot https://forexwithcandlestick.blogspot.com",MagicNumber,0,Red);
if(result>0)
{
TheStopLoss=0;
TheTakeProfit=0;
if(TakeProfit>0) TheTakeProfit=Bid-TakeProfit*MyPoint;
if(StopLoss>0) TheStopLoss=Bid+StopLoss*MyPoint;
OrderSelect(result,SELECT_BY_TICKET);
OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(TheStopLoss,Digits),NormalizeDouble(TheTakeProfit,Digits),0,Green);
}
return(0);
}
}
for(int cnt=0;cnt<OrdersTotal();cnt++)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if(OrderType()<=OP_SELL &&
OrderSymbol()==Symbol() &&
OrderMagicNumber()==MagicNumber
)
{
if(OrderType()==OP_BUY)
{
if(TrailingStop>0)
{
if(Bid-OrderOpenPrice()>MyPoint*TrailingStop)
{
if(OrderStopLoss()<Bid-MyPoint*TrailingStop)
{
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-TrailingStop*MyPoint,OrderTakeProfit(),0,Green);
return(0);
}
}
}
}
else
{
if(TrailingStop>0)
{
if((OrderOpenPrice()-Ask)>(MyPoint*TrailingStop))
{
if((OrderStopLoss()>(Ask+MyPoint*TrailingStop)) || (OrderStopLoss()==0))
{
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+MyPoint*TrailingStop,OrderTakeProfit(),0,Red);
return(0);
}
}
}
}
}
}
return(0);
}
int TotalOrdersCount()
{
int result=0;
for(int i=0;i<OrdersTotal();i++)
{
OrderSelect(i,SELECT_BY_POS ,MODE_TRADES);
if (OrderMagicNumber()==MagicNumber) result++;
}
return (result);
}
double AdvancedMM()
{
int i;
double AdvancedMMLots = 0;
bool profit1=false;
int SystemHistoryOrders=0;
for( i=0;i<OrdersHistoryTotal();i++)
{ OrderSelect(i,SELECT_BY_POS ,MODE_HISTORY);
if (OrderMagicNumber()==MagicNumber) SystemHistoryOrders++;
}
bool profit2=false;
int LO=0;
if(SystemHistoryOrders<2) return(Lots);
for( i=OrdersHistoryTotal()-1;i>=0;i--)
{
if(OrderSelect(i,SELECT_BY_POS ,MODE_HISTORY))
if (OrderMagicNumber()==MagicNumber)
{
if(OrderProfit()>=0 && profit1) return(Lots);
if( LO==0)
{ if(OrderProfit()>=0) profit1=true;
if(OrderProfit()<0) return(OrderLots());
LO=1;
}
if(OrderProfit()>=0 && profit2) return(AdvancedMMLots);
if(OrderProfit()>=0) profit2=true;
if(OrderProfit()<0 )
{ profit1=false;
profit2=false;
AdvancedMMLots+=OrderLots();
}
}
}
return(AdvancedMMLots);
}
//----------------------------------------------------------------------------------------
//code end
Step 3.
Now open MT4 and go to :
Insert >> Indicator >> Trand >> Bollinger Bands
Set parameter : Period : 20 , shift : 0 , Deviation 2 , Apply to : close , style : Yellow then OK
Step 4.
Lunch your MT4 and find BOLLINGERBANDSROBOT and drag and drop on your favourite currency window
set your parameter and allow live trading on commen section.
Step 5.
Now just watch your robot automatic place order on BOLLINGER BANDS signal.
Happy Trading Now
Subscribe to:
Posts (Atom)