Will create your Expert Advisor for Free! - page 16

 
vriesde1:
Hi Guys,

I am a Computer Science student heading towards my masters, and very interested in Forex.

Basically, I offer to create a free Expert Advisor for whoever needs one. I just finished my own first Expert Advisor, it gave me a return of 100% over 2007-2008, but performs less good @ the years before 2007, some not even profitable. Therefor Im looking for more inspiration!

I am doing this for extra experience in both mq4 and forex trading systems themselves.

Oh and by the way, I am already working on the inside bar expert so do not come up with that one :D.

Send me a private message with your plan, and you can expect, if the EA is not too complicated, within one week.

Greetings!!

I dont know if you have anymore time after all of these replies... I have a great strategy that i use that does a lot more then 100% per year... depends on how diligent i am at trading... but i do it all by manually since i dont know how to write the code for the EA... If you could help me out with this i would greatly appreciate it... E-mail me at matthewjenson@gmail.com

 
vriesde1 wrote >>
Hi Guys,

I am a Computer Science student heading towards my masters, and very interested in Forex.

Basically, I offer to create a free Expert Advisor for whoever needs one. I just finished my own first Expert Advisor, it gave me a return of 100% over 2007-2008, but performs less good @ the years before 2007, some not even profitable. Therefor Im looking for more inspiration!

I am doing this for extra experience in both mq4 and forex trading systems themselves.

Oh and by the way, I am already working on the inside bar expert so do not come up with that one :D.

Send me a private message with your plan, and you can expect, if the EA is not too complicated, within one week.

Greetings!!

Please help. I can imagine that you are very very busy. But I am looking for a very good profitable long term auto trader that can run on all currency pairs and is 95-100% accurate. Is this something that you can do? Please let me know and keep up the good work. :-)

Please feel free to email me at bobwirwin3@aol.com

Thank you...

 

//+------------------------------------------------------------------+
//| CHIFX.mq4 |
//| Copyright © 2008,chinex nig ltd|
//| chinexannex@yahoo.com |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2008, chinex nig ltd"
#property link "chinexannex@yahoo.com"

extern int takeprofit = 30; // the targeted profit in pips
extern int stoploss = 30; // the desired loss in pips
extern int iTrailingStop= 30; // the extended pip gain when the targeted profit is reached
extern int slippage = 3; // the difference between the bid and the ask price is 3 pips
extern double MA_1 = 14; // the moving average for 14 period (long)
extern double MA_2 = 7; // the moving average for 7 period (short)
extern double RS1 = 14; // the relative standard index for 14 periods
extern double S_FAST = 10; // the stochastic value for %k period
extern double S_SLOW = 3; // the stochastic value for slowing period
extern double S_SIGN = 3; // the stochastic value for %d period
extern double lot = 0.01; // the unit size of the contract

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

int start()
{
//-------------------------------------------------------------------+
int cnt,ticket,total;
double RSI_CURR,RSI_PREV,MA_1,MA_2,STOCHVAL,STOCHSIGN;
//-------------------------------------------------------------------+
RSI_CURR =iRSI(NULL,0,14,PRICE_CLOSE,0);
RSI_PREV =iRSI(NULL,0,14,PRICE_CLOSE,1);
MA_1 =iMA (NULL,0,14,0,MODE_EMA,PRICE_CLOSE,0);
MA_2 =iMA (NULL,0,7,0,MODE_EMA,PRICE_CLOSE,0);
STOCHVAL =iStochastic(NULL,0,10,3,3,MODE_SMA,0,MODE_MAIN,0);
STOCHSIGN=iStochastic(NULL,0,10,3,3,MODE_SMA,0,MODE_SIGNAL,0);

//-------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| Calculate Optimal Lot Size |
//+------------------------------------------------------------------+
double Lot = lot;
double dFreeMargin = AccountFreeMargin()*lot/100;
Lot = NormalizeDouble(dFreeMargin,2);
if (AccountFreeMargin()<(10000*lot))
{
Print("we have no money", AccountFreeMargin());
return(0);
}
//+---------------------------------------------------------------+
//| request to close/open long positions
//+---------------------------------------------------------------+
if(STOCHVAL>STOCHSIGN && Open[0])
{
//---------------------
total=OrdersTotal();
if(total<2)
{
ticket=OrderSend(Symbol(),OP_BUY,lot,Ask,3,Ask-stoploss*Point,Ask+takeprofit*Point,"long position",0,0,Blue);
if(ticket>0)
{
OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES);
Print("BUY order opentime : ", OrderOpenTime());
Print("BUY order opened : ", OrderOpenPrice());
Print("BUY order closed : ",OrderClosePrice());
Print("BUY order AccountProfit: ", AccountProfit());
}
else
Print("Error opening BUY order : ",GetLastError());
}
return(0);
}
//---------------------------------------------------------------------

