Errori, bug, domande - pagina 409

 
T-G:

Per favore consigliatemi come il seguente codice funzionerà su mql5 non capisco

in frequenza come ottenere l'ora corrente?
Ecco a voi
//+------------------------------------------------------------------+
//|                                                       пример.mq5 |
//+------------------------------------------------------------------+
#property copyright ""
#property link      ""
#property version   "1.00"

input int HourOpen=4;

MqlDateTime str;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---

//---
   return(0);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   TimeToStruct(TimeCurrent(),str);

   if(str.hour==HourOpen)
     {
      // действие
     }
  }
//+------------------------------------------------------------------+
 
sergey1294:
Vedere
TimeCurrent() ha un sovraccarico, quindi puoi prendere il tempo direttamente (bypassando TimeToStruct()), sebbene la tua versione sia anche corretta.
 

stringo:

Quindi i gravi problemi sono causati dall'implementazione di questa opzione?

void OnTrade(
             const string symbol,//символ, от которого (по которому) пришло торговое событие
             const uchar type,   //тип торгового события (изменения в ордерах, позициях или сделках)
             const ulong ticket  //тикет ордера или сделки, либо идентификатор позиции (в зависимости от второго параметра)
             );

Esattamente. Il fatto è che il commercio e la coda dei messaggi non sono sincronizzati in alcun modo. Uno stesso biglietto può ricevere un mucchio di messaggi.

Inoltre, quando si riceve il primo messaggio da questo mucchio, non si sa nulla della disponibilità di altri messaggi sullo stesso biglietto. Ti sei affrettato a elaborare una modifica del ticket, ma il ticket esiste già, è già nella cronologia delle posizioni chiuse. Cosa fare? Sconosciuto.

Ora, quando si verifica un evento di trading impersonale, è possibile conoscere immediatamente lo stato attuale delle posizioni aperte e la storia del trading. Non avete un numero di biglietto e non avete nulla a cui fare riferimento se non lo stato attuale.

Ho perso il contatto per un paio di giorni.

Forse, ci sono diverse varianti di utilizzo dei possibili parametri della funzioneOnTrade(), ma il mio obiettivo è questa variante:

1. ordini. Alla ricezione del prossimo messaggio "dalla pila", scopro dal ticket dell'ordine se l'ordine è nella lista degli ordini aperti(OrderSelect) o nella lista degli ordini storici(HistoryOrderSelect). Cioè ottengo le informazioni più aggiornate sulla posizione attuale di un certo ordine, in relazione alle liste di ordini.

2. Posizioni. Alla ricezione del prossimo messaggio "dall'heap", scopro lo stato di posizione di questo simbolo dal suo nome(PositionSelect). Cioè, ottengo anche le informazioni più accurate sullo stato attuale della posizione.

Poi lavoro con le proprietà di un simbolo specifico, se necessario.

Così, cerco di evitare un uso eccessivo di controlli ciclici.

 
Urain e sergey1294 grazie per la pronta risposta, ora capisco
 
AlexSTAL:
Cosa c'è scritto? Quali sono i sintomi?

Niente, sto cercando di aprire un conto demo (ho provato diversi DC)

torna indietro

e poi non può creare un account

 
papaklass:
Se sei un trader demo hai solo bisogno di sapere se è scattato uno stop loss o un take profit e su quale strumento. Il resto degli eventi di trading sono esotici e hanno poco a che fare con il trading. IMHO. Quindi, se ci fosse un simbolo nella funzione OnTrade(), sarebbe possibile determinare (per esempio, confrontando il saldo corrente con quello precedente) cosa ha innescato sl o tp.
Sono d'accordo. Come minimo hai bisogno di un simbolo, e poi capiremo cos'era.
volpi:

Cercando di aprire un conto demo (ho provato diverse società di brokeraggio)

viene fuori

Ho provato diverse società di intermediazione e dopo questo non posso aprire un conto.

Quando hai scaricato il terminale e dove? Uno screenshot della finestra successiva è auspicabile, poiché questa non è informativa.
 

Agli sviluppatori di

Win 2003 SP2 (in modalità terminale) perde costantemente informazioni sul mio conto di trading è un bug o è stato progettato per migliorare la sicurezza?

Più precisamente, se uso alternativamente la stessa copia del programma in modalità normale e terminale con diversi account, i dati dell'account scompaiono di tanto in tanto. Apparentemente, se si lavora solo in modalità terminale con diversi account, la situazione sarà simile (non l'ho ancora verificato).

 
papaklass:
La maggior parte dei trader ha bisogno di sapere se uno stop loss o take profit è stato attivato e su quale strumento. Il resto degli eventi di trading sono esotici e hanno poco a che fare con il trading. IMHO. Quindi, se ci fosse un simbolo nella funzione OnTrade(), allora confrontando, per esempio, il valore del saldo corrente con quello precedente, si potrebbe determinare se è stato sl o tp a scattare.
In "protezione del biglietto" :) Preferisco lavorare con gli ordini in sospeso e tracciare il loro destino dalla nascita alla pensione. Che tipo di "esotismo con poca relazione con il commercio" è? Al contrario, è un'esigenza di tempo per seguire il destino degli ordini attraverso la loro bigliettazione. - È necessario per evitare di piazzare un secondo ordine in sospeso o di superare l'attivazione di un ordine già piazzato. Se abbiamo i parametri descritti sopra, possiamo spostare il blocco di tracciamento del punto dell'ordine nella funzione OnTrade().
 
papaklass:
La maggior parte dei trader ha bisogno di sapere se uno stop loss o take profit è stato attivato e su quale strumento. Il resto degli eventi di trading sono esotici e hanno poco a che fare con il trading. IMHO. Pertanto, se ci fosse un simbolo nella funzione OnTrade(), si potrebbe determinare (per esempio, confrontando il saldo corrente con quello precedente) cosa ha innescato sl o tp.
Lo ripeterò ancora una volta. La questione non è chiusa. È stato rimandato fino a quando non troveremo una soluzione accettabile. Beh, i compiti più importanti non sono ancora stati risolti.
 
Yedelkin:
In difesa del biglietto :) Preferisco lavorare con gli ordini in sospeso e seguire il loro destino dalla nascita alla pensione. Che tipo di "esotismo poco rilevante per il commercio" è questo? Al contrario, è un'esigenza di tempo per seguire il destino degli ordini attraverso la loro bigliettazione. - È necessario per evitare di piazzare un secondo ordine in sospeso o di superare l'attivazione di un ordine già piazzato. Se abbiamo i parametri descritti sopra, possiamo spostare il blocco di tracciamento del punto dell'ordine nella funzione OnTrade().
Forse, dare informazioni su quanti eventi commerciali sono ancora in coda semplificherà le cose.
Motivazione: