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

 
Crosswert:


Ha ha... Ecco una bugia...

Il problema si è rivelato essere nella funzione OpenOrders(). Ho completamente dimenticato di rimuovere il controllo dell'apertura dell'ordine su una rottura di una candela (barra):

if (Volume[0] > 1) return;

Quindi, su quale TF l'Expert Advisor stava testando, stava aprendo ordini su quei minuti...

Stupido in generale, su un duro...

Grazie...

Succede)))) Felice di essere stato d'aiuto)))
 
Crosswert:


if (Volume[0] > 1) return;


Non usate questo tipo di controllo per rilevare l'apertura di una nuova barra, non funzionerà bene nel conto, solo nel tester. Dovete controllare o in base al tempo della barra o in base al numero di barre sul grafico

 
Crosswert:


Ha ha... Ecco una bugia...

Il problema si è rivelato essere nella funzione OpenOrders(). Ho completamente dimenticato di rimuovere il controllo dell'apertura dell'ordine su una rottura di una candela (barra):

if (Volume[0] > 1) return;

Quindi, su quale TF l'Expert Advisor stava testando, stava aprendo ordini su quei minuti...

Stupido in generale, su un duro...

Grazie...

Meglio così(https://www.mql5.com/ru/forum/138609/page482):
bool CheckOpenM15() // Функция возвращает истину при появлении нового бара на М15 (Использовать только в советние)
{
   static int PrevTime=0;
   if (PrevTime==iTime(NULL, PERIOD_M15,0)) return(false);
   PrevTime=iTime(NULL, PERIOD_M15,0);
   return(true);
}
 
Meglio ancora, passate il nome del TF desiderato alla funzione
 
artmedia70:
Meglio ancora, passate il nome del TF desiderato nella funzione

Questo è solo un esempio.
 


Sai, con / PrevTime / ho provato qualcosa una volta, ma non ha mai funzionato. Credo di non essere riuscito a mettere il codice nel posto giusto.

Con / if (Volume[0] > 1) return; / tutto è molto più semplice. Qui, come credo, tutto funziona per il TF selezionato. Non so se funziona su una demo, ma non ho notato errori, bug e altri dettagli quando si aprono gli ordini.

Ma non ho usato il controllo dell'apertura dell'ordine su una nuova barra per molto tempo. Siamo riusciti a costruire la funzione di controllo delle posizioni aperte. Insieme agli ordini di apertura in un dato momento, non abbiamo bisogno del controllo delle barre in quanto tale.

Il codice è semplicemente vecchio. A quanto pare, ho dimenticato le limitazioni e l'ho inserito senza mezzi termini, continuando ad usarlo...

 

Potete dirmi come ottenere il valore del prezzo dei livelli di Fibonacci?

Secondo la condizione, una volta che il prezzo ha attraversato i livelli di Fibonacci specificati, viene aperto un trade di acquisto o di vendita.

Un oggetto Fibonacci è disegnato da un Expert Advisor utilizzando la funzione di Kim: https://www.mql5.com/ru/forum/107476/page107#606564

Si disegna senza problemi. Ma allora come facciamo a sapere il valore del prezzo del livello specificato?

Questa funzione non sembra funzionare:

OBJPROP_FIRSTLEVEL+n 210+n int Ottiene/imposta il valore del livello dell'oggetto Fibonacci con indicen. L'indice n può essere da 0 a (numero di livelli -1), ma non può superare 31


È possibile? Oppure, dobbiamo calcolare i prezzi per ogni livello separatamente partendo da OBJPROP_PRICE1 e OBJPROP_PRICE2?

Questa è una sciocchezza. Sono stato sveglio metà della notte a scervellarmi... Naturalmente, la notte non è probabilmente il momento migliore per cercare soluzioni.

Aiuto per favore, brava gente!

 
Lazarechek:

Potete dirmi per favore come ottenere il valore del prezzo dei livelli di Fibonacci?

Secondo la condizione, una volta che il prezzo ha attraversato i livelli di Fibonacci specificati, viene aperto un trade di acquisto o di vendita.

Un oggetto Fibonacci è disegnato da un Expert Advisor utilizzando la funzione di Kim: https://www.mql5.com/ru/forum/107476/page107#606564

Si disegna senza problemi. Ma allora come facciamo a sapere il valore del prezzo del livello specificato?

Questa funzione non sembra essere adatta:

OBJPROP_FIRSTLEVEL+n 210+n int Ottiene/imposta il valore del livello dell'oggetto Fibonacci con indicen. L'indice n può essere da 0 a (numero di livelli -1), ma non può superare 31


È possibile? Oppure, dobbiamo calcolare i prezzi per ogni livello separatamente partendo da OBJPROP_PRICE1 e OBJPROP_PRICE2?

Questa è una sciocchezza. Sono stato sveglio metà della notte a scervellarmi... Naturalmente, la notte non è probabilmente il momento migliore per cercare soluzioni.

Aiuto, brava gente!

C'era già una domanda simile:

Voglio ottenere il prezzo a un livello Fibo del 23,6%
double flevel236 = ObjectGetDouble(0, "Fibo",OBJPROP_LEVELVALUE,1); Questo dà 0,236, cioè non prezzo, ma livello.
Puoi dirmi come ottenere il prezzo del livello. Grazie!

Ed è stato anche risposto:

Solo due operazioni aritmetiche. Moltiplicazione (0,236 moltiplicato per la differenza tra i prezzi del livello zero e del livello uno) e poi addizione (il risultato della moltiplicazione viene aggiunto al prezzo del livello zero).

 
Ho scritto un indicatore, l'ho eseguito, tutto si è bloccato e il messaggio - attendere l'aggiornamento (senza cicli infiniti). Se riavvio il mt il risultato è lo stesso. È chiaro che posso cancellare questi indicatori prima del lancio e poi inserirli, ma ogni volta per risolvere il problema in questo modo non è un'opzione. Forse c'è un tasto per avviare da linea di comando per avviare l'interfaccia di default?
 
artmedia70:

Una domanda simile è già stata posta:

Voglio ottenere il prezzo al livello Fibo del 23,6%
double flevel236 = ObjectGetDouble(0, "Fibo",OBJPROP_LEVELVALUE,1); Questo dà 0,236, cioè non il prezzo ma il livello.
Puoi dirmi come ottenere il prezzo del livello. Grazie!

E anche la risposta è stata data:

Solo due operazioni aritmetiche. Moltiplicazione (0,236 moltiplicato per la differenza tra i prezzi del livello zero e del livello uno) e poi addizione (il risultato della moltiplicazione viene aggiunto al prezzo del livello zero).




Grazie di cuore!) Questo è quello che ho pensato in linea di principio)


"0,236 moltiplicato per la differenza tra lo zero e i prezzi del primo livello" - solo che probabilmente sarebbe più corretto dire "tra lo zero e i prezzi dell'ultimo livello".

Motivazione: