Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 635

 

Aiuto, per favore. Cosa c'è di sbagliato qui?

 double buy_OrderProfit = 0;
 double sell_OrderProfit = 0;
 double buy_Order_price  = 0;
 double sell_Order_price = 0;
 
  double Drop_proc1 =AccountEquity();
  double Drop_proc2 =AccountBalance();
  double Drop_proc3 =(Drop_proc1*100)/Drop_proc2;
  
  if (Drop_procK <= Drop_proc3)
  {
  for(int i=OrdersTotal()-1; i>=0; i--)
       if ((OrderSelect(i,SELECT_BY_POS,MODE_TRADES))&& (OrderSymbol()==Symbol() && OrderMagicNumber()==Magic))
            if((OrderType()==OP_SELL) sell_OrderProfit + OrderProfit())
                 if((OrderType()==OP_BUY)  buy_OrderProfit + OrderProfit()) 

  for (int i=OrdersTotal()-1; i>=0; i--)
        if ((OrderSelect(i,SELECT_BY_POS,MODE_TRADES))&& (OrderSymbol()==Symbol() && OrderMagicNumber()==Magic))
             if ((OrderType()==OP_BUY ) && ( buy_OrderProfit < sell_OrderProfit ) )     
                  OrderClose (OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_BID),slippage);
                    if ((OrderType()==OP_SELL) && sell_OrderProfit < buy_OrderProfit )
                         OrderClose (OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_ASK),slippage);  
        } 
   else 1=1;

errore 'if' - le espressioni non sono permesse in un ambito globale v.4.1.5(2).mq4 793 3



 
new-rena:

Signori!

Come posso sapere se il mercato è chiuso o meno durante l'inizializzazione di un Expert Advisor MQL4? (quale comando?)

Non esiste un comando simile. Puoi provare a piazzare un ordine pendente a lungo raggio e poi cancellarlo se lo fa.
 
Kisolen:

Aiuto, per favore. Cosa c'è di sbagliato qui?

Una condizione if può essere solo all'interno di una funzione.
 
Sergei Vladimirov:
La condizione if può essere solo all'interno di una funzione.
Grazie per aver risposto. Questo codice è dentro la funzione void OnTick(), dentro le parentesi graffe. È molto in alto, mi scuso per non averlo copiato. È così che lo capisco? Questa è una funzione, giusto? E c'è ancora un errore.
 
Kisolen:
Grazie per aver risposto. Questo codice è dentro la funzione void OnTick(), dentro le parentesi graffe. È molto in alto, scusate se non l'ho copiato. È così che lo capisco? Questa è una funzione, giusto? E c'è ancora un errore.
Il compilatore scrive che if è nello scope globale. Forse è solo uno squilibrio di parentesi, controllate (non è sorprendente, comunque, con questo stile di codice).
 
Vitaly Muzichenko:

Prova questo, sembrava funzionare una volta, ma non l'ho usato:

Il tuo codice non funziona, perché l'ora corrente è determinata da TimeCurrent(), e restituisce l'ora dell'ultima citazione, e la tua funzione restituirà sempre true. Si può fare lo stesso con TimeLocal(), tenendo conto della differenza di fuso orario tra computer e server, ma questo non garantisce il risultato corretto: l'orologio del computer potrebbe essere sbagliato, e potrebbe non riempire il tempo di sessione sul server, e nei giorni festivi (Capodanno), nessuno sa cosa verrà restituito... E non esiste una funzione semplice e affidabile come MarketIsClosed() in µl.
 
Sergei Vladimirov:
Non esiste un comando simile. Potresti provare a piazzare un ordine pendente a lungo raggio e poi cancellarlo se lo fa.

Sì, una buona opzione. Il team restituirà un errore "Il mercato è chiuso".

È stato risolto.

Grazie!

 

Buon pomeriggio a tutti.

Si prega di consigliare quale modo di scavare, o se è possibile un pezzo di codice per un esempio :)

Ho bisogno di quanto segue:

Ho Expert Advisor e indicatore sul grafico. Come cambiare i parametri dell'indicatore con Expert Advisor?

Grazie in anticipo per le risposte.

 
GrRusel:

Buon pomeriggio a tutti.

Si prega di consigliare quale modo di scavare, o se è possibile un pezzo di codice per un esempio :)

Ho bisogno di quanto segue:

Ho Expert Advisor e indicatore sul grafico. Come cambiare i parametri dell'indicatore con Expert Advisor?

Grazie in anticipo per le risposte.

Non cambierai visivamente le impostazioni dell'indicatore, ma quando leggi i dati nell'Expert Advisor attraverso iCustom dall'indicatore, puoi impostare i parametri che vengono ricevuti dall'Expert Advisor da questo indicatore. Oppure potete usare le variabili globali, se insegnate all'indicatore ad usarle.
 
Vladimir Zubov:
Non cambierai visivamente le impostazioni dell'indicatore, ma quando leggi i dati nell'Expert Advisor attraverso iCustom dall'indicatore, puoi impostare i parametri che vengono ricevuti dall'Expert Advisor da questo indicatore. Oppure potete usare le variabili globali, se insegnate all'indicatore ad usarle.
Faccio tutto tramite icustom, ma quando cambio le impostazioni dell'indicatore, voglio che l'indicatore cambi le sue impostazioni di visualizzazione - per esempio, ho cambiato le zone OBOS. Ho deciso di cambiare le zone OBOS, forse dovrei rimuoverlo dal grafico e poi aggiungerlo con le nuove impostazioni, ma deve essere fatto attraverso Expert Advisor. Non c'è nessuno che ha incontrato un problema simile e ogni volta cambia tutto a mano - non può essere...
Motivazione: