Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 338

 

Qualcuno può consigliare perché il mio indicatore viene visualizzato nei test e rimane nella finestra dell'indicatore dopo che i test sono finiti, ma se lo chiamo attraverso iCustom in un Expert Advisor, l'indicatore non viene visualizzato?

//+------------------------------------------------------------------+
//|                                             Tiscks_Window_49.mq4 |
#property version   "1.00"
#property strict

#property indicator_separate_window
#property indicator_buffers 1
#property  indicator_color1 clrLawnGreen

double ExtMapBuffer1[];
int Draw_Bars;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   IndicatorShortName("Ask");
   IndicatorDigits(5);
   SetIndexStyle(0,DRAW_LINE);
   SetIndexBuffer(0,ExtMapBuffer1);
   SetIndexLabel(0,"Ask");
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
//---
   ExtMapBuffer1[0]=MarketInfo(Symbol(),MODE_ASK);
   for(int i=Bars-2; i>=0; i --)
     {
      ExtMapBuffer1[i+1]=ExtMapBuffer1[i];
     }
   return(rates_total);
  }
//+------------------------------------------------------------------+


Forse non lo chiamo correttamente in iCustom?

//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   double sep_window=iCustom(Symbol(),PERIOD_CURRENT,"Tiscks_Window_49",0,0);
   Print(" sep_window= ",sep_window);
  }
//+------------------------------------------------------------------+
 
Nauris Zukas:

Qualcuno può consigliare perché il mio indicatore viene visualizzato nei test e rimane nella finestra dell'indicatore dopo che i test sono finiti, ma se lo chiamo attraverso iCustom in un Expert Advisor, l'indicatore non viene visualizzato?
Forse non lo chiamo correttamente in iCustom?

Hai capito bene. Provatelo con altri indicatori - sarà lo stesso.

 
Nauris Zukas:

Qualcuno può dirmi perché il mio indicatore viene mostrato nei test e rimane nella finestra dell'indicatore dopo che i test sono finiti, ma se lo chiamo attraverso iCustom nell'Expert Advisor, l'indicatore non viene mostrato?


Forse non lo chiamo correttamente in iCustom?

ExtMapBuffer1[0]=MarketInfo(Symbol(),MODE_ASK);

cercare di metterlo semplicemente =chiedere;
oppure, per controllare close[0]

e qui, perché avete bisogno di spostare l'intera storia? le prime 100-300 barre sono sufficienti

for(int i=Bars-2; i>=0; i --)
 
LRA:

È tutto a posto. Prova con altri indicatori - sarà lo stesso...

Provato RSI, tutto funziona. C'è una sfumatura da qualche parte, non so ancora dove.


 
Taras Slobodyanik:

provare solo =Chiedere;
o per controllare close[0]

e qui, perché vuoi spostare tutta la storia? Le prime 100-300 barre sono sufficienti.

L'ho cambiato, ma non serve a niente.

 
Nauris Zukas:

Qualcuno può consigliare perché il mio indicatore viene visualizzato nei test e rimane nella finestra dell'indicatore dopo che i test sono finiti, ma se lo chiamo attraverso iCustom in un Expert Advisor, l'indicatore non viene visualizzato?


Forse non lo chiamo correttamente in iCustom?

Forse, è perché l'indicatore è scritto così. Qual è la probabilità che semplicemente non abbia abbastanza tempo per ricalcolare tutte le barre quando viene chiamato dall'Expert Advisor?

Prova a ricalcolare tutte le barre solo una volta, e poi solo una nuova chiamata dall'Expert Advisor.
 
Alexey Viktorov:

Qual è la probabilità che non abbia il tempo di ricalcolare tutte le barre quando lo chiamo dall'Expert Advisor?

Stampo Print in Expert Advisor e mostra che i prezzi ci sono, il che significa che le barre sono state ricalcolate.

Alexey Viktorov:
Prova a ricalcolare tutte le barre solo una volta e poi solo una nuova chiamata dall'EA.

Non ho ancora testato questa variante, sto ancora pensando a come farlo.

 

Buon pomeriggio, faccio i miei primi passi, ho letto il tutorial ecc, forse ho sbagliato la domanda, ma ancora.....

Se voglio ottenere un archivio di zecche per gli ultimi due anni, potrei averne bisogno per un periodo di tempo più lungo per analizzarlo in un'applicazione di terzi. Se non mi sbaglio, ma Bars contiene solo i dati attuali del grafico, grazie.

 
ijonhson:

Buon pomeriggio, faccio i miei primi passi, ho letto il tutorial ecc, forse ho sbagliato la domanda, ma ancora.....

Se voglio ottenere un archivio di zecche per gli ultimi due anni, potrei averne bisogno per un periodo di tempo più lungo per analizzarlo in un'applicazione di terzi. Se non mi sbaglio, ma Bars contiene solo i dati attuali del grafico, grazie.

Se non sapete come usare questi registri, non cercate di sovrascriverli con quelli veri. Google vi aiuterà.

 

Ciao Artiom, potresti per favore dirmi come scrivere un EA in modo che non apra gli ordini fino a quando il prezzo non ha superato un certo livello e poi continui ad aprire gli ordini anche dopo che il prezzo è tornato sopra il livello? Saluti Andrei.

Motivazione: