Парадокс

 

Мне кажется, я сашел с ума.

Идея следующая. Если RSI>70, то A=1. И все. То есть по-идеи, если RSI когда-то был больше 70, то A всегда равно 1. Но выходит, что это не так. Объясните ситуацию, пожалуйста.

//+------------------------------------------------------------------+
//| Bred.mq4 |
//| Copyright © 2008, MetaQuotes Software Corp. |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2008, MetaQuotes Software Corp."
#property link "http://www.metaquotes.net"

//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{double rsi;int A,B;
B=45;
//----
rsi = iRSI(NULL, 0, 13, PRICE_CLOSE,0);
if (rsi>70){A=1;}
Print("Бред:", "rsi=",rsi, "A=",A);Comment("Бред:", "rsi=",rsi, "A=",A);
//----

//----
return(0);
}
//+------------------------------------------------------------------+

Файлы:
bred.mq4  2 kb
 
Print("Бред:", "rsi=",rsi, "A=",A);Comment("Бред:", "rsi=",rsi, "A=",A);

////пробелы дорогой, пробелы))))

Print("Бред:", "         rsi=",rsi, "         A=",A);Comment("Бред:", "         rsi=",rsi, "         A=",A);
 
Я просто не успел дописать))
 
21:50:44 2007.10.29 18:09 Bred[1] GBPUSD,M5: Бред:rsi=69.123A=0
21:50:44 2007.10.29 18:09 Bred[1] GBPUSD,M5: Бред:rsi=68.5878A=0
21:50:44 2007.10.29 18:09 Bred[1] GBPUSD,M5: Бред:rsi=69.6402A=0
21:50:44 2007.10.29 18:09 Bred[1] GBPUSD,M5: Бред:rsi=70.6244A=1
21:50:44 2007.10.29 18:10 Bred[1] GBPUSD,M5: Бред:rsi=71.1314A=1
21:50:44 2007.10.29 18:10 Bred[1] GBPUSD,M5: Бред:rsi=70.6244A=1
21:50:44 2007.10.29 18:10 Bred[1] GBPUSD,M5: Бред:rsi=71.1314A=1
21:50:44 2007.10.29 18:10 Bred[1] GBPUSD,M5: Бред:rsi=70.6244A=1
21:50:44 2007.10.29 18:10 Bred[1] GBPUSD,M5: Бред:rsi=69.4057A=0
21:50:44 2007.10.29 18:10 Bred[1] GBPUSD,M5: Бред:rsi=68.2283A=0
21:50:44 2007.10.29 18:10 Bred[1] GBPUSD,M5: Бред:rsi=69.4057A=0
21:50:44 2007.10.29 18:10 Bred[1] GBPUSD,M5: Бред:rsi=68.2283A=0
21:50:44 2007.10.29 18:10 Bred[1] GBPUSD,M5: Бред:rsi=67.0902A=0
 
Batou писал (а) >>

Мне кажется, я сашел с ума.

Идея следующая. Если RSI>70, то A=1. И все. То есть по-идеи, если когда-то был больше 70, то A всегда равно 1. Но выходит, что это не так. Объясните ситуацию, пожалуйста.


Поменяйте "int A;" на "static int A;" и будет счастье. Потом разберитесь, чем локальные переменные отличаются от глобальных и статических. Если это не помогает, тогда продолжайте сходить с ума :)
 
bstone >>:

Поменяйте "int A;" на "static int A;" и будет счастье. Потом разберитесь, чем локальные переменные отличаются от глобальных и статических. Если это не помогает, тогда продолжайте сходить с ума :)

К сожалению, не помогло

 

to Batou

А где уровень примагничивания?

 

ну или хотя бы так:

if (rsi>70){A=1;}else{A=0;}

ну или так:

int start()
  {double rsi;int A=0,B;
  B=45;
//----
    rsi = iRSI(NULL, 0, 13, PRICE_CLOSE,0);
    if (rsi>70){A=1;}
    Print("Бред:", "rsi=",rsi, "A=",A);Comment("Бред:", "rsi=",rsi, "A=",A);
//----
   
//----
   return(0);
  }
 
bstone >>:

Поменяйте "int A;" на "static int A;" и будет счастье. Потом разберитесь, чем локальные переменные отличаются от глобальных и статических. Если это не помогает, тогда продолжайте сходить с ума :)

Ой, извиняюсь. Помогло!! Спасибо огромное

 
Ракета со старта ушла)))
....будем ждать.....
 
Batou писал (а) >>

Ой, извиняюсь. Помогло!! Спасибо огромное

Ага, хорошо, а то я уже думал что вы решили продолжить...

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