[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate. Non posso andare da nessuna parte senza di te. - pagina 588

 

Ditemi dove trovare programmatori che scrivono EA!

 

Bisogna anche controllare il tempo di apertura della barra:

datetime bartime;

int init()
{
   ...
   bartime=0;
   ...
}

int start
{
   ...
   if(bartime<Time[0]) //если пришел новый бар
   {
       //делаем то что нужно
   }
   ...
   bartime=Time[0]; //обязательно запомнили обсчитанный бар
}

 
supernovik:

Ditemi dove trovare programmatori che scrivono EA!

https://www.mql5.com/ru/forum/116708
 
alsu:
...

3. riempite l'array for(i=1;i<=PerB;i++) MyATR[i-1]=(High[i]-Low[i])/Low[i]; l'indice i inizia da 1 poiché abbiamo bisogno solo di barre chiuse

...

controlla, forse è solo un errore

Ok grazie, lo proverò domattina (la mia testa non è buona in questo momento), ma in questo caso (i=1) potrò fare riferimento al prezzo Open [0] della barra corrente?

P. S. Ok, penso di aver capito il succo - lo proverò nel pomeriggio.

 
Craft:
OK, proverò, ma in questo caso (i=1) potrò fare riferimento al prezzo di apertura della barra corrente Open[0]&
Certo che puoi, niente può impedirlo. In generale, in MQL bisogna trattare con molta attenzione gli indici degli array, e controllarne costantemente la correttezza, perché data la mancanza di strumenti di debug, la ricerca di un possibile errore può durare settimane. Inoltre, spesso porta a "pseudo-grails" - programmi che inavvertitamente sbirciano 1 barra nel futuro e quindi danno risultati eccezionali durante i test, ma falliscono in tempo reale.
 

Non ha resistito fino al mattino. La situazione è migliorata un po', ma non è stato possibile evitare i posizionamenti dei fiori d'ordine. Come posso impostare un singolo ordine alla condizione richiesta? Lei ha detto: No, non funzionerebbe. Solo attraverso l'analisi della cronologia degli ordini - come possiamo farlo o cos'altro è adatto?

 
alsu:

Bisogna anche controllare il tempo di apertura della barra:


Alsu, si riferiva al mio esempio?
 
Per favore consigliatemi, sto lottando con la scrittura di un EA. Ho bisogno di aprire un nuovo ordine quando quello vecchio viene chiuso da tp o sl.



Sarei felice di aiutare!
 
Top2n:
Per favore ditemi, sto cercando di scrivere un EA. Dovrei aprire un nuovo ordine quando chiudo quello vecchio per tp o sl.
Lo apprezzerei molto!

Dovete inserire (copiare) separatamente nel codice (fuori dallo Start) f-i che indicano come è stata chiusa l'ultima posizione.

Questi sono disponibili su: https: //www.mql5.com/ru/forum/107476

pg. 21

La funzione isCloseLastPosByTake().
Questa funzione restituisce una bandiera per chiudere l'ultima posizione di Take. La bandiera è sollevata - True - TakeProfit è scattato. Flag abbassato - Falso - la posizione è stata chiusa per un altro motivo

La funzione isCloseLastPosByStop(). Questa funzione restituisce una bandiera per chiudere l'ultima posizione per stop. La bandiera è alzata - True - StopLoss attivato. Flag abbassato - Falso - la posizione è stata chiusa per altri motivi

-------------------

Molto probabilmente, questo richiederà anche un tipo f:

Funzione GetTypeLastClosePos(). Pagina 20

Questa funzione restituisce il tipo dell'ultima posizione chiusa o -1

=================================

Quindi, nel caso più semplice, il - Le condizioni di apertura sarebbero :

//--------------Для бай-сделок-------------

if ( isCloseLastPosByTake(NULL, OP_BUY, -1)==true || isCloseLastPosByStop(NULL, OP_BUY, -1)==true) {

//se l'ultima posizione di acquisto ha chiuso al take o allo stop, una nuova posizione di acquisto sarà aperta

/------------

Lo stesso per le compravendite ....

 

Per favore, ditemi come i maghi esperti distinguono un EA da un indicatore e uno script (senza "sezionarlo" nell'editor). Ho tutto mescolato nelle mie cartelle. La cartella EA è piena di indicatori non funzionanti e la cartella indicatori è piena di script non funzionanti. Quindi (per sicurezza) copio il nuovo indicatore EA in entrambe le cartelle.

Penso che questo sia un grande errore fatto dai creatori della lingua. L'estensione del file dovrebbe essere diversa.

Cosa hanno da dire gli aksakal?