if(STOCHVAL<STOCHSIGN)
{
//-----------------

for(cnt=0;cnt<total;cnt++)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if(OrderType()<=OP_BUY && // check for opened position
OrderSymbol()==Symbol()) // check for symbol
{
if(OrderType()==OP_BUY) // long position is opened
{
// should it be closed?
OrderClose(OrderTicket(),OrderLots(),Ask,3,Blue); // close position
return(0);
}
//-----------------------
Sleep(1000); //disables the EA for 1 seconds

//-------------
if((STOCHVAL<STOCHSIGN && Open[0]))
{
//---------------------
total=OrdersTotal();
if(total<2)
{
ticket=OrderSend(Symbol(),OP_SELL,lot,Bid,3,Bid+stoploss*Point,Bid-takeprofit*Point,"short position",0,0,Red);
if(ticket>0)
{
OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES);
Print("SELL order opentime : ", OrderOpenTime());
Print("SELL order opened : ", OrderOpenPrice());
Print("SELL order closed : ",OrderClosePrice());
Print("SELL order AccountProfit: ", AccountProfit());
}
else
Print("Error opening SELL order : ",GetLastError());
return(0);
}
//----------------------------

if(STOCHVAL>STOCHSIGN)
{
for(cnt=0;cnt<total;cnt++)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if(OrderType()<=OP_SELL && // check for opened position
OrderSymbol()==Symbol()) // check for symbol
{
if(OrderType()==OP_SELL) // long position is opened
{
// should it be closed?
//-----------------
OrderClose(OrderTicket(),OrderLots(),Bid,3,Red); // close position
return(0);
}
//-----------------------
Sleep(1000); //disables the EA for 1 seconds




//+------------------------------------------------------------------------------------+
//| Modify positions - Stoploss based on Trailing stop |
//+------------------------------------------------------------------------------------+
if(iTrailingStop>0)
{

if(OrderType()==OP_BUY)
{
if(Bid-OrderOpenPrice()>Point*iTrailingStop)
{
if(OrderStopLoss()<Bid-Point*iTrailingStop)
{
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*iTrailingStop,OrderTakeProfit(),0,Green);
}
else
}
if(OrderType()==OP_SELL)
{
if(OrderOpenPrice()-Ask > Point*iTrailingStop)
if(OrderStopLoss() > Ask+Point*iTrailingStop)
{
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*iTrailingStop,OrderTakeProfit(),0,Yellow);
}
}}}}}}}}}}}





hi, i need your help on this ea. it does not open trades and it's backtesting is poor

............chinexex































 

//+------------------------------------------------------------------+
//| CHIFX.mq4 |
//| Copyright © 2008,chinex nig ltd|
//| chinexannex@yahoo.com |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2008, chinex nig ltd"
#property link "chinexannex@yahoo.com"

extern int takeprofit = 30; // the targeted profit in pips
extern int stoploss = 30; // the desired loss in pips
extern int iTrailingStop= 30; // the extended pip gain when the targeted profit is reached
extern int slippage = 3; // the difference between the bid and the ask price is 3 pips
extern double MA_1 = 14; // the moving average for 14 period (long)
extern double MA_2 = 7; // the moving average for 7 period (short)
extern double RS1 = 14; // the relative standard index for 14 periods
extern double S_FAST = 10; // the stochastic value for %k period
extern double S_SLOW = 3; // the stochastic value for slowing period
extern double S_SIGN = 3; // the stochastic value for %d period
extern double lot = 0.01; // the unit size of the contract

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

