проблема с логическими переменными

 
проблема с логическими переменными
Обе конструкции работают некорректно(T & F & T & F = True).
Подскажите, пожалуйста, в чем ошибка? Перепроверял несколько раз.

Использую ADX, +Di, -Di

If DMpPrev<DMpPrev2 and DMpPrev<DMpCur then
{
If MaCurrent>MaPrevious and Ask>Hi then
{
If (Ask-Hi)/Point<10 and DMpCur>DMmCur then
{
SetOrder(OP_BUY,Lots,Ask,3,Ask-StopLoss*Point,Ask+TakeProfit*Point,RED);
Exit;
};
};
};

или

If DMpPrev<DMpPrev2 and DMpPrev<DMpCur and MaCurrent>MaPrevious and Ask>Hi and
(Ask-Hi)/Point<10 and DMpCur>DMmCur then
{
SetOrder(OP_BUY,Lots,Ask,3,Ask-StopLoss*Point,Ask+TakeProfit*Point,RED);
Exit;
};

С ув. Максим.
 
а как Вы перепроверяли?
пожалуйста, распечатайте все сравниваемые значения и предъявите их здесь
 
пример
AdxCur=iADX(14,MODE_MAIN,0);
AdxPrev=iADX(14,MODE_MAIN,1);
AdxPrev2=iADX(14,MODE_MAIN,2);
DMpCur=iADX(14,MODE_PLUSDI,0);
DMpPrev=iADX(14,MODE_PLUSDI,1);
DMpPrev2=iADX(14,MODE_PLUSDI,2);
DMmCur=iADX(14,MODE_MINUSDI,0);
DMmPrev=iADX(14,MODE_MINUSDI,1);
DMmPrev2=iADX(14,MODE_MINUSDI,2);

If AdxCur(29.2038)>AdxPrev(30.7631) then
{
If DMpPrev<DMpPrev2 and DMpPrev<DMpCur then
{
If MaCurrent>MaPrevious and then
{
If DMpCur>DMmCur then
{
SetOrder(OP_BUY,Lots,Ask,3,Ask-StopLoss*Point,Ask+TakeProfit*Point,RED);
Exit;
};
};
};

If DMpCur(11.1831)<DMmCur(16.4530) then
{
If DMmPrev(18.9843)<DMmPrev2(18.3546) and DMmPrev(18.9843)<DMmCur(16.4530) then
{
If MaCurrent(1.8903)<MaPrevious(1.8904) then
{
SetOrder(OP_SELL,Lots,Ask,3,Ask+StopLoss*Point,Ask-TakeProfit*Point,RED);
Exit;
};
};
};
};

График GBP/USD,M15
25.02.04, 6:57
При тестировании стратегии открывается ордер Sell
Знaчения взятые с графика - в скобках.

Может я неправильно понимаю термин - "shift" в функции iADX? (Для М15, 1"shift"=-15 мин.)

С ув. Максим.
qkqk@ukr.net
 
текущие значения индикаторов всегда пересчитываются. поэтому Ваша проверка не совсем верна.
Вам надо использовать функцию print, а не брать значения с графика