Basso e alto - pagina 2

 

Quanto va lontano i? Cos'è il numero Bars-1?

 
if(Hour() == 17 && gethighlows == true)
{
gethighlows = false;
HighValue=High[iHighest(NULL,15,MODE_HIGH,8,1)]; // 8 barre M15 tra 15.00-17.00
LowValue=Low[iLowest(NULL,15,MODE_LOW,8,1)]; // 8 barre M15 tra 15.00-17.00
}
 
fxcourt:
if(Hour() == 17 && gethighlows == true)
{
gethighlows = false;
HighValue=High[iHighest(NULL,15,MODE_HIGH,8,1)]; // 8 barre M15 tra 15.00-17.00
LowValue=Low[iLowest(NULL,15,MODE_LOW,8,1)]; // 8 barre M15 tra 15.00-17.00
}

Non funziona! Non so davvero cosa fare...

 
01005379:

[...]

Non funziona! Non so davvero cosa fare...

In che modo non funziona? I valori sono sbagliati? Non vengono calcolati affatto?

 
jjc:

In che modo non funziona? I valori sono sbagliati? Non vengono calcolati affatto?

Non riesco a capirlo. Ho ordine di aprire buy quando il prezzo è più grande di HighValue e viceversa per sell.

Come posso scrivere questi valori sul monitor? Con Print("High value: ",HighValue);

Penso che sia l'unico modo per trovare quali sono questi valori, ma non sono alti/bassi tra 15.00 e 17.00.

 
stai usando un grafico m15?
 

Sì. Penso che la cosa migliore sia mettere il codice qui e poi forse qualcuno troverà una soluzione.


if(Hour() == 17 && gethighlows == true)
{
gethighlows = false;
TopRange=High[iHighest(NULL,15,MODE_HIGH,8,1)]; // 8 barre M15 tra 15.00-17.00
LowRange=Low[iLowest(NULL,15,MODE_LOW,8,1)]; // 8 barre M15 tra 15.00-17.00
}

//-----

if (Hour() ==0 && (Minute()==0 && (Seconds()==1))
{
TopRange=0;
LowRange=0;
bought=false;
venduto=falso;
sessionfound=false;
}
//-----
bool TradeDayOK=(DayOfWeek()>=1) && (DayOfWeek()<=5);
if ((DayOfWeek()==1) && (Trade_on_Monday==true)) TradeDayOK=true;

//-----
total=OrdersTotal();
se(totale<1)
{
if(ContoFreeMargin()<(1000*Lotti))
{
Print("Non abbiamo soldi. Margine libero = ", ContoFreeMargin());
return(0);
}
if(newbar==Time[0])return(0);
altrimenti newbar=Time[0];

if(TradeDayOK)
{
if(sessionfound && ( (Hour()>=17) && (Minute()>15) && Hour()<=23)
{
if ((bought==false) && (Low[1] > (TopRange+Point*3))
{
OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Ask-(StopLoss*Point),Ask+(TakeProfit*Point),0,0,Blue);
comprato=vero;
se(biglietto>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("Ordine BUY aperto : ",OrderOpenPrice());
}
altrimenti Print("Errore nell'apertura dell'ordine BUY: ",GetLastError());
return(0);
}
if ((sold==false) && (High[1] < (LowRange-Point*3) ))
{
OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid+(StopLoss*Point),Bid-(TakeProfit*Point),0,0,Red);
venduto=vero;
se(biglietto>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("Ordine SELL aperto : ",OrderOpenPrice());
}
altrimenti Print("Errore nell'apertura dell'ordine SELL: ",GetLastError());
return(0);
}
return(0);
}
return(0);
}
}

 
quindi cosa succede quando si esegue l'ea
 
Apre posizioni di acquisto e vendita ma non ai livelli giusti.
 
01005379:

Sì. Penso che la cosa migliore sia mettere il codice qui e poi forse qualcuno troverà una soluzione.


if(Hour() == 17 && gethighlows == true)
{
gethighlows = false;
TopRange=High[iHighest(NULL,15,MODE_HIGH,8,1)]; // 8 barre M15 tra 15.00-17.00
LowRange=Low[iLowest(NULL,15,MODE_LOW,8,1)]; // 8 barre M15 tra 15.00-17.00
}

//-----

if (Hour() ==0 && (Minute()==0 && (Seconds()==1))
{
TopRange=0;
LowRange=0;
bought=false;
venduto=falso;
sessionfound=false;
}
//-----
bool TradeDayOK=(DayOfWeek()>=1) && (DayOfWeek()<=5);
if ((DayOfWeek()==1) && (Trade_on_Monday==true)) TradeDayOK=true;

//-----
total=OrdersTotal();
se(totale<1)
{
if(ContoFreeMargin()<(1000*Lotti))
{
Print("Non abbiamo soldi. Margine libero = ", ContoFreeMargin());
return(0);
}
if(newbar==Time[0])return(0);
altrimenti newbar=Time[0];

if(TradeDayOK)
{
if(sessionfound && ( (Hour()>=17) && (Minute()>15) && Hour()<=23)
{
if ((bought==false) && Ask >= TopRange)

{
OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Ask-(StopLoss*Point),Ask+(TakeProfit*Point),0,0,Blue);
comprato=vero;
se(biglietto>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("Ordine BUY aperto : ",OrderOpenPrice());
}
altrimenti Print("Errore nell'apertura dell'ordine BUY: ",GetLastError());
return(0);
}
if ((sold==false) && Bid <= LowRange)
{
OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid+(StopLoss*Point),Bid-(TakeProfit*Point),0,0,Red);
venduto=vero;
se(biglietto>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("Ordine SELL aperto : ",OrderOpenPrice());
}
altrimenti Print("Errore nell'apertura dell'ordine SELL: ",GetLastError());
return(0);
}
return(0);
}
return(0);
}
}