int start()
{
//-------------------------------------------------------------------+
int cnt,ticket,total;
double RSI_CURR,RSI_PREV,MA_1,MA_2,STOCHVAL,STOCHSIGN;
//-------------------------------------------------------------------+
RSI_CURR =iRSI(NULL,0,14,PRICE_CLOSE,0);
RSI_PREV =iRSI(NULL,0,14,PRICE_CLOSE,1);
MA_1 =iMA (NULL,0,14,0,MODE_EMA,PRICE_CLOSE,0);
MA_2 =iMA (NULL,0,7,0,MODE_EMA,PRICE_CLOSE,0);
STOCHVAL =iStochastic(NULL,0,10,3,3,MODE_SMA,0,MODE_MAIN,0);
STOCHSIGN=iStochastic(NULL,0,10,3,3,MODE_SMA,0,MODE_SIGNAL,0);

//-------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| Calculate Optimal Lot Size |
//+------------------------------------------------------------------+
double Lot = lot;
double dFreeMargin = AccountFreeMargin()*lot/100;
Lot = NormalizeDouble(dFreeMargin,2);
if (AccountFreeMargin()<(10000*lot))
{
Print("we have no money", AccountFreeMargin());
return(0);
}
//+---------------------------------------------------------------+
//| request to close/open long positions
//+---------------------------------------------------------------+
if(STOCHVAL>STOCHSIGN && Open[0])
{
//---------------------
total=OrdersTotal();
if(total<2)
{
ticket=OrderSend(Symbol(),OP_BUY,lot,Ask,3,Ask-stoploss*Point,Ask+takeprofit*Point,"long position",0,0,Blue);
if(ticket>0)
{
OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES);
Print("BUY order opentime : ", OrderOpenTime());
Print("BUY order opened : ", OrderOpenPrice());
Print("BUY order closed : ",OrderClosePrice());
Print("BUY order AccountProfit: ", AccountProfit());
}
else
Print("Error opening BUY order : ",GetLastError());
}
return(0);
}
//---------------------------------------------------------------------

if(STOCHVAL<STOCHSIGN)
{
//-----------------

for(cnt=0;cnt<total;cnt++)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if(OrderType()<=OP_BUY && // check for opened position
OrderSymbol()==Symbol()) // check for symbol
{
if(OrderType()==OP_BUY) // long position is opened
{
// should it be closed?
OrderClose(OrderTicket(),OrderLots(),Ask,3,Blue); // close position
return(0);
}
//-----------------------
Sleep(1000); //disables the EA for 1 seconds

//-------------
if((STOCHVAL<STOCHSIGN && Open[0]))
{
//---------------------
total=OrdersTotal();
if(total<2)
{
ticket=OrderSend(Symbol(),OP_SELL,lot,Bid,3,Bid+stoploss*Point,Bid-takeprofit*Point,"short position",0,0,Red);
if(ticket>0)
{
OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES);
Print("SELL order opentime : ", OrderOpenTime());
Print("SELL order opened : ", OrderOpenPrice());
Print("SELL order closed : ",OrderClosePrice());
Print("SELL order AccountProfit: ", AccountProfit());
}
else
Print("Error opening SELL order : ",GetLastError());
return(0);
}
//----------------------------

if(STOCHVAL>STOCHSIGN)
{
for(cnt=0;cnt<total;cnt++)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if(OrderType()<=OP_SELL && // check for opened position
OrderSymbol()==Symbol()) // check for symbol
{
if(OrderType()==OP_SELL) // long position is opened
{
// should it be closed?
//-----------------
OrderClose(OrderTicket(),OrderLots(),Bid,3,Red); // close position
return(0);
}
//-----------------------
Sleep(1000); //disables the EA for 1 seconds




//+------------------------------------------------------------------------------------+
//| Modify positions - Stoploss based on Trailing stop |
//+------------------------------------------------------------------------------------+
if(iTrailingStop>0)
{

if(OrderType()==OP_BUY)
{
if(Bid-OrderOpenPrice()>Point*iTrailingStop)
{
if(OrderStopLoss()<Bid-Point*iTrailingStop)
{
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*iTrailingStop,OrderTakeProfit(),0,Green);
}
else
}
if(OrderType()==OP_SELL)
{
if(OrderOpenPrice()-Ask > Point*iTrailingStop)
if(OrderStopLoss() > Ask+Point*iTrailingStop)
{
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*iTrailingStop,OrderTakeProfit(),0,Yellow);
}
}}}}}}}}}}}





hi, i need your help on this ea. it does not open trades and it's backtesting is poor

............chinexex































 
zupnik wrote >>

I have an script to write. I explain, if You send an Email to marperga@net.hr Thanks, Marijan

If you can help fix the ea, it does not place trade, also magic number needed

