Caratteristiche utili da KimIV - pagina 106

 
vvg:


Volevo usare questa funzione ma ho incontrato la seguente situazione: quando appare un nuovo estremo, il livello di prezzo non cambia immediatamente ma rimane lo stesso per qualche tempo. Mi disturba durante i test. Si

prega di fornire prove materiali: simbolo, data, ora, prezzo. Vorrei ripetere la vostra situazione.
 
KimIV:
vvg:


Volevo usare questa funzione, ma ho affrontato la seguente situazione: quando appare un nuovo estremo, il livello di prezzo non cambia immediatamente, ma rimane lo stesso per un po' di tempo.

Ostacola i test. Si

prega di fornire prove materiali: simbolo, data, ora, prezzo. Vorrei ripetere la vostra situazione.
Buonasera, ho allegato un codice al mio EA che gli permette di fare trading in un certo periodo di tempo, ma l'EA continua a fare trading, anche se non ha avuto nessun errore durante la compilazione! E non posso farlo commerciare sulla volatilità del mercato (per aprire un affare se la volatilità è superiore a 50)! Potresti per favore mostrarmi come si fa, perché sono già esausta! Grazie in anticipo!!!!
File:
dmx.mq4  3 kb
 

Perché hai messo la tua funzione nelle variabili globali?

// Impedire a Expert Advisor di scambiare C e OP
if ( (Hour()==20 && Minute()>=59) && (Hour()==08 && Minute()>=59) )
ritorno;

Deve essere messo all'inizio! Probabilmente, quando il ciclo va dall'inizio, vedrà la condizione sbagliata e uscirà senza aprire posizioni. Questo dovrebbe funzionare per voi.


File:
dmx_1.mq4  3 kb
 
LLIAMAH:

Perché hai messo la tua funzione nelle variabili globali?

// Impedire a Expert Advisor di scambiare C e OP
if ( (Hour()==20 && Minute()>=59) && (Hour()==08 && Minute()>=59) )
ritorno;

Deve essere messo all'inizio! Probabilmente, quando il ciclo va dall'inizio, vedrà la condizione sbagliata e uscirà senza aprire posizioni. Questo dovrebbe aiutarvi.


Grazie, ma purtroppo nessun cambiamento
 
dimas7469:
Grazie, ma purtroppo nessun cambiamento

if ( (Hour()==20 && Minute()>=59) && (Hour()==08 && Minute()>=59) ) 
return;

Capisco...

if (Hour()>=21 || Hour()<=9) 
return;

È così che dovrebbe essere.
Non c'è bisogno di complicare ciò che può essere semplificato...

 
todem:
a cosa serve l'apersand alla fine di "double&
Questo indica che un array dichiarato nelle variabili EA viene passato alla funzione per riferimento. Dopo il ritorno dalla funzione, questo array conterrà i valori che questa funzione ha scritto in esso.
 
Buon pomeriggio. Caro KimIV. Il tuo e-News-Lucky$ EA apre gli ordini di stop. Puoi rifarlo per aprire Limiti? Non sono un esperto in programmazione di computer :)), quindi chiedo il vostro aiuto. Ne sarei felice.
File:
 

Come fare:

Se la Condizione1 è soddisfatta, allora non controllarla di nuovo, e controllare la Condizione2 nei tick successivi e così via?

static bool Val_max, Cl_dn, Val_min; //static or global
                                        |
//+------------------------------------------------------------------+
int start()
  {
   int j;
   double bid;                                         
   bid=Bid;                                    // Текущая цена продажи
   string
   Symb=Symbol();                               // Название фин.инстр.
double Value_max=1.0000;
double Value_min=0.9980;
double Open_1=Open[1];
double Close_1=Close[1];
//----

//--------------------------------------------------------------- 4 --

double Val=iCustom(NULL, 0, "Название Польз. Индикатора",0,0);   // Присваиваем пер. Val значение польз. индикатора
if (Условие1)
{
 Val_max=true;                  // 
 Alert("Значение инд. >= Value_max (исп. 1-е усл.)");
}
if (Условие2)
{
 Cl_dn=true;
 Alert("1 бар закрылся падением (исп. 2-е усл.)");
}
if (Условие3 && Cl_dn==true)
{
 Val_min=true;
 Alert("Значение инд. <= Value_min (исп. 3-е усл.)");
}
if (Val_max==true && Cl_dn==true && Val_min==true)
  {
   for (j = 0; j < OrdersTotal(); j++)
    {
     OrderSelect(j, SELECT_BY_POS, MODE_TRADES);
     if (OrderSymbol() == Symbol())
      {
      if (OrderType() == OP_SELL) return(0);
      }
    }
   
   OrderSend(Symbol(),OP_SELL,0.1,NormalizeDouble(Bid,Digits),2,Bid+400*Point,Bid-400*Point,"",3,Red);  // Открытие SELL
   Val_max=false; Cl_dn=false; Val_min=false;
  }

//----
   return(0);
  }
 
Puoi dirmi se c'è uno script nel tema che chiude tutti gli ordini aperti quando viene raggiunto il profitto totale di n pips?
 

Ciao Igor. Sto usando la vostra funzione IniFiles.mqh, è perfetta per i miei scopi. Grazie mille.

Avete (pronto e disposto a comprare)))) lo stesso ma per lavorare con excel? Provato diverse opzioni come questa https://www.mql5.com/ru/code. Ma la lettura da un file di cella è accompagnata da un'apertura esplicita del file sul desktop ad ogni tick. È possibile leggere programmaticamente i dati delle celle come in IniFiles? Ne ho bisogno per leggere i dati da un Quick DDE.

Motivazione: