[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 4. - pagina 547

 
Zhunko:

Allora la biblioteca vi aiuterà. Ma aiuterà solo a caricare l'indicatore dall'Expert Advisor. Potete fare i calcoli da soli.

Vedere la sezione biblioteca " 7. FUNZIONI PER IL CONTROLLO DEI PROGRAMMI MQL4".



404

La pagina che hai richiesto non è stata trovata

Prova a usare la ricerca o a trovare le informazioni che ti servono in una delle sezioni di MQL4.com

 

Volevo consolidare il problema del passaggio di parametri tramite un link.

Scrivere un semplice esperto per così dire.

//+------------------------------------------------------------------+
//|                                                        links.mq4 |
//|                                                              hoz |
//|                                                                  |
//+------------------------------------------------------------------+
#property copyright "hoz"
#property link      ""

double firstBarClosed,
       secondsBarClosed;
       
int a = 1;
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+-------------------------------------------------------------------------------------+
//| Получение цены установки отложенного ордера                                         |
//+-------------------------------------------------------------------------------------+
double GetPriceToInput()
{ 
  double firstBarClosed = iClose(Symbol(),1440,2);                          // Цена закрытия предпоследнего дня
  double secondBarClosed = iClose(Symbol(),1440,1);                         // Цена закрытия последнего дня
  
  if(firstBarClosed > secondBarClosed)                                      // Если закрытие вчерашнего дня ниже закрытия предыдущего..
  {                                                                         //.. (линия по ценам закрытий направлена вниз), то..
    double deltaForSell = (firstBarClosed - secondBarClosed)/2;             // Находим дельту изменения цены до 12 часов текущего дня
    double priceForSell = secondBarClosed - deltaForSell;                   // Вычисляем цену продажи
    return(priceForSell);
  }

  if(firstBarClosed < secondBarClosed)                                      // Если закрытие предыдущего днях ниже закрытия вчерашнего..
  {                                                                         //..(линия по ценам закрытий направлена вверх), то..
    double deltaForBuy = (secondBarClosed - firstBarClosed)/2;              // Находим дельту изменения цены до 12 часов текущего дня
    double priceForBuy = secondBarClosed + deltaForBuy;                     // Вычисляем цену покупки
    return(priceForBuy);
  }
}

void Test(double& a, double& b)
      {
         Print("firstBarClosed = ", firstBarClosed);
         Print("secondsBarClosed = ", secondsBarClosed);
      }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
{
   GetPriceToInput();
   
   if(a > 0)
   {
     Test(firstBarClosed, secondsBarClosed);
   }

   return(0);
}
//+------------------------------------------------------------------+

Nel registro, viene costantemente emesso 0. Perché?

Sulla linea:

void Test(double& a, double& b)

Non ho messo "firstBarClosed" e "secondBarClosed" perché sono parametri formali. Questo è già nella funzione di avvio

if(a > 0)
   {
     Test(firstBarClosed, secondsBarClosed);
   }
 
kolospav:

Nuovo conto fatto per metatrader! soldi caricati da Market trader! sul sito web nell'estratto conto - ci sono soldi. Non lo capisco per niente. anche il supporto tecnico è in uno stupore... Cerco di capirlo da solo!


Alcuni DC richiedono una copia del tuo passaporto o qualcosa di simile... Provate ad aprire un conto demo per il bene dell'interesse.
 
gheka:


404

La pagina che hai richiesto non è stata trovata

Prova a usare la ricerca o a trovare le informazioni che ti servono in una delle sezioni di MQL4.com

Corretto il link. Avresti dovuto capirlo da solo. Era un link privato. Avresti dovuto rimuovere il mio.
 
Zhunko:
Corretto il link. Avresti potuto capirlo da solo. Era una cosa privata. Avresti dovuto rimuovere il mio.


Grazie a .
 
gheka:

come fare un indicatore su un grafico (linea) in un EA

Se si esegue nel tester e si seleziona "Visualizzazione", il MA sarà automaticamente visualizzato.
Se hai bisogno di guardare nella modalità corrente, basta mettere la MA sul grafico con i parametri che hai nell'EA. Non saranno in relazione tra loro, ma sarà ovvio
 
Arles:

Puoi darmi un suggerimento? Sto scrivendo righe come questa:

Voglio che High sia contato per MA, non per prezzo. Questo codice non funziona. Ho bisogno di qualcosa di simile a iMAOnArray, solo iHIGHOnArray. Ma per quanto ne so, non esiste una cosa del genere. Aiuto...


La domanda non è molto chiara: "Voglio che High non sia contato per il prezzo". High[] è un valore predefinito, non possiamo cambiarlo, forse vogliamo MA per prezzo High?
 
pu6ka:

La domanda non è molto chiara: "Voglio che High non sia contato per il prezzo". High[] è un valore predefinito, non possiamo cambiarlo. Forse vogliamo la MA per prezzo High?


No, vogliamo sapere il valore massimo del MA stesso per il periodo.
 
Arles:

No, è necessario conoscere il valore massimo dell'AM stesso durante il periodo.
Ora capisco. Molto probabilmente, dobbiamo creare un array per i valori MA e poi un secondo array per memorizzare i valori massimi, o una variabile se è necessario solo l'ultimo valore massimo.
 
pu6ka:
Ora capisco. Molto probabilmente, devi creare un array per i valori MA e poi un secondo array per memorizzare i valori massimi, o una variabile se è necessario solo l'ultimo valore massimo.


Questa è la domanda, non so come fare. Deve essere sotto forma di indicatore, cioè non solo l'ultimo valore.