Ваши вопросы по языку MQL4

void OnTick()
{
if(f_IsNewBar()==true)
{
for(int i= 1; i<400; i++)
{
if(candle.Dodgi(i)==1)
Print("i_1=",i," ","data=",Time," ",Close," ","body=",candle.Candle_body(i));
Comment(candle.Candle_body(i));
}
}
}

Почему выводяться на печать свечи больше 10 телом
 

Вложения

  • S3.mq4
    S3.mq4
    19,1 КБ · Просмотры: 12
void OnTick()
{
if(f_IsNewBar()==true)
{
for(int i= 1; i<10; i++)
if(candle.Candle_body(i)<10)
Print("i=",i," ",candle.Dodgi(i)," ",candle.Candle_body(i)," ",Time);
}
}
Сейчас работает как надо только вот на каждом тике. Не знаю почему так.
 
Последнее редактирование модератором:
Не надо ничего искать, всё найдено до нас. Объявляете статическую datetime-переменную и на каждом тике сравниваете её с Time[0]. Обновилась - встречайте новый бар. Присваиваете ей новое значение Time[0].
 
Не надо ничего искать, всё найдено до нас. Объявляете статическую datetime-переменную и на каждом тике сравниваете её с Time[0]. Обновилась - встречайте новый бар. Присваиваете ей новое значение Time[0].

Как я ей присвою если она не динамическая а статическая.

PHP:
Локальные переменные, объявленные с ключевым словом static, сохраняют свои значения в течение всего времени существования функции. При каждом следующем вызове функции такие локальные переменные содержат те значения, которые они имели при предыдущем вызове.

Таким образом если я правильно понимаю один раз присвоив ей значения потом не изменить ее. (При каждом следующем вызове функции такие локальные переменные содержат те значения, которые они имели при предыдущем вызове.)
 
Как я ей присвою если она не динамическая а статическая.

PHP:
Локальные переменные, объявленные с ключевым словом static, сохраняют свои значения в течение всего времени существования функции. При каждом следующем вызове функции такие локальные переменные содержат те значения, которые они имели при предыдущем вызове.

Таким образом если я правильно понимаю один раз присвоив ей значения потом не изменить ее. (При каждом следующем вызове функции такие локальные переменные содержат те значения, которые они имели при предыдущем вызове.)
Не верь глазам своим. Верь моей совести.
Статичная переменная отличается от обычной тем, что обычная переменная инициализируется при каждом вызове функции, а статичная только один раз. Изменение значения переменной не отличается ничем.
Не путайте статичные переменные с константными.
 
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
if(New_bar()==true)
{
for(int i=1; i<12; i++)
{
Print(i);
}
}
}
//+------------------------------------------------------------------+
//| Новый бар |
//+------------------------------------------------------------------+
bool New_bar()
{
bool n_bar=false;
static datetime Data = D'01.01.2004';
if(Data != Time[0])
n_bar=true;
else
n_bar=false;
return(n_bar);
}
//+------------------------------------------------------------------+
 
C-подобный:
bool New_bar()
{
   static datetime Data;
   if (Data < Time[0])
   {
      Data = Time[0];
      return true;
   }
   return false;
}
 
Последнее редактирование:
Почему выдается свечи больше телом чем 10?

PHP:
   if(New_bar()==true)
     {
      for(int i=1; i<250; i++)
        {
         if(candle.Candle_body(i)<10)
            Print("i=",i," ","Data=",Time[i+1],"   ","Body=",candle.Candle_body(i));
        }
     }
[PHP/]

А так работает.
 

Вложения

  • S3.mq4
    S3.mq4
    18,9 КБ · Просмотры: 17
Последнее редактирование:
PHP:
   double ma31_1 = iMA(_Symbol,PERIOD_CURRENT,31,0,MODE_EMA,PRICE_CLOSE,1);
   double OC = Open[1]-Close[1];
   Comment(ma31_1);
   if(OrdersTotal()==0)
     {
      if(Open[1]<ma31_1 && Close[1]>ma31_1 && OC<0)
         int ticket=OrderSend(Symbol(),OP_BUY,0.01,Ask,30,0.0,0.0,"My order",magik,0,clrGreen);
      if(Open[1]>ma31_1 && Close[1]>ma31_1 && OC>0)
         int ticket=OrderSend(Symbol(),OP_SELL,0.01,Bid,30,0.0,0.0,"My order",magik,0,clrYellow);
     }
[php\]

Почему используется простая вместо экспотенциальной?
 
Почему 6-ой тип лота не рассчитывается?
 

Вложения

  • L1.mq4
    L1.mq4
    10,5 КБ · Просмотры: 22
Скажите пожалуйста почему когда указываешь на новый бар он открывает только 1 сделку и все. А без этого условия открывает и бай и сел и то несколько раз пока условия для открытия сделки выполняется. спасибо.
 

Вложения

  • L1.mq4
    L1.mq4
    44,8 КБ · Просмотры: 9
Подскажите пожалуйста почему на новом баре открывается 1 сделка только?
 

Вложения

  • L1.mq4
    L1.mq4
    46,1 КБ · Просмотры: 21

Посмотрели (406) Посмотреть

Отслеживают (499) Посмотреть

Назад
Верх