Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 615

 
Salve.
Non ho schede nella finestra degli strumenti di MT-5 - calendario, segnali, potresti dirmi come aggiungerle?
 
sergey966121:
Salve.
Non ho schede nella finestra degli strumenti di MT5: calendario, segnali, puoi dirmi come aggiungerle?

Le impostazioni del server di trading sono responsabili della scheda "Calendario". Se non c'è una scheda, richiedete la sua inclusione al commerciante dove è stato aperto il conto di trading.

Se non c'è la scheda "Segnali":

Se non c'è una scheda "Segnali" in MetaTrader

Aggiunto: è il sistema operativo Windows?

 

Ciao!

Posso ottenere i valori TP e SL di una posizione usandoPositionGet...(), ma come posso impostare il takeprofit dell'intera posizione?

Non riesco a prenderlo in questo momento.

 
Alexander Kharlamov:

Ciao!

Posso ottenere i valori TP e SL di una posizione usandoPositionGet...(), ma come posso impostare il takeprofit dell'intera posizione?

Grazie!

In questo modo, usando la libreria standard e la classe CTrade:

#include <Trade\Trade.mqh>
Ctrade my_trade
...
my_trade.Buy(...
//или
my_trade.Sell(...
//или
my_trade.PositionModify(...
 
Karputov Vladimir:

Ecco fatto, usando la libreria standard e la classe CTrade:

Grazie!
 
Alexander Kharlamov:
Grazie!
Non c'è di che. L'uso della libreria standard rende la programmazione molto facile.
 
Alexander Kharlamov:
Grazie!

Ecco un esempio di script (PositionModify(SL).mq5) - prima apre una posizione, e poi cambia lo stop loss di questa posizione:

//+------------------------------------------------------------------+
//|                                           PositionModify(SL).mq5 |
//|                              Copyright © 2016, Vladimir Karputov |
//|                                           http://wmua.ru/slesar/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2016, Vladimir Karputov"
#property link      "http://wmua.ru/slesar/"
#property version   "1.00"
#include <Trade\Trade.mqh>
//--- variable
CTrade   my_trade;         // object CTrade
int      my_stop_loss=30;  // stop level
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   my_trade.Buy(0.01);
   Sleep(6000);

   double m_adjusted_point;         // point value adjusted for 3 or 5 points
//--- tuning for 3 or 5 digits
   int digits_adjust=1;
   if(Digits()==3 || Digits()==5)
      digits_adjust=10;
   m_adjusted_point=Point()*digits_adjust;

   double m_stop_loss=my_stop_loss*m_adjusted_point;

   MqlTick m_tick;
   SymbolInfoTick(Symbol(),m_tick);

   double sl=NormalizeDouble(m_tick.bid-m_stop_loss,Digits());
   my_trade.PositionModify(Symbol(),sl,0);
  }

Restrizione d'uso: funzionerà correttamente solo su conti netting.

File:
 

Sono riuscito a impostare il TP per la posizione, grazie.

Mi chiedo se è possibile utilizzare MQL5 per tracciare l'evento - TP attivato? O è necessario controllare lo stato della posizione?

 
Alexander Kharlamov:

Sono riuscito a impostare il TP per la posizione, grazie.

Mi chiedo se è possibile utilizzare MQL5 per tracciare l'evento - TP attivato? O è necessario controllare lo stato della posizione?

Certo che sì, la posizione vi informerà dell'evento - è solo un'entità (un record nel database + qualcos'altro) sul server della società di brokeraggio.
 

Non l'ho ancora affrontato a causa dell'impraticabilità, ma gli eventi OnTrade e OnTradeTransaction non tracceranno la chiusura della posizione per presa?

Trade

L'evento Trade viene generato quando viene completata un'operazione commerciale sul server commerciale. L'evento Trade è gestito dalla funzione OnTrade() per le seguenti operazioni commerciali

  • impostazione, modifica o cancellazione di un ordine in sospeso;
  • cancellare un ordine in sospeso in caso di fondi insufficienti o alla scadenza;
  • l'attivazione di un ordine pendente;
  • apertura, aggiunta o chiusura di una posizione (o parte di essa);
  • modifica di una posizione aperta (cambio di stop).

TradeTransaction

Come risultato di certe azioni eseguite su un conto commerciale il suo stato cambia. Tali azioni includono:

  • Invio di una richiesta di compravendita da parte di qualsiasi applicazione MQL5 nel terminale client utilizzando le funzioni OrderSend e OrderSendAsync e la sua successiva esecuzione;
  • Invio di una richiesta di compravendita tramite l'interfaccia grafica del terminale e la sua successiva esecuzione;
  • Attivazione di ordini pendenti e stop sul server;
  • Esecuzione di operazioni sul lato del server commerciale.

Come risultato di queste azioni, vengono eseguite transazioni commerciali per il conto:

  • elaborazione di una richiesta di commercio;
  • modifica di ordini aperti;
  • Cambiare la cronologia degli ordini;
  • Cambiare la storia degli accordi;
  • Cambiare posizione.

Per esempio, quando viene inviato un ordine di acquisto a mercato, questo viene elaborato, viene creato un ordine di acquisto appropriato per il conto, l'ordine viene eseguito, rimosso dalla lista degli ordini aperti, aggiunto alla cronologia degli ordini, quindi l'affare corrispondente viene aggiunto alla cronologia e viene creata una nuova posizione. Tutte queste azioni sono transazioni commerciali. L'arrivo di ciascuna di queste transazioni nel terminale è l'evento TradeTransaction. Questo evento è gestito dalla funzione OnTradeTransaction.