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

 
niktron:

Ciao!

Puoi dirmi come creare una condizione -

se c'è abbastanza margine libero per aprire una posizione?

(Così l'errore 131 non appare)...Grazie!

Dovete controllare il volume di posizione ammissibile, non il margine. Il 131° errore indica un lotto errato
 

Bisogna trovare il valore massimo dell'indicatore su 15 periodi. La ricerca nelle barre non è un problema, ma in un indicatore?

Suppongo che per questo avete bisogno di fare un ciclo di controllo, dichiarare un array e trovare questo valore in esso. Il ciclo è fatto, ma non so come dichiarare l'array.

E poi usare la funzione ArrayMaximum per trovare il valore? Potete dirmi come realizzare questo compito?

for(int i=0;i<=15;i++)
{
double indicator[];
ArrayInitialize(indicator,0);
double MA_2_t=iMA(NULL,0,21,0,MODE_EMA,PRICE_CLOSE,i); 
}
 
niktron:

Ciao!

Puoi dirmi come creare una condizione -

se c'è abbastanza margine libero per aprire una posizione?

(Così l'errore 131 non appare)...Grazie!


https://docs.mql4.com/ru/account/accountfreemargincheck
 
Forexman77:

Bisogna trovare il valore massimo dell'indicatore su 15 periodi. La ricerca nelle barre non è un problema, ma in un indicatore?

Suppongo che per questo avete bisogno di fare un ciclo di controllo, dichiarare un array e trovare questo valore in esso. Il ciclo è fatto, ma non so come dichiarare l'array.

E poi, userò la funzione ArrayMaximum per trovare il valore. Per favore, consigliate come completare questo compito.

Avete bisogno non solo di un array, ma di un buffer di indicatori. Nel ciclo principale, riempite il buffer con i valori dell'indicatore e usate ArrayMaximum() per questo buffer.
 
Integer:
Non avete bisogno solo di un array, ma di un buffer di indicatori. Nel ciclo principale, riempite il buffer con i valori dell'indicatore e usate ArrayMaximum() per questo buffer.

La ricerca è necessaria per l'Expert Advisor. Il buffer dell'indicatore funzionerà con esso?
 
Forexman77:
La ricerca è necessaria per l'Expert Advisor. Un buffer indicatore funzionerà con esso?


Non c'è un buffer di indicatori nell'EA.

Se nell'EA, ci sono due opzioni:

1. Fai tutto nell'indicatore, l'EA chiama l'indicatore e ottiene un valore pronto.

2. Fate un ciclo nell'Expert Advisor. Ma in questo caso, l'array non è affatto necessario.

val=0;

for(i=1;i<=15;i++) {

    ind=iMA(...,i);

   if(ind>val) val=ind;

}
 
Integer:


L'Expert Advisor non ha un buffer di indicatori.

Se nell'EA, ci sono due opzioni:

1. Fai tutto nell'indicatore, l'EA chiama l'indicatore e ottiene un valore pronto.

2. Fate un ciclo nell'Expert Advisor. Ma in questo caso, l'array non è affatto necessario.

Sarà necessario un array. Per trovare il minimo. Il minimo non sarà trovato in questo modo.
 
Forexman77:
Sarà necessario un array. Per trovare il minimo. Il minimo non sarà trovato in questo modo.



Quindi lo sa esattamente e ne è assolutamente sicuro? Non c'è bisogno di confutare la sua opinione? Preferiresti continuare a farlo?

 
niktron:

Ciao!

Puoi dirmi come creare una condizione -

se c'è abbastanza margine libero per aprire una posizione?

(Così l'errore 131 non appare)...Grazie!

forse il lotto è sbagliato se 131?
 
Integer:



Quindi lei lo sa per certo e ne è assolutamente certo? Non c'è bisogno di confutare la sua opinione? Preferireste attenervi ad esso?

Certo che sì! Bene, come si applica questo costrutto per trovare il minimo? Non riesco a capire come funziona)
E voglio imparare a dichiarare un array. Ho provato in questo modo:

double massiv[];
int start()
  {
//----
for(int i=0;i<=33;i++)
{
double ind=iMA(NULL,0,21,0,MODE_EMA,PRICE_CLOSE,i); 
massiv[33]=ind;
double minValueidx=ArrayMinimum(massiv,33,0);
Alert("minValueidx=",minValueidx);
}
//----
   return(0);
  }
Esce -1.
Motivazione: