Cоветник на основе MACD и Stochastic

 

Пишу советника на основе MACD и Stochastic. Торгуем на 30 минутках. Как получить значения MACD на дневках?

Или м.б. по другому тренд определять?

Пробовал так не работает:

MacdCurrent=iMACD(NULL,0,15,26,9,PERIOD_D1,MODE_MAIN,1);// 1 бар
MacdPrevious=iMACD(NULL,0,15,26,9,PERIOD_D1,MODE_MAIN,2);// 0 бар
SignalCurrent=iMACD(NULL,0,15,26,9,PERIOD_D1,MODE_SIGNAL,1);// 1 бар
SignalPrevious=iMACD(NULL,0,15,26,9,PERIOD_D1,MODE_SIGNAL,2); // 0 бар

Только так работает:

// Торговые критерии

M_0 = iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_MAIN, 0);// 0 бар
M_1 = iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_MAIN, 1);// 1 бар
S_0 = iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_SIGNAL,0);// 0 бар
S_1 = iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_SIGNAL,1);// 1 бар

MacdCurrent=iMACD(NULL,0,15,26,9,PRICE_CLOSE,MODE_MAIN,1);// 1 бар
MacdPrevious=iMACD(NULL,0,15,26,9,PRICE_CLOSE,MODE_MAIN,2);// 2 бар
SignalCurrent=iMACD(NULL,0,15,26,9,PRICE_CLOSE,MODE_SIGNAL,1);// 1 бар
SignalPrevious=iMACD(NULL,0,15,26,9,PRICE_CLOSE,MODE_SIGNAL,2); // 2 бар

if (M_1 < S_1 && M_0 >= S_0 && M_0 < 20 &&
MacdCurrent>MacdPrevious)
// Зеленая пересекает красную снизу - "ЛОНГ"
{ // И находится ниже уровня перепроданности 20
// MACD дневной возрастает, тренд ЛОНГ
Opn_B=true; // Критерий откр. Buy
Cls_S=true; // Критерий закр. Sell
}
if (M_1 > S_1 && M_0 <= S_0 && M_0 > 80 &&
MacdCurrent<MacdPrevious)
// Зеленая пересекает красную свеху - "ШОРТ"
{ // И находится выше уровня перекупленности 80
// MACD дневной убывает, тренд ШОРТ
Opn_S=true; // Критерий откр. Sell
Cls_B=true; // Критерий закр. Buy
}

 
MacdCurrent=iMACD(NULL,PERIOD_D1,15,26,9,PRICE_CLOSE,MODE_MAIN,1);// 1 бар
 
AM2:

Пишу советника на основе MACD и Stochastic. Торгуем на 30 минутках. Как получить значения MACD на дневках?

MacdCurrent=iMACD(NULL,PERIOD_D1,15,26,9,PRICE_CLOSE,MODE_MAIN,1);// 1 бар
MacdPrevious=iMACD(NULL,PERIOD_D1,15,26,9,PRICE_CLOSE,MODE_MAIN,2);// 2 бар
SignalCurrent=iMACD(NULL,PERIOD_D1,15,26,9,PRICE_CLOSE,MODE_SIGNAL,1);// 1 бар
SignalPrevious=iMACD(NULL,PERIOD_D1,15,26,9,PRICE_CLOSE,MODE_SIGNAL,2); // 2 бар

 
Segun1966:

Благодарю! Еще так работает:


MacdCurrent=iMACD(NULL,1440,15,26,9,PRICE_CLOSE,MODE_MAIN,1);// 1 бар
MacdPrevious=iMACD(NULL,1440,15,26,9,PRICE_CLOSE,MODE_MAIN,2);// 2 бар
SignalCurrent=iMACD(NULL,1440,15,26,9,PRICE_CLOSE,MODE_SIGNAL,1);// 1 бар
SignalPrevious=iMACD(NULL,1440,15,26,9,PRICE_CLOSE,MODE_SIGNAL,2); // 2 бар

 

:)) В Code Base выложите??? 

 Люблю классику. 

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