Мультитаймфреймовые индикаторы - страница 474

 
john1368:
Пожалуйста, сделайте этот MTF

Даже если это декомпилированный код, посмотрите эту тему: https: //www.mql5.com/en/forum/179650.

Он наполнен различными реинкарнациями того же индикатора (печально известный Solar wind).

 

Мне нужен индикатор японских свечей mtf

Помогите пожалуйста!

 
nicobo78:
Мне нужен индикатор японских свечей mtf Любая помощь, пожалуйста!

Эта ссылка может помочь вам: Свечной график - Википедия, свободная энциклопедия

Также, вы можете попробовать этот индикатор: custom candles any time frame.mq4

 

Пытаюсь сделать простой тестер стратегии скользящего среднего с тиками H1, но использую МА H4 с помощью кода movingaverage_mtf, предоставленного на этих форумах. Но получаю странные значения скользящего среднего H4. Кто-нибудь может помочь. Я сомневаюсь, что он правильно копирует время бара H4, когда я использую функцию :

ArrayCopySeries(TimeArray,MODE_TIME,Symbol(),420);

Можно ли использовать мультифреймовые индикаторы в тестере стратегий?

 
rickyponting:
Пытаюсь сделать простой тестер стратегии скользящего среднего с тиками H1, но использую H4 MA с помощью кода movingaverage_mtf, предоставленного на этих форумах. Но получаю странные значения скользящего среднего H4. Кто-нибудь может помочь. Я сомневаюсь, что он правильно копирует время бара H4, когда я использую функцию:

ArrayCopySeries(TimeArray,MODE_TIME,Symbol(),420);

Можно ли использовать мультифреймовые индикаторы в тестере стратегий?

Если вы не написали неправильно, то последний параметр в этой строке :

ArrayCopySeries(TimeArray,MODE_TIME,Symbol(),420);

Должно быть 240, а не 420

 
rickyponting:
Пытаюсь сделать простой тестер стратегии скользящего среднего с тиками H1, но использую H4 MA с помощью кода movingaverage_mtf, предоставленного на этих форумах. Но получаю странные значения скользящего среднего H4. Кто-нибудь может помочь. Я сомневаюсь, что он правильно копирует время бара H4, когда я использую функцию:

ArrayCopySeries(TimeArray,MODE_TIME,Symbol(),420);

Можно ли использовать мультифреймовые индикаторы в тестере стратегий?

PS: да, в тестере стратегий можно использовать мультитаймфреймовые индикаторы, но убедитесь, что вы не используете текущий (открытый) бар другого таймфрейма, иначе вы получите фальшивые положительные результаты (тестер стратегий metatrader будет "знать будущее" в этом случае).

 

извините... я использую 240 в коде... но все еще нет результата. Может ли какая-нибудь добрая душа вставить ссылку на код, где в тестере стратегий используется многофреймовая SMA.

 
rickyponting:
Извините... Я использую 240 в коде... но все еще нет результата. Может ли какая-нибудь добрая душа вставить ссылку на код, где многофреймовая SMA используется в тестере стратегий.

Вот простой советник, который использует мультитаймфрейм sma и может быть использован в тестере стратегий (используйте параметр SmaTimeFrame для выбора целевого таймфрейма для sma):

extern int SmaPeriod = 14;

extern int SmaPrice = PRICE_CLOSE;

extern int SmaTimeFrame = 0;

int init() { return(0); }

int deinit() { return(0); }

int start()

{

int smaShift = iBarShift(NULL,SmaTimeFrame,Time[0]);

double smaValue = iMA(NULL,SmaTimeFrame,SmaPeriod,0,MODE_SMA,SmaPrice,smaShift);

Comment(DoubleToStr(smaValue,Digits));

return(0);

}
 

на основе вашего кода я попробовал нижеприведенный код для передачи значений MA различных таймфреймов в массив...но значения MA не передаются в массив...показывает все нули...прошу помощи.

extern int SmaPeriod = 14;

extern int SmaPrice = PRICE_CLOSE;

extern int SmaTimeFrame = 1440;

int init() { return(0); }

int deinit() { return(0); }

int start()

{

int counted_bars, limit, i;

int BarShift[];

double ExtMA[],smaValue;

counted_bars=IndicatorCounted();

limit=Bars-counted_bars;

for(i=0;i<limit;i++)

{

BarShift = iBarShift(NULL,SmaTimeFrame,Time);

ExtMA = iMA(NULL,SmaTimeFrame,SmaPeriod,0,MODE_SMA,SmaPrice,BarShift);

}

return(0)

 
rickyponting:
На основе вашего кода я попробовал нижеприведенный код для передачи значений MA различных таймфреймов в массив... но значения MA не передаются в массив... показывает все нули... пожалуйста, помогите.

extern int SmaPeriod = 14;

extern int SmaPrice = PRICE_CLOSE;

extern int SmaTimeFrame = 1440;

int init() { return(0); }

int deinit() { return(0); }

int start()

{

int counted_bars, limit, i;

int BarShift[];

double ExtMA[],smaValue;

counted_bars=IndicatorCounted();

limit=Bars-counted_bars;

for(i=0;i<limit;i++)

{

BarShift = iBarShift(NULL,SmaTimeFrame,Time);

ExtMA = iMA(NULL,SmaTimeFrame,SmaPeriod,0,MODE_SMA,SmaPrice,BarShift);

}

return(0)

Я отвечу вопросом на вопрос: каков размер ваших массивов?

Вы никогда не инициализировали массивы, поэтому у вас нулевой размер массивов. Убедитесь, что ваши массивы имеют правильный размер. Кроме того, IndicatorCounted() не работает в советниках. Вы должны получить это значение другим способом (одним из способов может быть проверка значения встроенной переменной Bars и сравнение его с каким-либо сохраненным значением в вашем советнике).

Причина обращения: