Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 746

 
Alexey Viktorov:

Dove si trovano questi programmatori?

Tutto questo è una sciocchezza assoluta. Dove mandare un tale programmatore, spero che tu capisca.

Beh, nel caso, per non perderlo, ecco un suggerimento


Poche persone - e tutti iniziano a scoprire se ho un conto di copertura o di compensazione. Gli dico che ho bisogno di un consulente universale e mi rispondono:

"Il compito è quello di piazzare diversi ordini su un simbolo. Su alcuni conti, saranno sommati, su altri no. Tutto entrerà in una posizione e il risultato futuro è sconosciuto (se gli Expert Advisors non sono progettati per questo, naturalmente). Se chiudo o apro a pezzi, il profitto non sarà lo stesso che sarebbe separatamente.

Ho detto che non mi interessa come sarà implementato, purché l'algoritmo sia come descritto nel compito. Abbiamo discusso per diverse ore in uno scambio acceso, ma alla fine abbiamo convenuto che ero un pessimo cliente e non sapevo cosa volevo...

Quando sono andato dagli altri progessori, ho ricevuto di nuovo le stesse domande: hedging e netting. Ho detto 'Universale' e la risposta è stata: 'Vai al diavolo se non sai cosa vuoi'.

 
Artyom Kuraev:

Un po' di gente - e tutti cominciano a chiedere se ho una copertura o un conto di compensazione. Dico che ho bisogno di un EA universale e ottengo la risposta:

"Il compito è quello di piazzare diversi ordini sullo stesso simbolo. Su alcuni conti, saranno sommati, su altri no. Tutto entrerà in una posizione e il risultato futuro è sconosciuto (se gli Expert Advisors non sono progettati per questo, naturalmente). Se chiudo o apro a pezzi, il profitto non sarà lo stesso che sarebbe separatamente.

Ho detto che non mi interessa come sarà implementato, purché l'algoritmo sia come descritto nel compito. Abbiamo discusso per diverse ore in uno scambio acceso, ma alla fine abbiamo convenuto che ero un pessimo cliente e non sapevo cosa volevo...

Quando sono andato dagli altri progessori, ho ricevuto di nuovo le stesse domande: hedging e netting. Io dico "universale" e la risposta è: "vai al diavolo se non sai cosa vuoi".

Forse non era la parola giusta. Infatti nei conti di compensazione si sommano le posizioni aperte. Ma se si è interessati solo alla contabilità delle posizioni come in MT4, allora si deve avere un conto di compensazione.

Tutto il resto, il magik, l'enumerazione delle posizioni e degli ordini, il determinare se un EA è aperto o aperto manualmente da un altro EA, tutto è risolto in una volta.

 
Alexey Viktorov:

Probabilmente non è proprio la cosa giusta da dire. È vero che nei conti di compensazione si sommano le posizioni aperte. Ma se siete interessati solo alla contabilità delle posizioni come in MT4, allora un conto hadge è un prerequisito.

Tutte le altre cose, il magik, l'enumerazione delle posizioni e degli ordini, il rilevamento delle posizioni aperte da un EA o da un altro EA, tutto questo è risolto in una volta.

Sì, si sommano. Ma questo non significa che sia impossibile ottenere informazioni sull'ordine richiesto e attuare una corretta contabilizzazione e chiusura dell'ordine richiesto in un dato momento, vero?
 
Artyom Kuraev:

... - La risposta è "vai a farti fottere se non sai di cosa hai bisogno".


Risposta assolutamente adeguata e corretta. E questo finché non si capisce la differenza tra un conto di compensazione e una copertura.

Ti do il 99% che sei troppo pigro per leggere(MetaTrader 5 ha aggiunto un sistema di contabilità di copertura per le posizioni), quindi prova a riscrivere il tuo compito con questo in mente:

AzioneRisultato della compensazioneRisultato Hedge
1.Compra EURUSD 0.01Una posizione Comprare EURUSD 0.01 lottoUna posizione Comprare EURUSD 0.01 lotto
2. Comprare EURUSD 0,01Una posizione Comprare EURUSD 0,02 lottoDue posizioni:
Comprare la posizione EURUSD 0.01 lot

Una posizione Comprare EURUSD 0.01 lotto

3 Vendere EURUSD 0,01Una posizione Comprare EURUSD 0.01 lottoTre posizioni:

Una posizione Comprare EURUSD 0.01 lotto

Una posizione Comprare EURUSD 0.01 lotto

una posizione Sell EURUSD 0.01 lot

 
Vladimir Karputov:


Risposta assolutamente adeguata e corretta. Questo finché non si capisce la differenza tra un conto di compensazione e una copertura.

