Need help creating a VERY simple EA - page 3

 

//+------------------------------------------------------------------+
//| Stepper.mq4 |
//| doshur |
//| www.doshur.com |
//+------------------------------------------------------------------+
#property copyright "doshur"
#property link "www.doshur.com"

extern int TakeProfit = 5;
extern int Range = 20;
extern int Risk = 2;

//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
  {
  return(0);
  }

int deinit()
  {
  return(0);
  }

int start()
  {
//----
  static bool ToTrade = false;
  static bool FirstTrade = true;

  double PrevLow = iLow(Symbol(), 0, 1);
  double PrevHigh = iHigh(Symbol(), 0, 1);
  double PrevRange = (PrevHigh - PrevLow) / Point;

  if(NewBar())
  {
  if(FirstTrade == false)
  {
  if(PrevRange >= Range)
  ToTrade = true;
  else
  ToTrade = false;
  }
  else
  {
  FirstTrade = false;
  }
  }

  if(ToTrade)
  {
  if(COT(1) < 1)
  {
  if(Ask > PrevHigh)
  OrderSend(Symbol(), OP_BUY, MM(PrevRange, Risk), Ask, 3, PrevLow, Ask + TakeProfit * Point, "Stepper - BUY", 57390, 0, Blue);
  }

  if(COT(2) < 1)
  {
  if(Bid < PrevLow)
  OrderSend(Symbol(), OP_SELL, MM(PrevRange, Risk), Bid, 3, PrevHigh, Bid - TakeProfit * Point, "Stepper - SELL", 57391, 0, Red);
  }
  }
//----
  return(0);
  }
//+------------------------------------------------------------------+

//---- Check Is New Bar
bool NewBar()
{
  static datetime PrevBar;

  if(PrevBar < Time[0])
  {
  PrevBar = Time[0];
  return(true);
  }
  else
  {
  return(false);
  }

  return(false);
}

//---- Check Open Trades
int COT(int BS)
{
  int Buys = 0, Sells = 0;

  for(int cnt_COT = 0; cnt_COT < OrdersTotal(); cnt_COT++)
  {
  OrderSelect(cnt_COT, SELECT_BY_POS, MODE_TRADES);

  if(OrderType() == OP_BUY && OrderSymbol() == Symbol()) Buys++;
  if(OrderType() == OP_SELL && OrderSymbol() == Symbol()) Sells++;
  }

  if(BS == 1) return(Buys);
  if(BS == 2) return(Sells);
}

//---- Money Management
double MM(int SL, int RK)
{
  double rLots = NormalizeDouble(AccountBalance() / 1000 * RK / SL, 1); // Risk ?% of balance

  if(rLots < 0.1) rLots = 0.1;

  return(rLots);
}


Had implemented a first run to overcome the issue and some others

Had not tested the code

Pls test and list down other ammendments

[Deleted]  

is there away where we can modify the stop loss to so 15 or 20 instead of the other end of the candle?

 

crazfoto 2008.12.02 08:27 is there away where we can modify the stop loss to so 15 or 20 instead of the other end of the candle?


YES. It is possible.

[Deleted]  

is this one for the 2hr average? or another version of the 30min?


if it is the 2hr avg it did not execute any trades yesterday.

 
crazfoto:

is this one for the 2hr average? or another version of the 30min?


if it is the 2hr avg it did not execute any trades yesterday.

u mean my codes?

Its implemented for 30 mins as you requested.

[Deleted]  

oh. my bad. i will test it out now.


THANK YOU SO MUCH for helping me with this. i played wit it on the 4hr chart. i think if i change the stop to say 15 or 20 pips on a 4hr chart, the results will be good. and what im used to.

[Deleted]  
will it work on an offline 2hr chart? i see alot of people have problems using EA's on offline charts.
[Deleted]  
its only working on the 1hr chart
[Deleted]  
ok. it works on 30min chart but it keeps entering an order whenever one pays out. so its not waiting for the 30min candle to be done being formed before entering a new order.
 

oops.

i forget to disable once it enters.

let me amend the code