[АРХИВ] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 3. - страница 536

 
Если в папке Indicators удалить все файлы с расширениями *.ex4
- можно ли потом откомпилировать все имеющиеся *.mq4 в один заход?
(т.е. не каждый по отдельности, а все вместе)
Спасибо!
 
chief2000:
Если в папке Indicators удалить все файлы с расширениями *.ex4
- можно ли потом откомпилировать все имеющиеся *.mq4 в один заход?
(т.е. не каждый по отдельности, а все вместе)
Спасибо!

Терминал закройте, потом откройте и они сами и все компильнутся.
 
fore-x:
Терминал закройте, потом откройте и они сами и все компильнутся.

Это то на что я рассчитывал, но откомпилировалось лишь несколько индикаторов и больше ни в какую.

 

добрый день как написать стандартный советник другого тайфрейма. Т.Е. на график 1 часа повесить этот индикатор, который будет показывать индикатор 4 часов.

пытался //+------------------------------------------------------------------+
//| вв на 4 часах.mq4 |
//| Copyright © 2012, MetaQuotes Software Corp. |
//| https://www.metaquotes.net/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2012, MetaQuotes Software Corp."
#property link "https://www.metaquotes.net/"

#property indicator_chart_window
#property indicator_buffers 3
#property indicator_color1 LightSeaGreen
#property indicator_color2 LightSeaGreen
#property indicator_color3 LightSeaGreen
//---- indicator parameters
extern int BandsPeriod=20;
extern int BandsShift=0;
extern double BandsDeviations=2.0;
//---- buffers
double MovingBuffer[];
double UpperBuffer[];
double LowerBuffer[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicators
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);
//----
return(0);
}
//+------------------------------------------------------------------+
//| Bollinger Bands |
//+------------------------------------------------------------------+
int start()
{
int i,k,counted_bars=IndicatorCounted();
double deviation;
double sum,oldval,newres;
int B=iBars( NULL,PERIOD_H4);
double C=iClose(NULL,PERIOD_H4,0);
//----
if(B <=BandsPeriod) return(0);
//---- initial zero
if(counted_bars<1)
for(i=1;i<=BandsPeriod;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<limit; i++)
MovingBuffer[i]=iMA(NULL,PERIOD_H4,BandsPeriod,BandsShift,MODE_SMA,PRICE_CLOSE,i);
//----
i=B-BandsPeriod+1;
if(counted_bars>BandsPeriod-1) i=B-counted_bars-1;
while(i>=0)
{
sum=0.0;
k=i+BandsPeriod-1;
oldval=MovingBuffer[i];
while(k>=i)
{
newres=C[k]-oldval;
sum+=newres*newres;
k--;
}
deviation=BandsDeviations*MathSqrt(sum/BandsPeriod);
UpperBuffer[i]=oldval+deviation;
LowerBuffer[i]=oldval-deviation;
i--;
}
//----
return(0);
}
//+------------------------------------------------------------------+

не получилось

вот эта сторока newres=C[k]-oldval;- '[' - unexpected token

а индикатор Bollinger Bands.

 
С запуском по времени не получается, пробую с учебника сделать совершение операции по времени, вроде всё правильно но советник не активный, например необходимо запустить функцию в 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;
if (Cur_time==Time_Cls)
//моя функция
return;
}
 
audiomoroz:

С запуском по времени не получается, пробую с учебника сделать совершение операции по времени, вроде всё правильно но советник не активный, например необходимо запустить функцию в 12.00;


if (Cur_time==Time_Cls)
//моя функция
return;
}
Потому что запустить выполнение алгоритма по таймеру или поймать приход тика с точностью до миллисекунды - это разные понятия.
 

Камрады,

У меня тестер стратегий на одном и том же временном промежутке (01.05.2011 - 27.01.2012), валютной паре EURUSD, на часовых барах (Н1), от одного ДЦ (Альпари), и одном и том же советнике, но на разных компьютерах (ноутбук, стационар) выдает противоположные результаты! На ПК -2000 долл., на ноутбуке +3000 долл. И там, и там проверил по 2-3 раза.

Подскажите пожалуйста причину и что делать и/или дайте ссылку где что по теме можно почитать.

 
chief2000:

Это то на что я рассчитывал, но откомпилировалось лишь несколько индикаторов и больше ни в какую.

Надо предварительно удалить файл mqlcache.dat из папки с индикаторами.
 
Zhunko:
Надо предварительно удалить файл mqlcache.dat из папки с индикаторами.

Ваше решение помогло!

Большое Спасибо!

 

Возник такой вопрос -
Можно ли из кода Пользовательского Индикатора узнать активное ли в данный момент окно в котором он запущен или нет?
Например в двух окнах бежит один и тот же Индикатор - необходимо чтобы он работал только в том окне, график которого активен и бездействовал во втором.

Спасибо!