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

 

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.

 

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.

 

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.

 
will it work on an offline 2hr chart? i see alot of people have problems using EA's on offline charts.
 
its only working on the 1hr chart
 
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

Reason: