int
start()
{
int i;
bool BuySignal=false;
bool SellSignal=false;
double train_output[1];
/* Is trade allowed? */
if(!trade_allowed())
{
return(-1);
}
/* Prepare and run neural networks */
ann_prepare_input();
run_anns();
/* Calulate last and previous MACD values.
* Lag one bar as current bar is building up
*/
double MacdLast=iMACD(NULL,0,FastMA,SlowMA,SignalMA,PRICE_CLOSE,
MODE_MAIN,1);
double MacdPrev=iMACD(NULL,0,FastMA,SlowMA,SignalMA,PRICE_CLOSE,
MODE_MAIN,2);
double SignalLast=iMACD(NULL,0,FastMA,SlowMA,SignalMA,PRICE_CLOSE,
MODE_SIGNAL,
1);
double SignalPrev=iMACD(NULL,0,FastMA,SlowMA,SignalMA,PRICE_CLOSE,
MODE_SIGNAL,
2);
/* BUY signal */
if(MacdLast>SignalLast && MacdPrevSignalPrev)
{
SellSignal=true;
}
/* No Long position */
if(LongTicket==-1)
{
/* BUY signal */
if(BuySignal)
{
/* If NeuroFilter is set use ann wise to decide :) */
if(!NeuroFilter || ann_wise_long()>Delta)
{
LongTicket=
OrderSend(Symbol(),OP_BUY,Lots,Ask,3,
Bid-StopLoss*Point,
Ask+TakeProfit*Point,
NAME+"-"+"L ",MagicNumber,0,Blue);
}
/* Remember network input */
for(i=0;i0)
{
OrderClose(LongTicket,Lots,Bid,3);
}
}
if(OrderCloseTime()!=0)
{
// Order is closed
LongTicket=-1;
if(OrderProfit()>=0)
{
train_output[0]=1;
} else {
train_output[0]=-1;
}
for(i=0;iDelta)
{
ShortTicket=
OrderSend(Symbol(),OP_SELL,Lots,Bid,3,
Ask+StopLoss*Point,
Bid-TakeProfit*Point,NAME+"-"+"S ",
MagicNumber,0,Red);
}
/* Remember network input */
for(i=0;i0)
{
OrderClose(LongTicket,Lots,Bid,3);
}
}
if(OrderCloseTime()!=0)
{
// Order is closed
ShortTicket=-1;
if(OrderProfit()>=0)
{
train_output[0]=1;
} else {
train_output[0]=-1;
}
for(i=1;i