Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 612

 
Karputov Vladimir:

1. Sì, proprio così. L'esecuzione di un ordine genera una transazione. Una transazione può:

  • creare una posizione
  • cambiare il volume di una posizione
  • chiudere una posizione
2. Cosa c'è di meglio della pratica? :) Aprire una posizione (manualmente) su qualsiasi grafico. Eseguire lo script

- Guarda la linea (guarda la scheda "Esperti" del terminale):

Aumentare il volume, eseguire di nuovo lo script - confrontare di nuovo la linea

Come potete vedere, la proprietà di posizione (POSITION_IDENTIFIER) non cambia se la posizione non è invertita.

Grazie per le risposte a te e a tutti quelli che hanno risposto.
 
Karputov Vladimir:

In MT5 esiste il concetto di POSIZIONE. Potete chiudere una posizione. Se volete chiudere completamente una posizione, usate la libreria standard. Per un conto di compensazione un esempio di come chiudere una posizione:

Grazie!
 
Aiuto per favore!

C'è una stringa txt (scaricata da un sito di notizie)

string txt = "ИÐд´ÐµÑк ожиÐа´Ð½Ð¸Ð¹ в ÑÑ "еµÐµÑ€ ÑƒÑ "уÐÐÐг (авг)</a>\n";
codifica originale UTF-8. viene visualizzato come: windows 1252

deve essere convertito con mezzi mql4 nella forma - Service Expectation Index (Aug)</a>

Grazie in anticipo!
 

Ciao!

C'è un pezzo di codice

Dopo che è stato eseguitoPositionsTotal()

mostra 22 per il numero di ordini aperti (ordini di mercato). In effetti, 22 ordini sono aperti, ma sono tutti per lo stesso strumento. Penso che ci dovrebbe essere solo una posizione. Cosa c'è che non va? Per favore, consigliatemi!

position_ID=0;
  for(int i=0;i<PositionsTotal();i++)  {
      string pos_symbol=PositionGetSymbol((uint)i);
      if(pos_symbol==Symbol())  {
      position_ID=PositionGetInteger(POSITION_IDENTIFIER);  
      break;    
      }
  }    
   double mProfit =PositionGetDouble(POSITION_PROFIT);
PrintFormat("вход в 0018 PositionsTotal()=%d  mProfit=%d  ticket=%d",PositionsTotal(),mProfit,ticket); 
 
Alexander Kharlamov:

Ciao!

C'è un pezzo di codice

Dopo che è stato eseguitoPositionsTotal()

mostra 22 per il numero di ordini aperti (ordini di mercato). In effetti, 22 ordini sono aperti, ma sono tutti per lo stesso strumento. Penso che ci dovrebbe essere solo una posizione. Cosa c'è che non va? Per favore, consigliatemi!

Una posizione e un ordine sono cose completamente diverse! Una posizione è:"Il risultato degliscambi è l' apertura di una posizione".

Quindi se avete ordini di acquisto o vendita, non sono ordini, erano ordini prima che la posizione fosse aperta.

Inoltre, il concetto di "ordine di mercato" non esiste, l'ordine può essere pendente - Limite e Stop, così come Stop Loss e Take Profit sono anche ordini (ordine di chiusura del DC). Comprare e Vendere sono posizioni, non ordini, sono le vostre posizioni sul mercato!

 
Vitaly Muzichenko:

Una posizione e un ordine sono cose completamente diverse! Una posizione è:"Il risultato di unanegoziazione è l'apertura di una posizione".

Quindi se avete ordini di acquisto o vendita, non sono ordini, erano ordini prima che la posizione fosse aperta.

Inoltre, il concetto di "ordine di mercato" non esiste, l'ordine può essere pendente - Limite e Stop, così come Stop Loss e Take Profit sono anche ordini (ordine di chiusura del DC). Comprare e Vendere sono posizioni, non ordini, sono le vostre posizioni sul mercato!

Grazie per la risposta, ma il tuo commento è chiaro per me. Intendevo ordini di mercato nel senso che sono già sul mercato, non ordini pendenti. La domanda era perché ci sono 22 posizioni e non solo una. Credo che tu non abbia guardato il codice e abbia risposto immediatamente, scusa...
 
Alexander Kharlamov:
Grazie per aver risposto, ma quello che hai scritto mi è chiaro così com'è. Ho scritto ordini di mercato nel senso che sono già sul mercato, non in sospeso. La domanda era perché ci sono 22 posizioni e non solo una. Credo che tu non abbia guardato il codice e abbia risposto immediatamente, scusa...
A quanto pare hai un conto di copertura. Ci possono essere molte posizioni in uno strumento.
 
mila.com:

Salve.

Per favore, ditemi come ottenere il testo situato sulla prima barra in una variabile.

Voglio ottenere int TXT = 191;


ObjectGetString()

OBJPROP_TEXT

Descrizione dell'oggetto (testo contenuto nell'oggetto)

stringa

 
Artyom Trishkin:

ObjectGetString()

OBJPROP_TEXT

Descrizione dell'oggetto (testo contenuto nell'oggetto)

stringa

Per mezzo di
StringToInteger( 
   string  value      // строка 
   );
 
mila.com:

Grazie, non è molto chiaro come implementarlo in questo caso.

Cosa c'è che non va?

Molto probabilmente non c'è spazio tra il nome e il tempo"L_V "+Time[1]