Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 762
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
E non sono le posizioni o gli affari che devono essere controllati, ma gli ordini, perché un ordine viene prima, poi un affare, poi una posizione.
Perché solo ordini? Un accordo non ha un ID di posizione (biglietto)?
POSIZIONE_AFFARE_ID
Perché solo ordini? Un accordo non ha un ID di posizione (biglietto)?
POSIZIONE_AFFARE_ID
Sì, hai ragione. Sia gli ordini che le offerte hanno un identificatore di posizione. Tuttavia, nel caso generale dovremmo sapere che alla posizione viene assegnato un identificatore del primo ordine che ha iniziato l'affare. Di conseguenza, l'"entità" che avvia la posizione è l'ordine, e non l'affare. E sono gli ordini, non gli accordi, che vanno cercati.
Dalla documentazione:
L'identificatore di posizione è un numero unico che viene assegnato ad ogni posizione appena aperta e non cambia per tutta la sua durata. Corrisponde al ticket dell'ordine con cui è stata aperta la posizione.
L'identificatore di posizione è specificato in ogni ordine (ORDER_POSITION_ID) e ogni trade (DEAL_POSITION_ID) che lo ha aperto, modificato o chiuso. Usa questa proprietà per cercare ordini e compravendite relative alla posizione.
Sì, hai ragione. Sia gli ordini che le compravendite hanno un identificatore di posizione. Tuttavia, in generale, dovete sapere che alla posizione viene assegnato l'identificatore del primo ordine che ha iniziato il trade. Di conseguenza, l'"entità" che avvia la posizione è l'ordine, e non l'affare. E sono gli ordini, non gli accordi, che vanno cercati.
Dalla documentazione:
Non voglio discutere, è esattamente quello che dice la documentazione. Ma altrove nella stessa documentazione dice"Come regola..." il che significa che ci possono essere incongruenze. E questo è il "come regola" che ho incontrato una volta...
posizione
Il biglietto di posizione. Deve essere compilato quando una posizione viene cambiata e chiusa, per la sua identificazione unica. Di regola, corrisponde al biglietto dell'ordine, a seguito del quale la posizione è stata aperta.
Per favore consigliate come recuperare il biglietto che è stato usato per lo scambio. Nello screenshot è "63214735".
Quisi cerca il numero della Posizione, nella lista delle Offerte, altrimenti è sbagliato.
Ecco uno script che dimostra cosa dà HistorySelectByPosition
E questo è come appare il risultato:
0 = Posizione aperta
1 = Posizione di chiusura
Se non lo ottieni = non hai inserito una posizione del biglietto
Lo stesso risultato può essere ottenuto se iniziamo con il Deal Ticket:
Per la funzione HistoryDealGetInteger()
ENUM_DEAL_PROPERTY_INTEGER
Identificatore
Descrizione
Tipo
DEAL_TICKET
Biglietto d'accordo. Numero unico da assegnare a ogni scambio
lungo
ORDINE D'ACQUISTO
Ordine, in base al quale è stato eseguito il trade
lungo
ORA_TEMPO
Tempo di esecuzione dell'affare
datetime
DEAL_TIME_MSC
Tempo di esecuzione dell'affare in millisecondi dal 01.01.1970
lungo
DEAL_TYPE
Tipo di affare
ENUM_DEAL_TYPE
DEAL_ENTRY
Direzione dell'affare - entrata nel mercato, uscita dal mercato o inversione
ENUM_DEAL_ENTRY
DEAL_MAGIC
Numero magico per l'affare (vedere ORDER_MAGIC)
lungo
MOTIVAZIONE DELL'AFFARE
Motivo o fonte dell'affare
ENUM_DEAL_REASON
POSIZIONE_AFFARE_ID
L'identificatore dellaposizione nella cui apertura, modifica o chiusura era coinvolta questa operazione. Ogni posizione ha un identificatore unico, che viene assegnato a tutte le operazioni effettuate sullo strumento durante il periodo di vita della posizione.
lungo
Grazie!
Avevo bisogno di questo:HistoryOrderGetTicket
Grazie!
Avevo bisogno di questo:HistoryOrderGetTicket
L'ordine può essere 1,0 lotto. Ma può essere eseguito parzialmente, per esempio, il lotto 0,9 - il resto sarà rifiutato (dipende dalla modalità di esecuzione). Allora il trade sarà il lotto 0,9. E quando si inizia a cercare i lotti sull'ordine, ci saranno delle incongruenze.
Per favore aiutatemi - ho bisogno di un codice sano per ottenere il valore dell'ambiente OHLC - quelli esistenti sono molto lenti
Opzione 1
Opzione 2
Per favore aiutatemi - ho bisogno di un codice sano per ottenere il valore dell'ambiente OHLC - quelli esistenti sono molto lenti
Opzione 1
Opzione 2
Pubblica un pezzo di codice su come li applichi
Non so quale pezzo stia rallentando - li applico in modi diversi, anche in loop...
Ecco un esempio
Non so quale pezzo stia rallentando - lo applico in diversi modi, anche nei loop...
Sembra così nei loop, e si può fare a meno della funzione