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

 
ponochka:
Onitit e ontick sono stati aggiunti! Nessun cambiamento

si può finire nei guai per le richieste ontick ;-) cioè essere bannati e messi nella lista nera

Stampare la diagnostica a return(false) - sarà più chiaro cosa c'è di sbagliato.

 
Maxim Kuznetsov:

Puoi metterti nei guai per le richieste di OnTick ;-) cioè entrare nei divieti e nelle blacklist.

Stampare la diagnostica per return(false) - renderà più chiaro ciò che è sbagliato.

Cosa devo scrivere in Print per capire cosa c'è che non va? 0_o

se scrivete Print(response); dà fuori: 13369448

 
ponochka:

Cosa devo scrivere in Print per capire cosa c'è che non va? 0_o

se scrivete Print(response); dà fuori: 13369448

if (response == 0) {

   Print("Что-то пошло не так");

  // потом уже добавите диагностику из WinAPI

   return false;

}

e prima del ritorno normale, stampare anche il risultato

Print(" всё хорошо, результат:" toStr);

return toStr;

ed eseguire l'intero codice in un timer, ad esempio una volta al minuto. Fai pratica su una risorsa che è sicura di non essere bannata e dà tempi diversi ma prevedibili, in modo da poter controllare.

----
telepaticamente - se c'è davvero un problema,
o l'inizializzazione è sbagliata (non ricordo se WinSOCK deve essere inizializzato per InternetOpenW o no)
O qualche risorsa non viene liberata.

 
Artyom Trishkin:

Esaminare il contenuto della cartella Include

Quindi è tutto lì? L'ho aperto e ho guardato i calcoli, che sono abbastanza complicati per me.

 
Seric29:

Quindi è tutto lì? L'ho aperto e ho guardato i calcoli, che sono abbastanza complicati per me.

Volevamo fare meglio :)

Forum per il trading, sistemi di trading automatico e test di strategia

Tutte le domande dei neofiti su MQL4, aiuto e discussione su algoritmi e codici

Seric29, 2019.03.26 23:32

Come posso vedere il codice sorgente/librerie delle funzioni fornite con MQL4? Mi piacerebbe guardare le loro proprietà e fare simili o migliori, chissà cosa su questo argomento?

 
Come posso usare ArrayResize per cambiare la dimensione di un array multidimensionale? Solo esempi standard su array unidimensionali
 
Alexandr Sokolov:
Come posso usare ArrayResize per cambiare la dimensione di un array multidimensionale? È solo che gli esempi standard usano solo array monodimensionali.

Potete cambiare solo la dimensione della prima dimensione di un array multidimensionale. Questo è esattamente lo stesso che per un array unidimensionale.

L'array deve essere dinamico in questo caso.

 
Artyom Trishkin:

Potete cambiare solo la dimensione della prima dimensione di un array multidimensionale. È esattamente lo stesso che per un array unidimensionale.

L'array deve essere dinamico in questo caso.

Grazie!

 

Buona giornata a tutti voi!

Ho perso due ore, ma non ho trovato nulla.

Per favore ditemi come in mq4, nell'EA, in modo intelligente

costruire un indicatore su un altro usando le funzioni integrate

e dovrebbe essere visualizzato nei test nella sottofinestra come dovrebbe essere,

per esempio MA su dati RSI?

 
Northwest:

Per esempio MA su dati RSI ?

#property copyright "IgorM"
#property link      "https://www.mql5.com/ru/users/igorm"
#property version   "1.00"
#property strict
#property indicator_separate_window
#property indicator_buffers 2
#property indicator_plots   2
//--- plot line1
#property indicator_label1  "RSI"
#property indicator_type1   DRAW_LINE
#property indicator_color1  clrRed
#property indicator_style1  STYLE_SOLID
#property indicator_width1  1

#property indicator_label2  "MA"
#property indicator_type2   DRAW_LINE
#property indicator_color2  clrYellow
#property indicator_style2  STYLE_SOLID
#property indicator_width2  1
//--- input parameters
input int      PeriodRSI   =  10;
input int      PeriodMA    =  12;
//--- indicator buffers
double         rsiBuffer[],maBuffer[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   SetIndexBuffer(0,rsiBuffer);
   SetIndexBuffer(1,maBuffer);
   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[])
  {
//---
   int i,limit;
   if(prev_calculated==0) limit=rates_total-1; else limit=rates_total-prev_calculated+1;
   for(i=limit; i>=0; i--)
     {
      rsiBuffer[i]=iRSI(NULL,0,PeriodRSI,PRICE_CLOSE,i);
     }
   for(i=limit; i>=0; i--)
     {
      maBuffer[i]=iMAOnArray(rsiBuffer,0,PeriodMA,0,MODE_SMA,i);
     }
  
   return(rates_total);
  }
//+------------------------------------------------------------------+
Motivazione: