Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 847

 
Vitaly Muzichenko:

Forse volete che i terminali con la grafica inviino il markup a un server web e che gli altri lo ricevano e lo visualizzino sul grafico. Non è un compito facile, ma è fattibile

Come posso farlo o cosa dovrei leggere per imparare a farlo? Il markup viene inviato e accettato automaticamente dagli altri utenti o deve essere caricato come modello ogni volta?
 
Илья:
Come posso farlo o cosa devo leggere per sapere come si può fare? Il markup viene inviato e accettato automaticamente dagli altri utenti o deve essere caricato separatamente ogni volta come modello?

Penso che abbiate bisogno di un piccolo pulsante, e dopo aver fatto una marcatura, lo premete e lo inviate. Sui ricevitori è lo stesso, se vuoi ottenere un markup, allora premi il secondo pulsante. Totale 2 pulsanti sul grafico, e non c'è nessun costo di risorse per monitorarlo costantemente

 

Come posso limitare il piazzamento degli ordini se c'è sempre una posizione sul mercato dopo aver attivato gli ordini limite?

nel forex, controllavo il numero di ordini - posizioni

if( CalculateBUYPositions()==1)
//// 
 int CalculateBUYPositions()
  {
   int total=0;
//ENUM_ORDER_TYPE   order_type=ORDER_TYPE_BUY;
   for(int i=PositionsTotal()-1;i>=0;i--)
      if(m_position.SelectByIndex(i)) // selects the position by index for further access to its properties
         if(m_position.Symbol()==m_symbol.Name() && m_position.Magic()==m_magic)
                   if(m_position.PositionType()==POSITION_TYPE_BUY)
                  
              {
            total++;
            }
//---
   return(total);
  }
  //

Gli ordini limite devono essere impostati se c'è solo una posizione

Come posso sostituire questa condizione?

 
lil_lil:

Come posso limitare il piazzamento degli ordini se c'è sempre una posizione sul mercato dopo aver attivato gli ordini limite?

nel forex, controllavo il numero di ordini - posizioni

Gli ordini limite devono essere impostati se c'è solo una posizione

come possiamo sostituire questa condizione?

La domanda non è chiara. Lei confonde gli ordini e le posizioni.

Il codice "CalculateBUYPositions()" che hai citato calcola il numero di posizioni BUY.


Per favore, riformuli la sua domanda.

 
Vladimir Karputov:

La domanda non è chiara. Lei confonde gli ordini e le posizioni.

Il codice che hai citato, "CalculateBUYPositions()" calcola il numero di PUNTI DI ACQUISTO.


Riformuli la sua domanda.

Sul forex, se ho una posizione piazzo un ordine limite e gli ordini limite si attivano, il numero di posizioni aumenta e l'EA non piazza più Limiti.

Sul forex, se c'è un limite di posizione e tutti gli ordini limite sono attivati, il numero di posizioni aumenta e non vengono piazzati altri ordini limite. Ho bisogno di un'alternativa uguale alla condizione, -- "se c'è una posizione" CalculateBUYPositions()==1

 
lil_lil:

Sul forex se c'è una posizione piazzo un ordine limite, gli ordini limite si attivano all' aumentare del numero di posizioni, nessun altro limitatore viene piazzato dall'EA.

Sul forex se c'è una posizione l'ordine limite viene attivato il numero di posizioni aumenta e nessun altro ordine limite viene piazzato dall'EA. Ho bisogno di un'alternativa uguale alla condizione, -- "se c'è una posizione" CalculateBUYPositions()==1

No, non lo è. Per chiarire, c'è già una posizione sul simbolo attuale:

  • Sui conti di copertura, una volta che l'ordine pendente scatta, ci sarà UNA posizione in più
  • sui conti di compensazione dopo l'ordine pendente che fa scattare
    • se l'ordine in sospeso era per il simbolo corrente allora:
      • la posizione esistente aumenterà
      • una posizione esistente sarà diminuita
      • una posizione esistente sarà rinnovata
      • la posizione esistente si inverte


Per chiarire la tua domanda: quale tipo di account stai cercando e COSA hai bisogno di tracciare.

 
lil_lil:

Come posso limitare il piazzamento degli ordini se c'è sempre una posizione sul mercato dopo aver attivato gli ordini limite?

nel forex, controllavo il numero di ordini - posizioni

Gli ordini limite devono essere impostati se c'è solo una posizione

Come si può cambiare questa condizione?

Questo può essere determinato dal numero di scambi o dal numero di ordini coinvolti nell'apertura e nella modifica di una posizione. Devi solo selezionare la storia per il biglietto della posizione e controllare il numero. Se c'è una variante che la posizione ha aggiunto volume e poi è stata parzialmente chiusa da un ordine limite opposto o altro, dovremo fare un loop attraverso le transazioni e contare i tipi di accordi come DEAL_ENTRY_IN e/o altri tipi.

Документация по MQL5: Торговые функции / HistorySelectByPosition
Документация по MQL5: Торговые функции / HistorySelectByPosition
  • www.mql5.com
Не следует путать между собой ордера из торговой истории и действующие отложенные ордера, которые отображаются на вкладке "Торговля" в панели "Инструменты". Список ордеров, которые были отменены или привели к проведению торговой операции, можно посмотреть  в закладке "История" на панели "Инструменты" клиентского терминала. Функция...
 
Grazie, confronto il lotto della posizione con il lotto di partenza, se non sono uguali esco.
 

Secondo giorno di rifacimento del robot da MT4 a MT5. Impostazione fatta di ordini pendenti - funziona. Aiuto su MqlTradeRequest:

   else if(orderType==ORDER_TYPE_BUY_STOP)
     {
      request.type =ORDER_TYPE_BUY_STOP;                                // тип ордера
      price        =SymbolInfoDouble(Symbol(),SYMBOL_ASK)+offset*point; // цена для открытия 
      request.price=NormalizeDouble(price,digits);                      // нормализованная цена открытия 
     }
   else if(orderType==ORDER_TYPE_SELL_STOP)
     {
      request.type     =ORDER_TYPE_SELL_STOP;                           // тип ордера
      price=SymbolInfoDouble(Symbol(),SYMBOL_ASK)-offset*point;         // цена для открытия 
      request.price    =NormalizeDouble(price,digits);                  // нормализованная цена открытия 
     }

In entrambi i casi Ask - sembra un errore. Nel secondo caso per SELL_STOP sarebbe meglio usare Bid?

 
STARIJ:

Secondo giorno di rifacimento del robot da MT4 a MT5. Impostazione fatta di ordini pendenti - funziona. Aiuto su MqlTradeRequest:

In entrambi i casi Ask - sembra un errore. Nel secondo caso, Bid sarebbe meglio per SELL_STOP.


SELL si apre con BID e si chiude con ASK