Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 1406

 
Marco Nicholas #:
Salve. Potete consigliarmi come implementare correttamente questa condizione nel codice.

Ho bisogno di aprire la prima posizione dopo il tempo specificato nelle impostazioni (ora, minuto, esempio "open first trade after 23-55") e poi ignorare questa condizione.

Questo codice funziona perfettamente, ma apre assolutamente tutte le offerte dopo "one_time_current.hour" e "one_time_open.min" Ho bisogno di eseguire questa condizione solo una volta (per aprire 1 posizione) e non applicarla a quelle successive.

Ciao, Marco!

if(one_time_current.hour>=one_time_open.hour && one_time_current.min>=one_time_open.min && PositionsTotal()==0)

Saluti, Vladimir.

 
MrBrooklin #:

Ciao Marco!


Sinceramente, Vladimir.

Grazie, è un po' un termine improprio. Questo codice non apre molte posizioni. Senza, si apre molto di più.
 
Marco Nicholas #:
Salve. Potete consigliarmi come implementare correttamente questa condizione nel codice.

Ho bisogno di aprire la prima posizione dopo il tempo specificato nelle impostazioni (ora, minuto, esempio "open first trade after 23-55") e poi ignorare questa condizione.

Questo codice funziona perfettamente, ma apre assolutamente tutte le offerte dopo "one_time_current.hour" e "one_time_open.min" Devo eseguire questa condizione solo una volta (per aprire 1 posizione) e non applicarla alle posizioni successive.

Ciao Marco! Avete chiesto aiuto per fare in modo che una posizione fosse aperta. Ora lo stai scrivendo:

Спасибо, немного не то. Такой код не дает открыть много позиции. Без него открывает намного больше.

Per prima cosa dovete decidere quante posizioni volete aprire - molte o una. Forse, la traduzione automatica delle parole non ti permette di formulare correttamente la tua richiesta.

Saluti, Vladimir.

 
Marco Nicholas #:
Salve. Potete consigliarmi come implementare correttamente questa condizione nel codice.

Ho bisogno di aprire la prima posizione dopo il tempo specificato nelle impostazioni (ora, minuto, esempio "open first trade after 23-55") e poi ignorare questa condizione.

Questo codice funziona perfettamente, ma apre assolutamente tutte le offerte dopo "one_time_current.hour" e "one_time_open.min" Dobbiamo eseguire questa condizione solo una volta (per l'apertura di 1 posizione) e non applicarla a quelle successive.

Quindi ci dovrebbe essere un'altra condizione per i prossimi, ma senza ignorare la condizione "dopo le 23:55", è così che lo capisco?

 
MrBrooklin #:

Ciao Marco! Avete chiesto aiuto per rendere una posizione aperta. Ora lo stai scrivendo:

Per prima cosa, dovete decidere quante posizioni volete aprire - molte o una. Forse, la traduzione automatica delle parole non ti permette di formulare correttamente la tua richiesta.

Saluti, Vladimir.

Sì, è vero, ci siamo fraintesi. Quando ho scritto:

"Questo codice funziona bene, ma assolutamente tutti i trade aperti dopo "one_time_current.hour" e "one_time_open.min"ma dobbiamo eseguire questa condizione solo una volta (per aprire 1 posizione) e non applicarla a quelle successive".

Volevo chiarire questo, non per aprire una posizione " 1 posizione" (devi aver capito così), intendevo applicare la condizione per aprire solo la prima posizione e non applicarla a quelle successive.

Grazie per aver risposto.

 
Alexey Viktorov #:

Quindi ci dovrebbe essere un'altra condizione per le prossime posizioni, ma senza ignorare la condizione "dopo le 23:55", è così che lo capisco?

Risulta, sì, che non ha bisogno di essere applicata (annullata) per le posizioni successive. Abbiamo solo bisogno diaprire la prima posizione (come per l'inizio dell'EA, dopo una certa ora e minuto), e per le posizioni successive questa condizione non ha bisogno di essere applicata.

È possibile fare tutto in una sola condizione?

if(one_time_current.hour>=one_time_open.hour && one_time_current.min>=one_time_open.min)
 
Marco Nicholas #:

Risulta che sì, non ha bisogno di essere applicata (annullata) alle posizioni successive. Ha solo bisogno di essereapplicata per aprire la prima posizione (come per l'inizio dell'EA, dopo una certa ora e minuto), e per le posizioni successive questa condizione non ha bisogno di essere applicata.

È possibile fare tutto in una sola condizione?

  bool first_position_was_opened=false;
  ...
  if(first_position_was_opened || ( one_time_current.hour>=one_time_open.hour && one_time_current.min>=one_time_open.min))

E non dimenticate di impostare "first_position_was_opened=true" dopo aver aperto qualsiasi posizione.

La variabile "first_position_was_opened" deve essere globale o statica.
 
Per favore aiutatemi!!!
Ho bisogno di una funzione che calcoli i profitti dell'ultima settimana per un simbolo e una magia specifici.
Ho trovato degli esempi senza magik, ma non riesco a far funzionare il magik((((.
 
JRandomTrader #:

E non dimenticate di impostare "first_position_was_opened=true" dopo aver aperto qualsiasi posizione.

La variabile "first_position_was_opened" deve essere globale o statica.

Grazie. Interessante variante di lavoro.

Voglio anche notare che la mia prima variante originariamente funzionava anche, ad una condizione: se si dividono le aperture per la prima e per le posizioni successive. È possibile anche tramite altro.

if(one_time_current.hour>=one_time_open.hour && one_time_current.min>=one_time_open.min)
if(item_positions==0) для первой


if(item_positions>0) для последующих

Grazie alle vostre risposte, imparare mql5 è molto più veloce.
 

Oppure potete utilizzare PositionsTotal() al posto della variabile first_position_was_opened nel codice di @JRandomTrader:

if(PositionsTotal() > 0 || (one_time_current.hour>=one_time_open.hour && one_time_current.min>=one_time_open.min)) {}

In questo caso, questa variabile non è necessaria e non è necessario impostarla su True dopo l'apertura e su False dopo la chiusura di tutte le posizioni.

Motivazione: