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

 
lottamer:

Un computer può memorizzare come vuole - ma facciamo in modo che l'output sia umano:))

Dà quello che gli viene chiesto, e non può "umanamente" per definizione, è un computer, non un essere umano.
 

leggere qui https://forum.mql4.com/ru/38949/page2#434212


La funzione ExistPosByPrice().

Questa funzione restituisce un flag per l'esistenza di una posizione ad un dato prezzo aperto.

Cos'èuna bandiera Exist?

 
hoz:

Quindi chiedete se avete scritto correttamente la funzione che state mostrando, altrimenti state chiedendo una cosa e mostrandone un'altra.
 
lottamer:

leggere qui https://forum.mql4.com/ru/38949/page2#434212


La funzione ExistPosByPrice().

Questa funzione restituisce un flag per l'esistenza di una posizione ad un dato prezzo aperto.

Cos'è"Exist flag"?


Una bandiera è una variabile, di solito di tipo bool, che è impostata su uno stato che dipende dalla verità della condizione che viene controllata (qui -- se c'è una posizione con un dato prezzo di apertura).
 
sergeev:

non in modo che questo tempo per il segno == esista solo per 1 secondo.

è corretto mettere il segno >=

o passare attraverso il controllo di due variabili temporali - attuale e precedente.

Ma d'altra parte avete un errore logico: state cercando di legare un secondo ad un risultato positivo di un'operazione logica di una condizione di apertura dell'ordine.

Questo non è corretto. L'ordine può fallire l'apertura, il che significa che non si cercherà di aprirlo al prossimo tick - poiché la funzione tempo restituirà false


Ho capito l'idea generale. Ecco cosa è venuto fuori:

bool GetTimeToInput()

{

  if(TimeCurrent() >= iTime(Symbol(),1440,0) && TimeCurrent() <= iTime(Symbol(),1440,0) + N)

  {

    return(true);

  }

  else

    

  return(false);

} 

N è il numero di minuti dopo l'apertura della barra giornaliera. Finora non ho capito come ottenerlo, quindi ho scritto una variabile pura. Sembra essere corretto.

sergeev:

Bisogna legare la memorizzazione dell'operazione riuscita al tempo.

pensare.

Ma vorrei chiarire che cosa intendete per "risparmio vincolante dell'operazione di successo al tempo". Non ho capito bene.

 
hoz:


Ho capito l'idea generale. Ecco cosa è venuto fuori:

N è il numero di minuti trascorsi dall'apertura della barra giornaliera. Finora non ho capito come ottenerlo, quindi ho scritto puramente una variabile. Sembra essere corretto.

Sergeev:

Ma voglio spiegare più chiaramente come collegare la memorizzazione delle operazioni di successo con il tempo. Non ho capito bene.


Non è il tempo in sé che è importante per te, ma se qualcosa è stato fatto entro un certo periodo di tempo - questo è ciò che dovresti controllare.

P.S. E non avete bisogno di determinare N, basta fare il vostro controlloif(TimeCurrent() >= iTime(Symbol(),1440,0) ) fino a quando le azioni di cui avete bisogno sono fatte (installazione di un ordine).

 
rigonich:

Una bandiera è una variabile, di solito di tipo bool, che è impostata su uno stato a seconda che la condizione sia vera o no (qui - se c'è una posizione con un dato prezzo aperto).

Capisco, cos'è la posizione INDEX? Non è un ticker, e non è un type....
 
lottamer:

Capito, cos'è un indice degli ordini? Non è un ticker, e non è type....


Questo è l'indice che determina la posizione dell'ordine nell'array in cui sono memorizzati i dati sugli ordini presenti nel terminale.

In altre parole,è sottolineato (sotto SELECT_BY_POS) boolOrderSelect(int index, int select, int pool=MODE_TRADES)

 
rigonich:


Questo è l'indice che definisce la posizione dell'ordine nell'array in cui sono memorizzati i dati sugli ordini presenti nel terminale.

Cioè,ciò che è sottolineato( con SELECT_BY_POS) bool OrderSelect(int index, int select, int pool=MODE_TRADES)



ma come si applica in pratica se si deve codificare una condizione "se gli ultimi due trade erano loses....."? ??
 
lottamer:

ma come si usa in pratica se si deve codificare una condizione "se gli ultimi due trade erano perdenti....."? ??


In pratica si usa in tutte le operazioni che lavorano con gli ordini. Bisogna prima selezionare l'ordine e poi fare qualcosa con esso (visualizzare le informazioni dell'ordine, inviare un ordine di compravendita al server per modificarlo o chiuderlo) Ci sono due modi per selezionare gli ordini nel terminale, per ticket, che è il numero assegnato all'ordine sul server che non cambia per un ordine particolare, o per il numero dell'ordine (indice) con cui l'ordine è memorizzato nel terminale. Questo numero può cambiare ad ogni tick, a seconda di quali e quanti ordini vengono aperti, impostati, chiusi o cancellati.

Per lavorare con gli ordini, è necessario organizzare cicli di valutazione degli ordini.