Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 898

 
Sile Si:

Ok, questo è quello che faccio.

Poi confronto l'id della transazione con il ticker della posizione, e penso di aver selezionato la transazione,

ma restituisce il prezzo della posizione. Perché?

Domanda per il retro della mia mente: usate

PositionGetDouble(POSITION_PRICE_OPEN)

Si ottiene il prezzo dello scambio? O è ancora il prezzo della posizione?

 
Alexey Kozitsyn:

Domanda per le vostre richieste: con l'aiuto di

Ottieni il prezzo della transazione? O è ancora il prezzo della posizione?

Beh, se ho preselezionato un trade, allora è il prezzo del trade. Non sono riuscito a trovare il prezzo di apertura nella documentazione.

 
Sile Si:

Beh, se ho preselezionato uno scambio, allora quello è il prezzo dello scambio. Non sono riuscito a trovare il prezzo di apertura dell'affare nella documentazione.

Come si seleziona il commercio? Quale funzione?

Dopo tutto, non c'è un modo banale per determinare il prezzo di apertura di un trade (non una posizione) in MT5. In casi particolari è possibile (quando un accordo per parametri coincide con una posizione), ma non c'è un modo universale.

 
Ihor Herasko:

Come si seleziona la transazione? Quale funzione?

Dopo tutto, non c'è un modo banale per determinare il prezzo di apertura di un trade (non una posizione) in MT5. In casi particolari, è possibile (quando i parametri dell'affare coincidono con la posizione), ma non esiste un modo universale.

Scegliere un accordo per id

POSIZIONE_AFFARE_ID

Identificatore della posizione, nell'apertura, modifica o chiusura della quale questa operazione è stata coinvolta. Ogni posizione ha un identificatore unico, che viene assegnato a tutte le operazioni effettuate sul simbolo durante la vita della posizione.

lungo

 
Sile Si:

Accordo selezionato per id

POSIZIONE_AFFARE_ID

Identificatore della posizione, in apertura, modifica o chiusura della quale questa operazione è stata coinvolta. Ogni posizione ha un identificatore unico, che viene assegnato a tutte le transazioni effettuate sullo strumento durante la vita della posizione.

lungo


Nel tester, il prezzo medio è considerato corretto. Sull'account reale mostra il prezzo di qualcun altro nel commento.

Su conti come il Netting, la posizione e il commercio sono concetti diversi. Ci ha appena mostrato la selezione della posizione.

 
Come trovo il massimo per N barre in mql5? Simile a iHighest
 
lil_lil:
Come in mql5 trovare il massimo per N barre? Simile a iHighest

Cosa c'è di sbagliato in iHighest?

 
lil_lil:
In mql5 come trovare il valore massimo di N barre? Simile a iHighest

CopyHigh in un array eArrayMaximum in questo array.

Questo sarà il valore massimo, a differenza di iHighest che restituisce l'indice della barra con il valore massimo.

Документация по MQL5: Доступ к таймсериям и индикаторам / CopyHigh
Документация по MQL5: Доступ к таймсериям и индикаторам / CopyHigh
  • www.mql5.com
Функция получает в массив high_array исторические данные максимальных цен баров для указанной пары символ-период в указанном количестве. Необходимо отметить, что отсчет элементов от стартовой позиции ведется от настоящего к прошлому, то есть стартовая позиция, равная 0, означает текущий бар. При копировании заранее неизвестного количества...
 
lil_lil:
Come trovo il massimo per N barre in mql5? Simile a iHighest
//+------------------------------------------------------------------+
//| Возвращает индекс максимального значения таймсерии High          |
//+------------------------------------------------------------------+
int Highest(const int count,const int start)
  {
   double array[];
   ArraySetAsSeries(array,true);
   return(CopyHigh(Symbol(),PERIOD_CURRENT,start,count,array)==count ? ArrayMaximum(array)+start : WRONG_VALUE);
  }
//+------------------------------------------------------------------+
//| Возвращает индекс минимального значения таймсерии Low            |
//+------------------------------------------------------------------+
int Lowest(const int count,const int start)
  {
   double array[];
   ArraySetAsSeries(array,true);
   return(CopyLow(Symbol(),PERIOD_CURRENT,start,count,array)==count ? ArrayMinimum(array)+start : WRONG_VALUE);
   return WRONG_VALUE;
  }
//+------------------------------------------------------------------+
 
Grazie.
Motivazione: