Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 1188

 
odyn:

Si prega di spiegare.

La funzioneOnTradeTransaction.

Deve essere per forza nell'Expert Advisor?

Se no, in quali casi deve essere incluso nel codice e perché?

Solo OnInit() e OnTick() sono obbligatori, gli altri sono opzionali. La ragione di ciò è chiaramente descritta nella documentazione del linguaggio.

Il motore del forum ha messo un link al nome della funzione, cliccaci sopra e leggilo.
 
Alexey Viktorov:

Solo OnInit() e OnTick() sono obbligatori, il resto è a discrezione del codificatore. Perché è chiaramente descritto nella documentazione del linguaggio.

Il motore del forum ha messo un link al nome della funzione, così possiamo leggerlo.

Faccio una domanda solo quando non riesco a capire la spiegazione nella documentazione, negli articoli e nel forum.

Se fosse "chiaramente descritto", non lo chiederei.

La funzione è progettata per gestire i risultati di una richiesta di scambio. Questa funzione non restituisce nulla.

La funzione non gli è necessaria.

Quindi, la funzione è necessaria quando l'Expert Advisor riceve i risultati dell'elaborazione delle richieste dal server? Ma nessun Expert Advisor li invia? Quindi, la funzione deve essere sempre inserita nell'Expert Advisor?

 

Ciao, domanda per gli utenti esperti!

MQL5 ha OBJ_CHART.

Per favore consigliate come usare gli indicatori, in particolare MA, in OBJ_CHART, e se è possibile?

 
odyn:

Faccio una domanda solo quando non riesco a capire la spiegazione nella documentazione, negli articoli e nel forum.

Se fosse "chiaramente descritto", non lo chiederei.

La funzione è progettata per elaborare i risultati di una richiesta di scambio. Questa funzione non restituisce nulla.

La funzione non gli è necessaria.

Quindi, la funzione è necessaria quando l'Expert Advisor riceve i risultati dell'elaborazione delle richieste dal server? Ma nessun Expert Advisor li invia? Quindi, la funzione deve essere sempre inserita nell'Expert Advisor?

Alcuni programmatori sono bloccati con quegli esempi che hanno imparato in mql4 e non riescono a staccarsene. OnTradeTransaction() è come la coda di un cane per questi programmatori. Ma se volete, per esempio, rilevare facilmente un evento quando un ordine pendente è attivato, non può essere fatto più facilmente che in OnTradeTransaction(). Se avete bisogno di prendere qualche decisione ed eseguire qualche azione al momento della chiusura della posizione, lo troverete facile come OnTradeTransaction(). E se è necessario eseguire alcune azioni quando si chiude da TP, e altre azioni quando si chiude da SL, non può essere fatto più facilmente che in OnTradeTransaction().

Ma¡¡ ora, quelli di cui ho parlato verranno e cominceranno a speculare su quanti millisecondi ci sono qua e là... Tutto sommato, dipende dal dilettante. Se sei interessato, eseguilo e vedi cosa puoi ottenere in OnTradeTransaction() e pensa a come puoi usarlo per te.

 

Ditemi, se ho bisogno di aprire due trade allo stesso tempo, ma controllare se c'è un errore quando si apre uno di loro, come faccio a prendere l'errore?

C'è una funzione che restituisce la possibilità di aprire un trade su un asset?

 
Alexey Viktorov:


Grazie per la risposta!

 

Non posso aprire il file nel tester. Ottengo l'errore 5004.

int               m_file_handle;
short             m_delimiter;

m_delimiter='\t';
m_file_handle=FileOpen(m_filename,FILE_READ|FILE_CSV,m_delimiter);
if(m_file_handle==INVALID_HANDLE)
  {
   Print(__FUNCTION__+": file open failed. Error: ",GetLastError());
   return false;
  }

È un normale file csv con tabulazione come separatore. L'ho messo nella cartella MQL5\Files dell'agente. Dopo aver provato ad aprirlo, il file scompare.

 
leonerd:

Non posso aprire il file nel tester. Ottengo l'errore 5004.

È un normale file csv con tabulazione come separatore. L'ho messo nella cartella MQL5\Files dell'agente. Il file scompare dopo aver provato ad aprirlo.

Ok, senza #proprietà tester_file apparentemente non funziona.

 
Roman Sharanov:

Ditemi, se ho bisogno di aprire due trade allo stesso tempo, ma controllare se c'è un errore quando si apre uno di loro, come faccio a prendere l'errore?

C'è una funzione che restituisce la possibilità di aprire un trade su un asset?

Utilizzare OnTradeTransaction().

 

Si prega di suggerire un analogo della funzione MQL4 MarketInfo(asymbol, MODE_MARGIN_REQUIRED) in MQL5.

Ho bisogno di ottenerela quantità di fondi liberi necessari per aprire 1 lotto per comprare.

Ho provato diverse varianti della funzione SymbolInfoDouble(symbol, ...) in MQL5, non riesco a trovare la variante giusta, restituisce 0 ovunque.

Документация по MQL5: Константы, перечисления и структуры / Состояние окружения / Информация о счете
Документация по MQL5: Константы, перечисления и структуры / Состояние окружения / Информация о счете
  • www.mql5.com
, то позиции по каждому символу разрешается закрывать только в том порядке, в котором они были открыты — сначала самую старую, затем более новую и т.д. При попытке закрыть позиции в ином порядке будет получена ошибка. Уровень залоговых средств, при достижении которого происходит принудительное закрытие самой убыточной позиции (Stop Out...