Friday 28 December 2012

EA Builder Alternative


Expert advisor builders (generators)

http://sufx.core.t3-ism.net/ExpertAdvisorBuilder/
Expert Advisor Builder for MetaTrader 4 is a well known web-based tool that is very basic and free. It's pretty old and it looks unsupported now, although there is a forum available.

http://eacreator.com/
EA Creator is a web-based expert advisors builder for MetaTrader 4. Unfortunately, it looks that it was abandoned.

http://eatree.com/
EATree is a software for building expert advisors for MetaTrader 4 and MetaTrader 5. Here we connect boxes that represents AND logic, OR logic, IF condition, conversion or mathematical functions, time series, indicators (system or custom) and others to create the main logic. Finally, we connect that logic to the special Trade box.

http://www.forexeadvisor.com/
ForexEAdvisor is also popular web-based expert advisor builder that is simple and free to use.

http://forexgenerator.com/
Forex Generator is a software for building expert advisors and technical indicators for MetaTrader 4 and MetaTrader 5. This application is the most similar to fxDreema. It uses visually connected blocks for creating a trading diagram. Each block represents some piece of code, a code function. In addition, there is a Block Editor to create and manage custom blocks. There is a forum available.

http://molanis.com/
Molanis is a set of Java-based products for building expert advisors and technical indicators for MetaTrader 4 and MetaTrader 5. A trading diagram is created by connecting a few simple specially designed blocks. There is a forum available.

http://noprogra.com/
NoProgra is a new software for building expert advisors for MetaTrader 4. The way of algorithm creation here is as they say in "natural language". Which means, that we can build our project in a way we speak, write and think. This platform is Java-based and it's currently free to download and use.

http://strategytune.com/
StrategyTune is a free and simple web tool for building expert advisors for MetaTrader 4. No installations and no registrations needed, you can start building EA's just right now.

http://www.iexpertadvisor.com/
Visual Traders Studio is a software for building expert advisors for MetaTrader 4. Six basic Element types (blocks) are used to create the trading logic - Start element, Note element, Variable element, Logic element, Function element and End element. There is a forumavailable.


EAbuilder_FX Dreema

I have been looking for EAbuilder and in this website are some

http://fxdreema.com/alternatives

Question is does anyone has experience with any of the above ? 
Basicaly I would look for anything that can provide good support and or good lessons on how to. I do want to build something complex.

Martingale code

I wrote a piece of code to do what you ask, I hope this helps.
There is not a expert adviser, is a code to add to yours experts.
=================================================


//+------------------------------------------------------------------+
//|                                                        test1.mq4 |
//|                        Copyright 2012, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright 2012, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"
extern int MagicNumber=123;
extern double StartLotsize=0.01;
extern double MultiplierLot=2.0;
extern double StepOrder=10;
extern int MaxGrid=3;
//---------------------------------------------------------------------------------------
  int MultiplierPoint;
  double DigitsPoints;
  int BuyCnt;
  int SellCnt;
  double PipsBuy;
  double PipsSell;
  bool SendBuy;
  bool SendSell;
  double LotBuy;
  double LotSell;
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
MultiplierPoint=1;
if(MarketInfo(Symbol(),MODE_DIGITS)==5||MarketInfo(Symbol(),MODE_DIGITS)==3) MultiplierPoint=10;
DigitsPoints=MarketInfo(Symbol(),MODE_POINT)*MultiplierPoint;
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
 
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
   BuyCnt=0;
   SellCnt=0;
   PipsBuy=0;
   PipsSell=0;
   SendBuy=false;
   SendSell=false;
   LotBuy=StartLotsize;
   LotSell=StartLotsize;
//----
   for(int i=0; i<OrdersTotal(); i++)
   {
   if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
   {
   if(OrderMagicNumber()==MagicNumber)
   {
   if(OrderType()==OP_BUY)
   {
   BuyCnt++;
   PipsBuy=(Bid-OrderOpenPrice())/DigitsPoints;
   }
   if(OrderType()==OP_SELL)
   {
   SellCnt++;
   PipsSell=(OrderOpenPrice()-Ask)/DigitsPoints;
   }
   }
   }
   }
//----
   if((BuyCnt<MaxGrid)&&(PipsBuy>=StepOrder))
   {
   LotBuy=NormLot(StartLotsize*MathMax(1,MathPow(MultiplierLot,BuyCnt)));
   SendBuy=true;
   }
   if((SellCnt<MaxGrid)&&(PipsSell>=StepOrder))
   {
   LotSell=NormLot(StartLotsize*MathMax(1,MathPow(MultiplierLot,SellCnt)));
   SendSell=true;
   }
//----
  if(SendBuy==true)
  {
  //send orders buy... with lot=LotBuy
  return(0);
  }
//----
  if(SendSell==true)
  {
  //send orders sell... with lot=LotSell
  return(0);
  }
//----
   return(0);
  }
//+------------------------------------------------------------------+
//Normalize lot                                                                                                        //
double NormLot(double LotSize)
{
int LotDigit;
//------------------------------------------------------
//Broker lot info
double MinLot=MarketInfo(Symbol(),MODE_MINLOT);
double MaxLot=MarketInfo(Symbol(),MODE_MAXLOT);
double LotStep=MarketInfo(Symbol(),MODE_LOTSTEP);
//------------------------------------------------------
//Calculate lot digits
if(LotStep==1) LotDigit=0;
if(LotStep==0.1) LotDigit=1;
if(LotStep==0.01) LotDigit=2;
if(LotStep==0.001) LotDigit=3;
//------------------------------------------------------
return(NormalizeDouble(MathMin(MathMax(LotSize,MinLot),MaxLot),LotDigit));
}