Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 1048

 

Qui ha anche scritto le stampe



Ha fatto una voce, forse questo aiuteràhttp://recordit.co/ot9m4jpiws

 
Roman Sharanov:

Qui ha anche scritto le stampe


Il basso sulla richiesta di modifica è in realtà non cambiare i livelli che già esistono.
 
Vladimir Karputov:
Non posso eseguire una richiesta di modifica senza cambiare effettivamente i livelli già esistenti.

Cosa sta causando l'errore? Che sto cercando di mettere il vecchio stop (zero in questo caso) nello stop.

Ho aggiunto un controllo sul record, se la stessa ripresa è la stessa, allora nessun trasferimento è fatto...ma ancora lo stesso

O devo normalizzare il tee, altrimenti non controlla?

 
Roman Sharanov:

Cosa sta causando l'errore? Che sto cercando di mettere il vecchio stop (zero in questo caso) nello stop.

Ho aggiunto un controllo sul record, se la stessa ripresa è la stessa, allora nessun trasferimento è fatto...ma ancora lo stesso

O devo normalizzare il TP, altrimenti non controlla?

La posizione aveva queste fermate: un'anguria e tre meloni. Volete cambiare le fermate e, attenzione, mandate un ordine: un'anguria e tre meloni.

Cioè, in realtà non c'è nessun cambiamento nelle fermate.
 
Vladimir Karputov:
La posizione aveva queste fermate: un'anguria e tre meloni. Volete cambiare le fermate e, attenzione, mandate un ordine: un'anguria e tre meloni.

Quindi non c'è effettivamente nessun cambiamento nelle fermate.

Capisco. Allora come faccio a cambiare il take profit senza cambiare il livello di stop?

 
Roman Sharanov:

Capito. Allora come faccio a cambiare il take profit senza cambiare il livello di stop?

Tu non capisci niente. Leggete di cocomeri e meloni fino a quando non diventa chiaro.
 
Vladimir Karputov:
Tu non capisci niente. Leggi di cocomeri e meloni fino a quando non è chiaro.

Facciamo astrazione dal fatto che ho

Ho una posizione, la sua presa al livello 5, la sua entrata al livello 3, il suo stop al livello 2

Voglio spostare la ripresa al livello 6.

Come si fa?

 
Roman Sharanov:

Facciamo astrazione dal fatto che ho

Ho una posizione, la sua presa al livello 5, la sua entrata al livello 3, il suo stop al livello 2

Voglio spostare la ripresa al livello 6.

Come si fa?

Codice completo. Simbolo. Tempo. Data di inizio del test. Grafico (screenshot). File di log della scheda "Log".
Questo è il minimo.
Aspetto fino a domani.
 

Forum sul trading, sistemi di trading automatico e test di strategia

FAQ da principianti MQL5 MT5 MetaTrader 5

Roman Sharanov, 2019.05.23 09:43

void transposeTakeProfit(double tpLvl){
        for(int i = PositionsTotal() - 1; i >= 0; i--){
        PositionSelectByTicket(PositionGetTicket(i));
        if(PositionGetString(POSITION_SYMBOL) == _Symbol && PositionGetInteger(POSITION_MAGIC) == _magic){
                trade.PositionModify(PositionGetTicket(i), PositionGetDouble(POSITION_SL), tpLvl);
        }
   }
}

Bene, qui succede, si apre un trade, il livello al quale devo spostare tutto il take profit, se ci sono altri trade

Ma questo è il primo commercio, va direttamente in questa funzione e subito un errore


PositionSelectByTicket non è assolutamente necessario qui. È sufficiente lasciare quello selezionato.

Per evitare di provare a piazzare uno stop o un take al prezzo in cui è già stato piazzato, dobbiamo controllare se il nuovo stop o take è uguale a quello vecchio.

E dobbiamo capire quanti spread sono il livello minimo per piazzare uno stop.

 

Ciao a tutti. Per favore, ditemi cosa diavolo sta succedendo.

Sto scrivendo del codice in mql5, voglio usare la funzione PositionClose, ma dice "Man! PositionClose' - la funzione può essere dichiarata solo nell'ambito globale".

Ero come, voglio dire che questa stessa funzione è in #include <Trade\Trade.mqh> di default.


Controllato. È lì.

Perché si mette in mostra, di cosa ha bisogno, come chiudere la posizione?


Il codice stesso


string bumaga1 = "SBERP";
 int MinuteClose;
 
//---------- Закрываем позиции и удаляем ордера перед концом сессии старт
 MinuteClose =  MinuteMQL4();
 
 if (PositionSelect(bumaga1) && HOUR1 == 18 && MinuteClose > 15)
 {
                bool  PositionClose(bumaga1, 3);
 }
 
  if (!PositionSelect(bumaga1) && HOUR1 == 18)
  {
                                bool  OrderDelete(tik1);
   }
   
//---------- Закрываем позиции и удаляем ордера перед концом сессии энд