- OrderCalcMargin
- OrderCalcProfit
- OrderCheck
- OrderSend
- OrderSendAsync
- PositionsTotal
- PositionGetSymbol
- PositionSelect
- PositionSelectByTicket
- PositionGetDouble
- PositionGetInteger
- PositionGetString
- PositionGetTicket
- OrdersTotal
- OrderGetTicket
- OrderSelect
- OrderGetDouble
- OrderGetInteger
- OrderGetString
- HistorySelect
- HistorySelectByPosition
- HistoryOrderSelect
- HistoryOrdersTotal
- HistoryOrderGetTicket
- HistoryOrderGetDouble
- HistoryOrderGetInteger
- HistoryOrderGetString
- HistoryDealSelect
- HistoryDealsTotal
- HistoryDealGetTicket
- HistoryDealGetDouble
- HistoryDealGetInteger
- HistoryDealGetString
HistoryDealGetTicket
La funzione seleziona un accordo per l'ulteriore elaborazione e restituisce il ticket nella cronistoria. Prima di chiamare HistoryDealGetTicket(), per prima cosa è necessario ricevere la cronitoria di affari ed ordini con le funzioni HistorySelect() o HistorySelectByPosition().
ulong HistoryDealGetTicket(
|
Parametri
index
[in] Numero di un affare nella lista degli affari
Valore restituito
Valore del tipo ulong . Se la funzione fallisce, viene restituito 0.
Nota
Attenzione a non confondere ordini, affari e posizioni. Ogni affare è il risultato dell'esecuzione di un ordine, ogni posizione è il risultato di riepilogo di uno o più affari.
Esempio:
voidOnStart() { ulong deal_ticket; // ticket dell'affare ulong order_ticket; // ticket dell'ordine su cui l'affare è stato eseguito datetime transaction_time; // orario di esecuzione dell'affare long deal_type ; // tipo di operazione di trade long position_ID; // ID della posizione string deal_description; // descrizione dell'operazione double volume; // volume dell'operazione string symbol; // simbolo dell'affare //--- imposta la data di inizio e di fine per richiedere la cronistoria degli affari datetime from_date=0; // dall'inizio inizio datetime to_date=TimeCurrent();// fino al momento corrente //--- richiede la cronistoria degli affari all'interno del periodo specificato HistorySelect(from_date,to_date); //--- numero totale nella lista degli affari int deals=HistoryDealsTotal(); //--- ora elabora ogni trade for(int i=0;i<deals;i++) { deal_ticket= HistoryDealGetTicket(i); volume= HistoryDealGetDouble(deal_ticket,DEAL_VOLUME); transaction_time=(datetime)HistoryDealGetInteger(deal_ticket,DEAL_TIME); order_ticket= HistoryDealGetInteger(deal_ticket,DEAL_ORDER); deal_type= HistoryDealGetInteger(deal_ticket,DEAL_TYPE); symbol= HistoryDealGetString(deal_ticket,DEAL_SYMBOL); position_ID= HistoryDealGetInteger(deal_ticket,DEAL_POSITION_ID); deal_description= GetDealDescription(deal_type,volume,symbol,order_ticket,position_ID); //--- esegue la buona formattazione per il numero dell'affare string print_index=StringFormat("% 3d",i); //--- mostra informazioni sull'affare Print(print_index+": deal #",deal_ticket," at ",transaction_time,deal_description); } } //+--------------------------------------------------------------------------------+ //| Restituisce la descrizione della stringa dell'operazione | //+--------------------------------------------------------------------------------+ string GetDealDescription(long deal_type,double volume,string symbol,long ticket,long pos_ID) { string descr; //--- switch(deal_type) { case DEAL_TYPE_BALANCE: return ("balance"); case DEAL_TYPE_CREDIT: return ("credit"); case DEAL_TYPE_CHARGE: return ("charge"); case DEAL_TYPE_CORRECTION: return ("correction"); case DEAL_TYPE_BUY: descr="buy"; break; case DEAL_TYPE_SELL: descr="sell"; break; case DEAL_TYPE_BONUS: return ("bonus"); case DEAL_TYPE_COMMISSION: return ("additional commission"); case DEAL_TYPE_COMMISSION_DAILY: return ("daily commission"); case DEAL_TYPE_COMMISSION_MONTHLY: return ("monthly commission"); case DEAL_TYPE_COMMISSION_AGENT_DAILY: return ("daily agent commission"); case DEAL_TYPE_COMMISSION_AGENT_MONTHLY: return ("monthly agent commission"); case DEAL_TYPE_INTEREST: return ("interest rate"); case DEAL_TYPE_BUY_CANCELED: descr="cancelled buy deal"; break; case DEAL_TYPE_SELL_CANCELED: descr="cancelled sell deal"; break; } descr=StringFormat("%s %G %s (ordine #%d, ID della posizione %d)", descr, // descrizione corrente volume, // volume dell'affare symbol, // simbolo dell'affare ticket, // ticket dell'ordine che ha causato l'affare pos_ID // ID della posizione, nel quale è incluso l'affare ); return(descr); //--- } |
---|
HistorySelect(),HistoryDealsTotal(), HistoryDealSelect(), Proprietà Affari