OK, i inserted my code , i hope it will help:
//+------------------EA1.mq4------------------------------------------------+
#property copyright "Ferman"
#property link "http://www.metaquotes.net"
#include <stdlib.mqh>
int ticket=0;
extern double Lots=0.1;
extern int Slippage=2;
extern bool Skip = false;
//+------------------------------------------------------------------+
int init()
{
Print ("--- Init happened ---");
return(0);
}
//+------------------------------------------------------------------+
int deinit()
{
Print("--- DE-Init happened --- ");
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
double Stoc=0;
double Stoc_pre_1_bar=0;
double Stoc_pre_2_bar=0;
int gle=0;
Stoc=iStochastic(NULL,0,8,5,3,MODE_SMA,1,MODE_MAIN,0);
Stoc_pre_1_bar=iStochastic(NULL,0,8,5,3,MODE_SMA,1,MODE_MAIN,1);
Stoc_pre_2_bar=iStochastic(NULL,0,8,5,3,MODE_SMA,1,MODE_MAIN,2);
Print("-----------",TimeToStr(iTime(NULL,PERIOD_H1,0),TIME_DATE|TIME_SECONDS),"-------------");
Print("stoc = ", Stoc);
Print("Stoc_pre_1_bar = ", Stoc_pre_1_bar);
Print(OrdersTotal());
if (OrdersTotal() < 1)
{
//LONG TREN?
if (Stoc >= 30 && Stoc < 35 && Stoc_pre_1_bar < Stoc ) // GO LONG !
{
if (!Skip)// Are we in long trend already ?, yes - lets skip it and wait for the next break
{
ticket = OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,0,0,NULL,0,White);
gle=GetLastError();
if(gle==0)
Print("BUY Ask=",Ask, " OrderTicket = ",ticket);
else
Print("BUY-ERROR! Ask=",Ask," Stoc=",Stoc," gle=",gle);
}
Skip = false; //wait for the next break
return(0);
}
return(0);
}//if
else // OredersTotal > 1 - Manage Open Orders
{
//Take Profit or stop lost
if ((Stoc >= 90 ) || Stoc <= 10 )
{
Print("need to close orderticket: ",ticket);
if (OrderClose(ticket,Lots,Ask,5,Red))
Print("Close Ask=",Ask);
else
Print ("Close -----ERROR----- Ask=",Ask," Stoc=",Stoc," error desc: ",ErrorDescription(GetLastError()));
return(0);
}
}
return(0);
}
//+------------------------------------------------------------------+
my problems are:
1) when starting my EA in backtesting mode (H1, EUR/USD, open price only), sometimes i see that i have already open orders (i am printing the OrdersTotal() in the start() func.)
2) i see sometimes that the program not starting in the begining ( i see prints that comes from the middle of the program, its like skipping ome lines in the start() ...
3) in the results i see orders, and in the journal we see zero orders (OrdersTotal()=0) all the period of testing ...
4) the main() func. dont start every 1 hour, why is that ? (we can see the prints)
i inserts the beginnings of the results :
2005.11.14 14:10:20 2005.11.04 04:00 EA1 EURUSD,H1: 0 2005.11.14 14:10:20 2005.11.04 04:00 EA1 EURUSD,H1: Stoc_pre_1_bar = 26.4706 2005.11.14 14:10:19 2005.09.22 08:00 EA1 EURUSD,H1: Stoc_pre_1_bar = 13.3333 2005.11.14 14:10:19 2005.09.22 08:00 EA1 EURUSD,H1: stoc = 20.098 2005.11.14 14:10:19 2005.09.22 08:00 EA1 EURUSD,H1: -----------2005.09.22 08:00:00------------- 2005.11.14 14:10:19 2005.09.22 07:00 EA1 EURUSD,H1: 0 2005.11.14 14:10:19 2005.09.22 07:00 EA1 EURUSD,H1: Stoc_pre_1_bar = 3.2258 2005.11.14 14:10:19 2005.09.22 07:00 EA1 EURUSD,H1: stoc = 3.0612 2005.11.14 14:10:19 2005.09.22 07:00 EA1 EURUSD,H1: -----------2005.09.22 07:00:00------------- [b] we jump over many days !!! [/b] 2005.11.14 14:10:19 2005.09.22 06:00 EA1 EURUSD,H1: 0 2005.11.14 14:10:18 2005.08.08 08:00 EA1 EURUSD,H1: stoc = 3.5088 2005.11.14 14:10:18 2005.08.08 08:00 EA1 EURUSD,H1: -----------2005.08.08 08:00:00------------- 2005.11.14 14:10:18 2005.08.08 07:00 EA1 EURUSD,H1: 0 [b] zero orders all the testing time [/b] 2005.11.14 14:10:18 2005.08.08 07:00 EA1 EURUSD,H1: Stoc_pre_1_bar = 12.3457 2005.11.14 14:10:18 2005.08.08 07:00 EA1 EURUSD,H1: stoc = 14.9254 2005.11.14 14:10:18 2005.08.08 07:00 EA1 EURUSD,H1: -----------2005.08.08 07:00:00------------- 2005.11.14 14:10:18 2005.08.08 06:00 EA1 EURUSD,H1: 0 2005.11.14 14:10:18 2005.08.08 06:00 EA1 EURUSD,H1: Stoc_pre_1_bar = 16.0494 [b]<-- here we see skiping over some code lines [/b]
i hope we have all the details for understanding my problems, thank you guys you are doing a great job !
Ferman
- Free trading apps
- Over 8,000 signals for copying
- Economic news for exploring financial markets
You agree to website policy and terms of use
I have a very odd problem:
sometimes after starting my EA again (in Backtesting mode) i see that i have already open trades !
OrdersTotal() return 1 open trade
and it looks like the EA in skipping some code lines ...
what can be my problem ?
Thanks,
Avi