[ARCHIVIO] Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 3. - pagina 536

 
Se cancelli tutti i file con estensione *.ex4 nella cartella Indicators
- posso quindi compilare tutti i file *.mq4 disponibili in una sola volta?
(Cioè, non ciascuno separatamente, ma tutti insieme)
Grazie!
 
chief2000:
Se cancelli tutti i file con estensione *.ex4 nella cartella Indicators
- posso quindi compilare tutti i file *.mq4 disponibili in una sola volta?
(Cioè, non ciascuno separatamente, ma tutti insieme)
Grazie!

Chiudete il terminale, poi apritelo e si compileranno tutti da soli.
 
fore-x:
Chiudete il terminale, poi apritelo e si compilerà da solo.

Questo è quello su cui contavo, ma solo alcuni indicatori compilati e nient'altro.

 

Buon pomeriggio come scrivere un consulente standard per un altro periodo di tempo. Cioè mettere questo indicatore sul grafico a 1 ora che mostrerà l'indicatore a 4 ore.

пытался //+------------------------------------------------------------------+
//| a ore 4.mq4 |
//| Copyright © 2012, MetaQuotes Software Corp.
//| https://www.metaquotes.net/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2012, MetaQuotes Software Corp."
#proprietà link "https://www.metaquotes.net/"

#proprietà indicator_chart_window
#proprietà indicator_buffers 3
#property indicator_color1 LightSeaGreen
#property indicator_color2 LightSeaGreen
#property indicator_color3 LightSeaGreen
//---- parametri dell'indicatore
extern int BandsPeriod=20;
extern inttern BandsShift=0;
extern double BandsDeviations=2.0;
//---- buffer
doppio MovingBuffer[];
doppio UpperBuffer[];
doppio LowerBuffer[];
//+------------------------------------------------------------------+
//| funzione di inizializzazione dell'indicatore personalizzato
//+------------------------------------------------------------------+
int init()
{
//---- indicatori
SetIndexStyle(0,DRAW_LINE);
SetIndexBuffer(0,MovingBuffer);
SetIndexStyle(1,DRAW_LINE);
SetIndexBuffer(1,UpperBuffer);
SetIndexStyle(2,DRAW_LINE);
SetIndexBuffer(2,LowerBuffer);
//----
SetIndexDrawBegin(0,BandsPeriod+BandsShift);
SetIndexDrawBegin(1,BandsPeriod+BandsShift);
SetIndexDrawBegin(2,BandsPeriod+BandsShift);
//----
ritorno(0);
}
//+------------------------------------------------------------------+
//| Bande di Bollinger
//+------------------------------------------------------------------+
int start()
{
int i,k,counted_bars=IndicatorCounted();
doppia deviazione;
doppia somma, oldval, newres;
int B=iBars( NULL,PERIOD_H4);
double C=iClose(NULL,PERIOD_H4,0);
//----
if(B <=BandsPeriod) return(0);
//---- zero iniziale
se(barre contate<1)
for(i=1;i<=BandePeriodo;i++)
{
MovingBuffer[B-i]=EMPTY_VALUE;
UpperBuffer[B-i]=EMPTY_VALUE;
LowerBuffer[B-i]=EMPTY_VALUE;
}
//----
int limit=B-counted_bars;
if(counted_bars>0) limit++;
for(i=0; i<limite; i++)
MovingBuffer[i]=iMA(NULL,PERIOD_H4,BandsPeriod,BandsShift,MODE_SMA,PRICE_CLOSE,i);
//----
i=BandePeriodo+1;
if(counted_bars>BandsPeriod-1) i=B-counted_bars-1;
mentre(i>=0)
{
sum=0.0;
k=i+BandePeriodo-1;
oldval=MovingBuffer[i];
mentre(k>=i)
{
newres=C[k]-oldval;
sum+=newres*newres;
k--;
}
deviazione=BandsDeviations*MathSqrt(sum/BandsPeriod);
UpperBuffer[i]=oldval+deviazione;
LowerBuffer[i]=oldval-deviation;
i--;
}
//----
ritorno(0);
}
//+------------------------------------------------------------------+

non ha funzionato

questo lato newres=C[k]-oldval;- '[' - token inaspettato

L'indicatore Bande di Bollinger.

 
Ho provato a utilizzare il tutorial per fare un'operazione in base al tempo, tutto sembra essere corretto, ma l'Expert Advisor non è attivo, per esempio, ho bisogno di eseguire la funzione alle 12.00

extern double Time_Cls=12.00;

int start()
{
int Cur_Hour=Hour();
double Cur_Min =Minute();
double Cur_time=Cur_Hour + Cur_Min100;
se (Cur_time==Time_Cls)
//funzione mia
ritorno;
}
 
audiomoroz:

Sto cercando di fare un'operazione a tempo dal tutorial, e tutto sembra corretto, ma l'Expert Advisor non è attivo, per esempio la funzione dovrebbe essere avviata alle 12.00;


se (Cur_time==Time_Cls)
//funzione mia
ritorno;
}
Perché innescare l'esecuzione di un algoritmo tramite timer o catturare l'arrivo di un tick con precisione al millisecondo sono concetti diversi.
 

Compagni,

Il mio tester di strategia sullo stesso intervallo di tempo (01.05.2011 - 27.01.2012), la coppia di valute EURUSD, su barre orarie (H1), da una società di brokeraggio (Alpari) e lo stesso Expert Advisor, ma su computer diversi (laptop, desktop) mostra risultati opposti! Sul PC - 2000 dollari, sul portatile +3000. E lì, e lì testato per 2-3 volte.

Si prega di consigliare la causa e cosa fare e / o darmi un link dove che sul tema può essere letto.

 
chief2000:

Questo è quello che speravo, ma ha compilato solo alcuni indicatori e nient'altro.

È necessario cancellare prima il file mqlcache.dat dalla cartella con gli indicatori.
 
Zhunko:
Devi prima cancellare il file mqlcache.dat dalla cartella con gli indicatori.

La tua soluzione ha funzionato!

Grazie mille!

 

Ho una domanda -
È possibile sapere dal codice dell'indicatore personalizzato se la finestra in cui è in esecuzione è attualmente attiva o no?
Per esempio, lo stesso indicatore è in esecuzione in due finestre - avete bisogno che funzioni solo nella finestra che il grafico è attivo e inattivo nella seconda finestra.

Grazie!