Caratteristiche del linguaggio mql5, sottigliezze e tecniche - pagina 19
![MQL5 - Linguaggio delle strategie di trading integrato nel client terminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
Come posso determinare il tempo di apertura dell 'ultima posizione e il tempo di chiusura dell'ultima posizione?
In generale, vorrei conoscere i principi generali e gli algoritmi per ottenere informazioni sulle posizioni aperte/chiuse in mql5.
Cosa bisogna considerare, quali peculiarità ci sono al momento?
La questione è che sto usando la sintassi MQL4, che è 1000 volte più facile e comprensibile della sintassi MQL5 per lavorare con la parte commerciale.
Sapete bene quanto sia facile e chiaro il vostro compito che può essere risolto in tre righe in MQL4. Ecco perché è esattamente il modo in cui lo faccio io.
Per le risposte a tutte le domande riguardanti MQL5 sto esaminando il codice sorgente della libreria. Tutte le sfumature che conosco sono state considerate lì.
Al momento possiamo affermare che le posizioni Hedge e Netting sono molto diverse. Per esempio, nel Netting si può sempre avere una sola posizione per mesi, mentre si fa costantemente trading. Pertanto, la posizione Netting nella normale comprensione di MT5 è qualcosa di mal concepito e, di conseguenza, scomodo. Quindi per questa rete possiamo creare la nostra essenza di posizione. In MT4 si possono anche avere posizioni Netting, ma con un'interazione molto più chiara.
Aprire una posizione per 1 lotto. Poi chiudilo a 0,99, e deposita lo stesso importo. E così via diverse volte.
Hedge è conveniente non perché puoi avere posizioni multidirezionali, ma perché puoi avere diverse posizioni su un simbolo di UNA direzione. Questo è esattamente il modo in cui vedo comodo lavorare con le posizioni nei sistemi di reti. Non come in MT5.
Idealmente, quando si lavora con i conti Netting, si dovrebbe sempre avere una tabella che corrisponde completamente ai conti MT4. Perché solo queste tabelle ti danno una comprensione immediata di ciò che è successo e come è successo nel conto di trading. Non la statistica MT5.
Per quanto riguarda l'MT5-Hedge, tutto è semplice. CloseBy, però, non ci ho scavato dentro. Perciò non lo so.
Non è sempre possibile conoscere i livelli SL/TP di una posizione chiusa.
Ora questo è interessante... Ho bisogno di sapere con certezza che l'ultima posizione chiusa è stata chiusa al take profit.
C'è un modo per scoprirlo con certezza?
Ora questo è interessante... Ho bisogno di sapere con certezza che l'ultima posizione chiusa è stata chiusa al take profit.
C'è un modo per saperlo con certezza?
Sto facendo come consigliato:
Sto facendo come consigliato.
OK, come faccio a sapere se l'ultimo trade ha causato la chiusura o l'inversione di una posizione?
Se la posizione è chiusa o invertita, allora ha senso controllare i suoi dati, che saranno necessari per la logica dell'advisor: volume, fatto di chiusura su take o stop, ecc.
Altrimenti, se il fatto di chiudere su take è stato rilevato nell'ultimo trade, ma la posizione è rimasta, allora non ha senso controllare i dati sull'ultima posizione chiusa (esiste ancora).
In generale, naturalmente, è difficile passare rapidamente alla logica del sistema di ordini MT5 dopo il quattro - così molte domande sorgono quando si pensa alla logica del comportamento dell'EA, che dipende dai dati dell'ultima posizione chiusa - nel quattro è tutto trasparente - la posizione ha il proprio tipo, ed è l'ultima - è adatto - prendere i dati e usarli. Ma qui ... copertura, rete ... e abbiamo bisogno dello stesso risultato... e poi cominciamo a pensare in modo diverso...
OK, quindi come fai a sapere se l'ultimo trade ha portato a una chiusura o a un'inversione di posizione?
1. Se la posizione è chiusa o invertita, allora ha senso controllare i suoi dati, che saranno necessari per la logica dell'Expert Advisor: il volume, il fatto di chiudere su take o stop, ecc.
Altrimenti, se il fatto di chiudere sul take profit è stato rilevato nell'ultima posizione, ma la posizione è rimasta, allora non ha senso controllare i dati sull'ultima posizione chiusa (esiste ancora).
In generale, naturalmente, è difficile passare rapidamente alla logica del sistema di ordini MT5 dopo la quattro - così tante domande sorgono quando si pensa alla logica del comportamento dell'advisor, che è legato ai dati sull'ultima posizione chiusa - nella quattro è tutto trasparente - la posizione ha il suo tipo, ed è l'ultima - ci sta, prendiamo i dati e li usiamo. Ma qui ... copertura, rete ... e abbiamo bisogno dello stesso risultato... e poi cominciamo a pensare dappertutto...
1. Controlla il tipo di transazione, IN, OUT o IN/OUT
2. Se una posizione è chiusa da SL o TP, è già chiusa, non abbiamo bisogno di controllare il tipo di accordo.
1. Controlla il tipo di transazione, IN, OUT o IN/OUT
2. Se la posizione è chiusa da SL o TP, non c'è più, è chiusa, non è necessario controllare il tipo di trade.
È vero per le reti? O è vero anche per la copertura? Non ci possono essere diverse posizioni in una direzione in un conto di copertura? O è una posizione, e ....? Cos'è "e"? ... Merda... Non so cosa sia la "e"... Molte domande, nessuna risposta ancora.
Anche per la siepe.
Nel corso degli anni il mio cervello si è affinato per fare il netting: Ordine->Transazione->Posizione. Ci possono essere molti accordi in una posizione (in un hedge c'è un solo accordo, correggetemi se sbaglio), si può dire cosa è successo alla posizione dal tipo di accordo.
In una copertura è ovviamente più facile da capire, ma più difficile da seguire. Naturalmente, questa è la mia opinione personale.
Anche per una siepe.
Nel corso degli anni il mio cervello si è affinato per fare il netting: Ordine->Transazione->Posizione. Ci possono essere molti accordi in una posizione (in un hedge c'è un solo accordo, correggetemi se sbaglio), si può dire cosa è successo alla posizione dal tipo di accordo.
In una copertura è ovviamente più facile da capire, ma più difficile da seguire. IMHO naturalmente.
Ora questo è interessante... Ho bisogno di sapere con certezza che l'ultima posizione chiusa è stata chiusa al take profit.
C'è un modo per saperlo con certezza?
Quando si trova l'ultima operazione DEAL_ENTRY_OUT e si seleziona l'intera storia della posizione HistorySelectByPosition in questa lista, ci sono 2 operazioni e 2 ordini, aprendo una posizione e chiudendola. L'ordine in base al quale è avvenuta la chiusura contiene ORDER_PRICE_OPEN. Poi si controlla il tipo di posizione e il tipo di ordine che è stato usato per chiuderla. Se il tipo di ordine è opposto, significa che era una chiusura. Di conseguenza, il prezzo dell'ordine è il prezzo che dovremmo cercare, con una piccola correzione: se il profitto dell'ordine è > 0, allora questo è il prezzo di TP, se è < 0, allora la posizione ha chiuso su SL.
Se prendiamo in considerazione il commento all'ordine, non dovremmo fare affidamento su di esso.
Quando si trova l'ultimo trade DEAL_ENTRY_OUT e si seleziona l'intera storia della posizione HistorySelectByPosition in questa lista ci sono, per i conti hadge 2 trade e 2 ordini, aprendo una posizione e chiudendola. L'ordine in base al quale è avvenuta la chiusura contiene ORDER_PRICE_OPEN. Poi si controlla il tipo di posizione e il tipo di ordine che è stato usato per chiuderla. Se il tipo di ordine è opposto, significa che era una chiusura. Di conseguenza, il prezzo dell'ordine è il prezzo che dovremmo cercare, con una piccola correzione: se il profitto dell'ordine è > 0, allora questo è il prezzo di TP, se è < 0, allora la posizione ha chiuso su SL.
Se ci basiamo sul commento all'ordine non lo farei.