Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 769

 
Vitaly Muzichenko:

Grazie per la risposta, ma come farlo funzionare, non ne ho idea

Proverò un'ultima volta a raggiungere... Non ho un account con tali strumenti indicati nel problema, ma ecco uno script che funziona su forex. Il risultato coincide con i valori che appaiono come suggerimenti in questa schermata

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

FAQ da principianti MQL5 MT5 MetaTrader 5

Vitaly Muzichenko, 2017.07.26 23:56

Ho un lotto di acquisto aperto, e quando imposto il takeprofit, il terminale lo ricalcola in dollari, perché il mio conto è denominato in dollari,

Ma quando lo calcolo usando la formula (close_price-open_price)*Lotti*TickPrice/TickSize, allora il mio importo di takeprofit è calcolato in rubli.

Sul graficoSBRF-9.17

Se dividiamo il rublo per il tasso del dollaro 174,99/USDRUR = $2,93, otterremo il takeprofit in dollari.

Come scriverlo programmaticamente e farlo calcolare da solo?

/********************Script program start function*******************/
void OnStart()
{
 for(int i = 0; i < PositionsTotal(); i++)
  {
   ulong positionTicket = PositionGetTicket(i);
   string positionSymbol = PositionGetString(POSITION_SYMBOL);
   ENUM_POSITION_TYPE positionType = (ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE);
   double positionTP = PositionGetDouble(POSITION_TP);
   double positionOpen = PositionGetDouble(POSITION_PRICE_OPEN);
   double point = SymbolInfoDouble(positionSymbol, SYMBOL_POINT);
   int profitPoint = int(fabs(positionOpen-positionTP)/point);
   double positionProfit = PositionGetDouble(POSITION_PROFIT);
   string symbolCurrencyProfit = SymbolInfoString(positionSymbol, SYMBOL_CURRENCY_PROFIT);
   int currentProfit = positionType == POSITION_TYPE_SELL
    ? int((positionOpen-PositionGetDouble(POSITION_PRICE_CURRENT))/point)
    : int((PositionGetDouble(POSITION_PRICE_CURRENT)-positionOpen)/point);
   Print("PositionSymbol ", positionSymbol);
   Print("SymbolCurrencyProfit ", symbolCurrencyProfit);
   Print("PositionTP ", DoubleToString(positionTP, (int)SymbolInfoInteger(positionSymbol, SYMBOL_DIGITS)));
   Print("PositionOpen ", DoubleToString(positionOpen, (int)SymbolInfoInteger(positionSymbol, SYMBOL_DIGITS)));
   Print("PositionProfit ", DoubleToString(positionProfit, 2));
   Print("ProfitPoint ", profitPoint);
   Print("CurrentProfit ", currentProfit);
   Print("ИТОГО ", positionProfit/currentProfit*profitPoint);
  }
   
}/*******************************************************************/

Ho 2 posizioni aperte. Ecco il risultato dello script

2017.07.27 13:30:48.517 posi (EURUSD,M15)       PositionSymbol EURGBP
2017.07.27 13:30:48.517 posi (EURUSD,M15)       SymbolCurrencyProfit GBP
2017.07.27 13:30:48.517 posi (EURUSD,M15)       PositionTP 0.88697
2017.07.27 13:30:48.517 posi (EURUSD,M15)       PositionOpen 0.89197
2017.07.27 13:30:48.517 posi (EURUSD,M15)       PositionProfit 14.47
2017.07.27 13:30:48.517 posi (EURUSD,M15)       ProfitPoint 500
2017.07.27 13:30:48.517 posi (EURUSD,M15)       CurrentProfit 109
2017.07.27 13:30:48.517 posi (EURUSD,M15)       ИТОГО 66.37614678899082
2017.07.27 13:30:48.517 posi (EURUSD,M15)       PositionSymbol EURJPY
2017.07.27 13:30:48.517 posi (EURUSD,M15)       SymbolCurrencyProfit JPY
2017.07.27 13:30:48.517 posi (EURUSD,M15)       PositionTP 130.940
2017.07.27 13:30:48.517 posi (EURUSD,M15)       PositionOpen 130.440
2017.07.27 13:30:48.517 posi (EURUSD,M15)       PositionProfit -0.90
2017.07.27 13:30:48.517 posi (EURUSD,M15)       ProfitPoint 500
2017.07.27 13:30:48.517 posi (EURUSD,M15)       CurrentProfit -9
2017.07.27 13:30:48.517 posi (EURUSD,M15)       ИТОГО 50.0


MA!!! Sfortunatamente, nel momento in cui la posizione viene chiusa, nessuno potrà mai indovinare quale sarà la quotazione della valuta di profitto a quella di deposito. A questo proposito, è impossibile determinare un valore assolutamente preciso. Beh, non c'è modo di guardare al futuro.

 
Vitaly Muzichenko:

No, per calcolare profitto/perdita prima di aprire una posizione, ma nella valuta del deposito, non dello strumento

Perché avete bisogno di conoscere il profitto/perdita nel vostro caso, non per controllare i rischi? - Ero solo curioso - la valuta del deposito è chiara, anche se non è chiaro in quali condizioni del mondo reale verrebbe utilizzata.
 
Alexey Viktorov:

Cercherò di raggiungere un'ultima volta... Non ho un account con gli strumenti menzionati nel problema, ma ecco uno script che funziona in forex. Il risultato coincide con i valori che appaiono come suggerimento come in questa schermata


Ho 2 posizioni aperte. Ecco il risultato del lavoro dello script


MA!!! Sfortunatamente, nel momento in cui la posizione viene chiusa, nessuno potrà mai indovinare quale sarà la quotazione della valuta di profitto a quella di deposito. A questo proposito, è impossibile determinare un valore assolutamente preciso. Beh, non c'è modo di guardare al futuro.

Ecco cosa ha mostrato lo script:

2017.07.27 18:22:33.684 Seascape (SBRF-9.17,M15)        PositionSymbol SBRF-9.17
2017.07.27 18:22:33.684 Seascape (SBRF-9.17,M15)        SymbolCurrencyProfit RUR
2017.07.27 18:22:33.684 Seascape (SBRF-9.17,M15)        PositionTP 16777
2017.07.27 18:22:33.684 Seascape (SBRF-9.17,M15)        PositionOpen 16677
2017.07.27 18:22:33.684 Seascape (SBRF-9.17,M15)        PositionProfit 1.07
2017.07.27 18:22:33.684 Seascape (SBRF-9.17,M15)        ProfitPoint 100
2017.07.27 18:22:33.684 Seascape (SBRF-9.17,M15)        CurrentProfit 64
2017.07.27 18:22:33.684 Seascape (SBRF-9.17,M15)        ИТОГО 1.671875
 
Vitaly Muzichenko:

Questo è ciò che lo script ha mostrato:

Vitaly, puoi capirlo da solo... Il principio è più semplice di 3 rubli...

PositionGetDouble(POSITION_PROFIT);

Restituisce il profitto della posizione nella valuta del deposito. Se dividiamo questo valore per il numero di punti tra il prezzo di apertura e quello attuale, otteniamo il valore del punto nella valuta di deposito... Resta solo da moltiplicare il valore per il numero di pip dall'apertura al tp ed è tutto... Ma siccome non sono in grado e sono troppo pigro per registrare un nuovo account per questo, dovete capirlo da soli. Ma proprio non sai cosa dovresti ottenere, come puoi sapere se il risultato è corretto o no? Potrebbe essere necessario stampare alcuni valori aggiuntivi per capire. Cosa conta come clausola? Non so, forse bisogna tenerne conto in qualche modo. O la dimensione del contratto standard è in qualche modo presa in considerazione... Non lo so.

 

Come capire il grafico grigio


in modalità immagine normale


 

In MT4 si punta il mouse sul grafico e si può vedere che punto è - ma qui l'immagine è statica - brutto.

 
Come posso tracciare l'ottimizzazione per un indicatore specifico (profitto/perdita/fv)?
 
Ciao a tutti. Ho un problema, ho caricato denaro sul mio conto MQL5 e scaricato l'applicazione MetaTrader 5, ma non riesco a trasferire il denaro per iniziare a fare trading. Ho bisogno di aiuto.
 
Minora125:
Buon pomeriggio a tutti. Ho un problema, ho caricato dei soldi sul mio conto MQL5 e ho anche scaricato l'applicazione MetaTrader 5, ma non riesco a trasferire i soldi per iniziare il trading. Ho bisogno di aiuto.

MQL5 non è una società di brokeraggio, non permette di fare trading su un conto reale. Per i soldi trasferiti puoi usare i servizi: Freelance, Market, Cloud.

Invia la tua richiesta al Service Desk (c'è un link nel tuo profilo) e chiedi un rimborso come denaro trasferito erroneamente.

 

Dopo un passaggio nel tester, un grafico si apre con le compravendite, come faccio a disattivarlo?

Motivazione: