Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 6. - pagina 992

 
001:

Il codice renderà l'EA "silenziosa" in certi momenti.

incolla questo codice nel tuo EA:

extern HourStart=0; // L'ora di inizio della sessione da saltare

///

extern HourEnd=0; // Fine della sessione che deve essere saltata
//+------------------------------------------------------------------+
int start()
{
se(Ora()>=Orainizio)
{
{ if(Hour()<=HourEnd)
{
ritorno(0);

}

/Incolla questo codice (sopra) davanti al tuo EA.

}
// il tuo corpo EA
}
//+------------------------------------------------------------------+

Grazie mille!

Chiuderebbe anche gli ordini...

 
Vinin:
Cosa volevi ottenere?
Generalmente, il risultato è un indicatore che mostra, cumulativamente, il numero di salti e di bassi per tempo. cioè per esempio, per l'anno 20 salti alle 03:00, 30 bassi alle 05:00 Qualcosa come un profilo di mercato, ma con picchi per tempo. L'indicatore è in una finestra separata.
 
SAnd7:

Grazie mille!

Vorrei che anche i mandati chiudessero...

Se per tempo, dovremmo trovare una funzione

OrderClose()

e metterlo davanti.

if(Hour()>=HourClose)

Linea di fondo:

extern int    HourClose=0;          // Вставить там где вставили extern int    HourStart=0;  Это час закрытия

//+------------------------------------------------------------------+



//+------------------------------------------------------------------+
if(Hour()>=HourClose) OrderClose(...............);// Найти функцию OrderClose и поставить передней if(Hour()>=HourClose)


 

Grazie!!!

Credo di aver capito.

 
SAnd7:

Grazie!!!

Credo di aver capito.

Possiamo ancora giocare con i minuti.

  Minute()
 
SAnd7:

Ciao!

Ho trovato un buon EA (dal tester) e l'ho eseguito sulla demo e sta perdendo soldi nella sessione giapponese.

Se conoscete il codice, come farlo funzionare ad una certa ora e ad un certo momento per chiudere tutti i miei ordini e poi uscire.

Anche un posto dove inserire questo codice.

Grazie in anticipo!

Crea 2 variabili all'inizio:

extern int    Start    = 2,
              End      = 8;
//-----------------------------------
  int hour = TimeHour(TimeCurrent()); // в начале основной части советника

E poi nelle condizioni di apertura e di chiusura nel caso ci sia ancora una posizione!

     if(hour >= Start && hour < End) // можно открывать
//-----------------------------------------------------
     if(hour < Start || hour >= End) // закрыть, если есть
 

Ciao!

Attualmente la funzione è legata al grafico corrente (double High[]). Come posso modificare la funzione in modo da ottenere prezzi di diversi timeframe High_Lim(PERIOD_H4,10,1) High_Lim(PERIOD_M15,10,1)?

double High_Lim(ENUM_TIMEFRAMES GrafPeriod, int Bari_atp, int Bari_shift)
{
double HighLim=0; 
       HighLim = (High[iHighest(NULL,GrafPeriod,MODE_HIGH,Bari_atp,Bari_shift)]);
          
return(HighLim);
}

void OnTick()
  {
//---
Print("::::::::::::::::::::::::: High_Lim(PERIOD_M15,10,1) = ", High_Lim(PERIOD_M15,10,1));  
Print("::::::::::::::::::::::::: High_Lim(PERIOD_H4,10,1) = ", High_Lim(PERIOD_H4,10,1));     
  }
 
abeiks:

Ciao!

Attualmente la funzione è legata al grafico corrente (double High[]). Come posso modificare la funzione in modo da ottenere prezzi di diversi timeframe High_Lim(PERIOD_H4,10,1) High_Lim(PERIOD_M15,10,1)?

Per trovare il valore del prezzo più alto di un altro simbolo, usa iHighest. Lì al posto di 1 argomento scrivere il nome del simbolo, ad esempio. "EURUSD". Nella tua funzione hai scritto NULL, cioè cerca il grafico corrente.
 
paladin80:
Per trovare il valore del prezzo più alto di un altro simbolo, usa iHighest. Lì, scrivete il nome del simbolo al posto di 1 argomento, ad esempio "EURUSD". Nella tua funzione hai scritto NULL, cioè cerca il grafico corrente.
"...ottenere prezzi di diversi orizzonti temporali..."
 
abeiks:
"...ottenere prezzi di diversi orizzonti temporali..."

In iHighest il 2° parametro è il timeframe.

   double val;
//--- расчет максимального значения цены на 20 последовательных барах
//--- с индекса 4 по индекс 23 включительно на графике  EURUSD на М30 
   int val_index=iHighest("EURUSD",PERIOD_M30,MODE_HIGH,20,4);
   if(val_index!=-1) val=High[val_index];
   else PrintFormat("Ошибка вызова iHighest. Код ошибки=%d",GetLastError());
Motivazione: