Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 1913

 
Alekseu Fedotov #:

Non vedo l'errore qui.

if(TimeFrame != PERIOD_CURRENT)

stessa cosa

if(TimeFrame != 0)
 
Alekseu Fedotov #:

Non vedo un errore qui.

PERIOD_CURRENT è 0 - la costante magica

Dovrebbe essere _Period (il periodo del grafico corrente) almeno e non è sempre 0

 
Alekseu Fedotov #:

Non vedo un errore qui.

Dove viene preso questo pezzo di codice, c'è anche un parametro di input

sinput ENUM_TIMEFRAMES TimeFrame = PERIOD_CURRENT; // Период

Corrispondentemente, otteniamo la condizione se 0 non è uguale a 0.

Ma se sostituiamo PERIOD_CURRENT con qualsiasi altro periodo nel parametro di input, la condizione si manterrà indipendentemente dal periodo del grafico. Che senso ha allora questa condizione?

 
Alexey Viktorov #:

Dove viene preso questo pezzo di codice, c'è anche un parametro di input

Corrispondentemente, otteniamo la condizione se 0 non è uguale a 0

Ma se sostituiamo PERIOD_CURRENT con qualsiasi altro periodo nel parametro di input, la condizione si manterrà indipendentemente dal periodo del grafico. Qual è allora il senso di questa condizione?

Ha senso solo una volta, in modo che la funzione ChartSetSymbolPeriod() non vi disturbi troppo;

 
Alekseu Fedotov #:

Il punto è solo uno, in modo che la funzione ChartSetSymbolPeriod() non sia tirata inutilmente;

In linea di principio, sì. Ma la domanda era sulla presenza dell'errore, non sulla convenienza di questa condizione...

 

Buon pomeriggio, cari sviluppatori!

Mi trovo di fronte alla necessità di raggruppare gli ordini per lavorare con ogni gruppo separatamente (chiusura, rabbocco, ecc.). Penso che il compito non sia troppo difficile, ma non ho idea di come risolverlo. Ho un'idea molto poco chiara, tutto qui. Nessuno ha affrontato un simile problema? Il raggruppamento può essere fatto in qualsiasi modo (terminale divariabili globali, commenti, ecc.). Sarei grato per qualsiasi aiuto.

 
AMarkov variabili globali, commenti, ecc.). Sarei grato per qualsiasi aiuto.

Perché non vuoi usare Magik? Perché ci può essere più di un mago in una EA...

 
Magik
Alexey Viktorov #:

Perché un mago non è adatto? Dopo tutto, ci può essere più di un mago in un consigliere...

Anche Magik è adatto. Presumo che tutte queste opzioni avranno quasi lo stesso algoritmo. Quindi, non importa. La cosa principale è trovare la soluzione).

 
AMarkov #:
Magik

Anche Magik è adatto. Presumo che tutte queste opzioni avranno quasi lo stesso algoritmo. Quindi è tutto uguale. La cosa principale è trovare una soluzione).

Naturalmente la soluzione è la stessa. Determinare il criterio secondo il quale l'ordine appartiene a questo o quel gruppo e identificarlo secondo questo criterio...
 
Alexey Viktorov #:
Naturalmente la soluzione è la stessa. Voi definite il criterio secondo il quale l'ordine appartiene a questo o quel gruppo e lo identificate secondo questo criterio...

Grazie per la vostra partecipazione. La dichiarazione di missione è chiara per me. Sono bloccato con l'implementazione...

Provato con i commenti. Fino al secondo gruppo numera correttamente. Al terzo restituisce uno per il commento, anche se il primo gruppo è ancora sul mercato. L'idea non è quella di moltiplicare i numeri, ma di prendere quelli lasciati liberi. Spero di essermi spiegato chiaramente).

for(int a=1; a<10; a++)

{

comment=";

for(int i=0; i<OrdersTotal(); i++)

{

if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))

{

if(OrderSymbol()==Symbol() && OrderMagicNumber()==magico)

{

//Stampa (OrderComment();

if(OrderComment()==IntegerToString(a)) continua;

else

{

comment=IntegerToString(a);

pausa;

}

}

}

}

if(comment!="") break;

}

if(CountOfBuy(magic)<1 && CountOfSell(magic)<1) comment="1";