//+------------------------------------------------------------------+
//|
//| Copyright © 2009, MetaQuotes Software Corp. |
//| https://www.metaquotes.net/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2009, MetaQuotes Software Corp."
#property link "https://www.metaquotes.net/"

//---- input parameters
extern double Lot1=0.1;
extern double Lot2=0.1;
extern string Sym1="EURUSD";
extern string Sym2="USDCHF";
extern string Operation1="buy";
extern string Operation2="buy";
extern double Commission1=0.0;
extern double Commission2=0.0;
extern double Profit=50;
extern double multiply= 1.6;
extern int MaxTrades= 4; // Maximum number of orders to open
extern int Pips= 50; // Distance in Pips from one order to another
extern int StopLoss = 300; // StopLoss
extern int TrailingStop = 15;// Pips to trail the StopLoss
extern bool BuyStopOrders=True;
extern bool UseMM=true;
extern string Bollinger_Symbol = "EURCHF";

int OP1=-1, OP2=-1;

double Ilo1=0, Ilo2=0;
extern double Lots = 0.1;
extern double GridSize = 50;
extern double GridSteps = 2;
extern double TakeProfit = 50;
extern string Data5 = " * * * Money Management";
extern bool AccountIsMicro = false;
extern double ProfitTarget = 50;
extern double Risk = 6;

//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
//----
//init global variables
if (!GlobalVariableCheck("_CanClose")) {
GlobalVariableSet("_CanClose",0);
}
//if (!GlobalVariableCheck("_CanSet")) {
//GlobalVariableSet("_CanSet",0);
//}

//----
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
Ilo1=Lot1; Ilo2=Lot2;
if (UseMM) {
Ilo1=TradeLot(AccountBalance());
Ilo2=TradeLot(AccountBalance());
}


//----
double Commissions=0;


if (Operation1=="buy" || Operation1=="BUY") OP1=OP_BUY;
if (Operation2=="buy" || Operation2=="BUY") OP2=OP_BUY;
if (Operation1=="sell" || Operation1=="SELL") OP1=OP_SELL;
if (Operation2=="sell" || Operation2=="SELL") OP2=OP_SELL;


if (OP1<0 || OP2<0) {
Comment("Wrong operation selected, aborted...");
return;
}


if (GlobalVariableGet("_CanClose")==1 && CntOrd(OP1,0,Sym1)==0 && CntOrd(OP2,0,Sym2)==0) {
GlobalVariableSet("_CanClose",0);
}


if (GlobalVariableGet("_CanClose")==0) {
//Set intitial orders
SetOrders();
}

Comment("Balance=",AccountBalance(),"\n",Sym1," Lot=",Ilo1," ",Sym2," Lot=",Ilo2,"\nFloating profit=",CalcProfit()," Expected profit=",Profit*Ilo1*10);
//Check for profit
Commissions=Commission1*Ilo1+Commission2*Ilo1;

if ( (CalcProfit()-Commissions) >= (Profit*Ilo1*10) ) {
GlobalVariableSet("_CanClose",1);
}

CloseAll();


//----
return(0);
}
//+------------------------------------------------------------------+


double CalcProfit() {
//Calculating profit for opened positions
int cnt;
double _Profit;
_Profit=0;

for(cnt=0; cnt<OrdersTotal(); cnt++)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if (OrderSymbol()==Sym1 || OrderSymbol()==Sym2) {
_Profit=_Profit+OrderProfit();
}
}
return(_Profit);
}

void CloseAll() {
int _total=OrdersTotal(); // number of orders
int _ordertype;// order type
if (_total==0) {return;}
int _ticket; // ticket number
double _priceClose;// price to close orders;
//Closing all opened positions
if (GlobalVariableGet("_CanClose")==1) {

for(int _i=_total-1;_i>=0;_i--)
{
if (OrderSelect(_i,SELECT_BY_POS))
{
_ordertype=OrderType();
_ticket=OrderTicket();
switch(_ordertype)
{
case 0:
// close buy
_priceClose=MarketInfo(OrderSymbol(),MODE_BID);
Print("Close on ",_i," position order with ticket ¹",_ticket);
OrderClose(_ticket,OrderLots(),_priceClose,0,Red);
break;
case 1:
// close sell
_priceClose=MarketInfo(OrderSymbol(),MODE_ASK);
Print("Close on ",_i," position order with ticket ¹",_ticket);
OrderClose(_ticket,OrderLots(),_priceClose,0,Red);
break;
default:
// values from 1 to 5, deleting pending orders
Print("Delete on ",_i," position order with ticket ¹",_ticket);
OrderDelete(_ticket);
break;
}
}
}


}
return;
}

void SetOrders() {
//Setting initial orders
double OpenPrice=0;

if (CntOrd(OP1,0,Sym1)==0) {
if (OP1==OP_BUY) OpenPrice=MarketInfo(Sym1,MODE_ASK);
if (OP1==OP_SELL) OpenPrice=MarketInfo(Sym1,MODE_BID);
OrderSend(Sym1,OP1,Ilo1,OpenPrice,0,0,0,"HedgeTrader",0,0,Red);
//return;
}

if (CntOrd(OP2,0,Sym2)==0) {
if (OP2==OP_BUY) OpenPrice=MarketInfo(Sym2,MODE_ASK);
if (OP2==OP_SELL) OpenPrice=MarketInfo(Sym2,MODE_BID);
OrderSend(Sym2,OP2,Ilo2,OpenPrice,0,0,0,"HedgeTrader",0,0,Green);
//return;
}

}

int CntOrd(int Type, int Magic, string Symb) {
//return number of orders with specific parameters
int _CntOrd;
_CntOrd=0;
for(int i=0;i<OrdersTotal();i++)
{
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);

if (OrderSymbol()==Symb) {
if ( (OrderType()==Type && (OrderMagicNumber()==Magic) || Magic==0)) _CntOrd++;
}
}
return(_CntOrd);
}

double TradeLot(double MyBalance) {
double _Ilo=0;
//AccountEquity()
_Ilo=MathFloor(MyBalance/Delta)/10;
if (_Ilo<0.1) _Ilo=0.1;
return (_Ilo);

}

 

Hello...

Pls i really need your help to develop my forex strategy. It is very profitable and I really need it on EA.

I will be more than grateful if you will oblige me.

Pls my email address is enofe1912@yahoo.com.

send me a mail so i can forward the strategy to you.

below is transaction details from 26th january to date..

thanks..

Details:
Gross Profit: $36.16 Gross Loss: ($18.36) Total Net Profit: $17.80
Profit Factor: 1.97 Expected Payoff: $0.29
Absolute Drawdown: ($7.54) Maximal Drawdown: $1.48(13.54%)

Total Trades: 62 Short Positions (won %): 33 (87.88%) Long Positions (won %): 17 (82.35%)
Profit Trades (% of total): 55 (88.71%) Loss trades (% of total): 7 (11.29%)
Largest profit trade: $10.76 loss trade: ($12.64)
Average profit trade: $0.66 loss trade: ($2.62)
Maximum consecutive wins ($): 23($7.64) consecutive losses ($): 2(($14.14))
Maximal consecutive profit (count): $16.94(5) consecutive loss (count): ($14.14)(2)
Average consecutive wins: 9 consecutive losses: 1
 
hi up there i do sell in my EA but when it did talk profit it dosent open anew order although the new candle is going down i use moving crosses strategy but when it goes up and goes down again it open anew order cousing me to loose many sell candles ? and one more question can i change the value of order ticket my self in the mq4 ? your answer will be deeply appreciated
 
eseq wrote >>

Hi.

I have tried for a long time to make an EA. Could you help me to write a code for EMA crosses, and with every cross buy/sell currency and with the next cross sell/buy. besf regards, eseq@op.pl

hi i need help on how to put EA together please e-mail me polo_4rextrader@hotymail.com

thanks

 

Hello, I have this typical Martingale EA except I want to tweak it! Basically what I want it to do is instead of closing a position when it hits the SL then doubles the lots, keep the positions open and only close after TP is hit. So the pair can move against me, say for example, 5 levels and the positions are left open until pair moves in my direction, hits the TP then closes all position. I hope I'm clear.

 

Hi vriesde1,

thanks for the great free services you are doing here I see lately though.

I asked people to create an EA for me with tft arrow ( a modified version of gann_hilo indicator ) having entries & exits at the very arrows & no opposit order at anytime that is any entry signal close the previous order. The ea works well but during narrow movements it it buy at the top & sell the bottom as it the signals only after 2 candles . Can you modify it so that it can take orders at the very arrow point without any repainting of those arrows?

Thanks in advance,my email address

fontu

Reason: