Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 876

 
Vitaly Muzichenko:

Purtroppo non ho trovato l'articolo, forse qualcun altro può suggerirlo.

Non sarai in grado di impostare gli ordini perché non sarai in grado di inserire il giusto prezzo di impostazione. Lo stesso vale per i lotti.

Ho impostato con il mouse.

  • Clicca sopra il prezzo+Ctrl - Limite di vendita
  • Clicca sotto il prezzo+Ctrl -Acquista limite
  • Clicca sopra il prezzo+Ctrl+Shift - Acquista Stop
  • Clicca sotto il prezzo+Ctrl+Shift - Vendi Stop
Puoi anche spostare BuyStopLimit e SellStopLimit
 
Artyom Trishkin:

Scommetto con il mouse.

  • Clicca sopra il prezzo+Ctrl - Limite di vendita
  • Clicca sotto il prezzo+Ctrl -Acquista limite
  • Clicca sopra il prezzo+Ctrl+Shift - Acquista Stop
  • Clicca sotto il prezzo+Ctrl+Shift - Vendi Stop
Potete anche mettere BuyStopLimit e SellStopLimit con lo shifft

Il pannello di controllo di questo articolo https://www.mql5.com/ru/articles/62 funzionerà nel tester (solo pulsanti)?

Создание активных панелей управления на MQL5 для торговли
Создание активных панелей управления на MQL5 для торговли
  • 2010.04.15
  • Евгений
  • www.mql5.com
Удобство имеет большое значение в работе, а тем более в работе трейдера, где скорость и точность решают многое. При подготовке терминала к работе каждый настраивает своё рабочее место максимально комфортно для себя, чтобы в максимально короткий срок можно было совершить анализ и войти в рынок. Но реальность такова, что разработчики не могут...
 
Sergey Savinkin:

Il pannello di controllo di questo articolo https://www.mql5.com/ru/articles/62 funzionerà nel tester (solo pulsanti)?

Allora prova - cosa lo ferma?

Ho appena scritto come ho messo io stesso gli ordini pendenti nel visualizzatore.

 
Artyom Trishkin:

Allora provaci - cosa ti ferma?

Ho semplicemente scritto come ho impostato gli ordini pendenti nel visualizzatore.

Lo sto provando ora. Non volevo perdere tempo, non ho bisogno del pannello nel funzionamento del robot, mi serve solo per un test. Pertanto, non avevo intenzione di studiare l'argomento in dettaglio.

 
Buon articolo, ma l'eventoOnChartEvent() non viene chiamato nel tester, i pulsanti non funzionano. Ho trovato la soluzione sul forum https://www.mql5.com/ru/forum/42817/page2
Использование переменных в событии OnChartEvent индикатора в тестере
Использование переменных в событии OnChartEvent индикатора в тестере
  • 2016.02.25
  • www.mql5.com
При тестировании в эксперте можно обрабатывать пользовательские события с помощью функции OnChartEvent(), но в индикаторах эта функция в тестере не вызывается.
 

Potete dirmi perché quando cambio il codice qui sotto da close[i-1] a close[i-2] si verifica l'Array of Range? Il codice è stato scritto seguendo rigorosamente il libro MQL5, ma non spiega perché il buffer viene superato quando il prezzo viene spostato di più di 2 celle.

  {
   int values_to_copy;
   int start;
   int calculated=BarsCalculated (iBands1_handle);

   
   if (calculated <=0)
   {
    return (0);
   }
   if (prev_calculated==0 || calculated!=bars_calculated)
   {
    start=1;
    if (calculated> rates_total) values_to_copy=rates_total;
    else values_to_copy=calculated;
    }
    else
    {
   start=rates_total-1;
   values_to_copy=1;
   }
   
   if(!FillArrayFrom_iBands1_handleBuffer(Base,Upper,Lower,iBands1_handle,values_to_copy)) return(0);

   for (int i=start; i <rates_total &&!IsStopped ();i++)
   {
    Print("C ", close[i-2]);
   }
 
clickaider:

Potete dirmi perché quando cambio il codice qui sotto da close[i-1] a close[i-2] si verifica l'Array of Range? Il codice è stato scritto seguendo rigorosamente il libro MQL5, ma non descrive perché il ritiro dal buffer avviene quando il prezzo è spostato di più di 2 celle.

Per quanto ho capito, stiamo parlando di un indicatore. Quindi, considerate due casi di accesso a una serie temporale di array"chiusa": (1) cosa succede quando"start" è uguale a "1" e (2) cosa succede quando"start" è uguale a "rates_total-1".

Calcolate nella vostra mente l'indice dell'array"close" risultante se provate a fare "close[i-2]" per il caso (1) e per il caso (2).

 
Vladimir Karputov:

Capisco che stiamo parlando di un indicatore. Quindi, consideriamo due casi di accesso all'array di serie temporali"vicine": (1) cosa succede quando"start" è uguale a "1" e (2) cosa succede quando"start" è uguale a "rates_total-1".

Calcolate nella vostra mente l'indice dell'array"close" risultante se provate a fare "close[i-2]" per il caso (1) e per il caso (2).

Grazie, ho controllato, c'era bisogno di mettere un numero maggiore di 1 nel valore start = 1, il debug ha mostrato che l'errore si verifica quando l'array close cerca di prendere un valore da una cella che non è ancora apparsa all'inizio del ricalcolo.

 
Vorrei creare un array bidimensionale con i tempi di apertura e chiusura e la lunghezza delle candele, e sarebbe molto interessante. Voglio creare un EA basato su questo esempio usando la matematica superiore, cioè l'integrale triplo. assumiamo che x e y conoscano il prezzo e il tempo, troviamo z - in questo caso lo faccio io.
 
Un'altra domanda - se questo codice imposta la condizione che il prezzo di chiusura sarà superiore alla linea (supponiamo che questa condizione sia effettivamente prima dell'inizio del programma), il codice funziona come dovrebbe essere ma se aggiungiamo una condizione inversa, cioè diverse condizioni attuali prima dell'inizio del codice, i dati non saranno corretti dopo il debug. Per favore, consigliatemi perché succede? Dopo tutto, questo è solo un confronto in una dichiarazione di condizione, perché dovrebbe avere qualche effetto negativo sulle prestazioni del codice?
   for (int i = start; i < rates_total &&!IsStopped ();i++)
   {
    if(close[i] > Upper[i])
    Print("C ", close[i]);
    
Esempio: se
if(close[i] < Upper[i])

Il risultato del debug è il seguente:

I dati vanno correttamente, aggiornandosi alla stessa velocità con cui si aggiorna il prezzo

Ma se inizialmente impostiamo una tale condizione:

if(close[i] > Upper[i])

Allora il risultato sarà errato:

Cioè, i valori dei prezzi di chiusura non coincidono con il prezzo corrente


Non riesco a capire perché succede così.

Blocco di codice di base nel post