Ti do il 99% che sei troppo pigro per leggere(MetaTrader 5 ha aggiunto l'hedge accounting), quindi prova a riscrivere il tuo compito con questo in mente:

AzioneRisultato della compensazioneRisultato Hedge
1.Compra EURUSD 0.01Una posizione Comprare EURUSD 0.01 lottoUna posizione Comprare EURUSD 0.01 lotto
2. Comprare EURUSD 0,01Una posizione Comprare EURUSD 0,02 lottoDue posizioni:
Comprare la posizione EURUSD 0.01 lot

Una posizione Comprare EURUSD 0.01 lotto

3 Vendere EURUSD 0,01Una posizione Comprare EURUSD 0.01 lottoTre posizioni:

Una posizione Comprare EURUSD 0.01 lotto

Una posizione Comprare EURUSD 0.01 lotto

una posizione Sell EURUSD 0.01 lot

Lo capisco logicamente, ma nel netting, tutte le informazioni sulle compravendite aperte/chiuse sono cancellate dappertutto, che non possono essere ottenute da nessuna parte e solo quella parte di una posizione totale appartiene a questo EA? Inoltre, capisco che fa collassare diverse posizioni in una sola, ma poi cosa succede al prezzo di apertura quando viene aggiunta una posizione?
 
Artyom Kuraev:
Logicamente lo capisco, ma durante il netting tutte le informazioni sui trade aperti/chiusi sono cancellate da ogni parte, quindi è impossibile ottenerle da ogni parte e chiudere solo quella parte di una posizione totale, che appartiene a questo EA?


Naturalmente, è possibile ottenere trade dalla cronologia di trading e analizzarli. La questione è se questo sia necessario.

Artyom Kuraev:
... Inoltre, capisco che collassa diverse posizioni in una sola, ma cosa succede al prezzo di apertura al momento di aggiungere una posizione?

La compensazione dà il prezzo medio finale, che dipende dal prezzo e dal volume della posizione e dal volume che si aggiunge. In questo caso, la cosa migliore è fare trading di reti manualmente. O meglio: se sei abituato a lavorare con un sistema di ordini nel tuo vecchio terminale, allora nel tuo lavoro MetaTrader 5 dovresti dichiarare esplicitamente che vuoi un robot PER il sistema di copertura.

 

Aiuto con il caricamento della storia, per favore.

C'è una serie di simboli grafici aperti, ci possono essere fino a 30 pezzi. Il problema è che quando si cambia timeframes in modo sincrono, non c'è storia, e mentre è caricato, l'indicatore "cade"

Questo design non funziona

  ArraySetAsSeries(_open,true);
  for(int i=0; i<ArraySize(mass_id); i++) {
   MassSY=ChartSymbol(mass_id[i]);
    for(int e=0; e<5; e++) {
      if(CopyOpen(MassSY,Period(),0,(int)ChartGetInteger(0,CHART_WIDTH_IN_BARS,0)+1,_open)>=ChartGetInteger(0,CHART_WIDTH_IN_BARS,0)) continue;
    }
  }

Allego il video per chiarezza


Grazie!

 
Vitaly Muzichenko:

Aiuto con il caricamento della storia, per favore.

C'è una serie di simboli grafici aperti, ci possono essere fino a 30 pezzi. Il problema è che quando si cambia timeframes in modo sincrono, non c'è storia, e mentre è caricato, l'indicatore "cade"

Questo design non funziona

Allego il video per chiarezza


Grazie!


Vitaly, guarda su https://www.mql5.com/ru/docs/series/timeseries_access#synchronized, c'è uno script di esempio per caricare la cronologia, forse ti aiuterà
Документация по MQL5: Доступ к таймсериям и индикаторам / Организация доступа к данным
Документация по MQL5: Доступ к таймсериям и индикаторам / Организация доступа к данным
  • www.mql5.com
Доступ к таймсериям и индикаторам / Организация доступа к данным - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Sergey Gritsay:

Vitaly, controlla https://www.mql5.com/ru/docs/series/timeseries_access#synchronized, c'è un esempio di script per caricare la storia, potrebbe aiutarti.
Ho lottato con questo script... Non aiuta. Anche se, forse ho fatto qualcosa di sbagliato o c'erano alcuni bug nella build, dopo le mie torture, ci sono state molte lamentele (non mie) per questa build.
 
Vitaly Muzichenko:

Aiuto con il caricamento della storia, per favore.

C'è una serie di simboli grafici aperti, ci possono essere fino a 30 pezzi. Il problema è che quando si cambia timeframes in modo sincrono, non c'è storia, e mentre è caricato, l'indicatore "cade"

Questo design non funziona

Allego il video per chiarezza


Grazie!

Provate a ciclare tutti i simboli/timeframe necessari attraverso il timer dei minuti (Bars( symbol, timeframe );)