Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 757

 
Ozero:
Я и имел в виду, что ордер не закрывается :( Сорри, что не так выразился, новичок еще.

Вполне работает

 

//+------------------------------------------------------------------+
//|                                                        Ozero.mq4 |
//|                                            Copyright 2014, Vinin |
//|                                             http://vinin.ucoz.ru |
//+------------------------------------------------------------------+
#property copyright "Copyright 2014, Vinin"
#property link      "http://vinin.ucoz.ru"
#property version   "1.00"
#property strict
// -------- переменные --- Н -----
extern double gLot=0.1;            // размер лота для покупки 
extern double gPoint=0.001;
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
// -------- переменные --- К ----- 
int init()
  {
   return(0);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int start()
  {

// Открытие позиции
   if(OrdersTotal()==0)
     {
      Print(" Открытие первой позиции ");
      double _Ask=MarketInfo("GBPUSD",MODE_ASK);
      int ticket=OrderSend("GBPUSD",OP_BUY,gLot,_Ask,15,0,0);
      if(ticket>0)
        {
         Print(" ОРДЕР ОТКРЫТ ",ticket);
        }
     }

   double _Bid=MarketInfo("GBPUSD",MODE_BID); //для цены
   for(int pos=OrdersTotal()-1;pos>=0;pos--)
     {
      if(OrderSelect(pos,SELECT_BY_POS))
        {
         if(OrderOpenPrice()+gPoint<_Bid)
           {
            OrderClose(OrderTicket(),OrderLots(),_Bid,15);
           }
        }
     }
   return(0);
  }
//+------------------------------------------------------------------+
Файлы:
ozero.mq4  2 kb
 
Vinin:

Вполне работает

 

Здравствуйте, Vinin.

 Проанализировал Ваш код. Красивое решение моей задачи. Но все же, мой код у Вас заработал? Или слова "Вполне работает" относится к Вашей версии программы?

Мне важно разобраться с MQL языком.


Вопрос по Вашей версии. Почему Вы не объявляете в начале программы переменные _Bid и _Ask? Разве так можно в mql4?


Ozero.

 
Vinin:

Вполне работает

 

Фантастика! Ваша программа работает. Но почему моя так не работает???
 
Ozero:
Фантастика! Ваша программа работает. Но почему моя так не работает???

Что с чем здесь сравнивается в первой части?

           if (AktualBid>=AktualAsk+0.010 && PozOtk1==false)

Если для получения второго значения вы исправили код, как вам посоветовали:

                   AktualAsk=MarketInfo( "GBPUSD",MODE_ASK);

то для первого - нет:

      AktualBid=NormalizeDouble(Bid,Digits); //для цены

А у Vinin оно исправлено:

   double _Bid=MarketInfo("GBPUSD",MODE_BID); //для цены

Вот, наверное, и вся фантастика. Но точно я не знаю, проверьте сами.

 
Здравствуйте, помогите разобраться с индикатором, интересует по какой формуле рассчитывается значение "Formula 0", а также значение "Formula 1"
Файлы:
 
zigga85:
Здравствуйте, помогите разобраться с индикатором, интересует по какой формуле рассчитывается значение "Formula 0", а также значение "Formula 1"
(High+Low+Close)/3 и (High+Low+2*Close)/4
 
Vinin:

Вполне работает

 

Уважаемый модератор Винин!!!!

Давно уже хотел поблагодарить Вас за Ваши искренние ответы. Один из них мне когда то очень давно крайне помог с переходом на реальную торговлю. Вы мне посоветовали правильный алгоритм закрытия ордеров вместо того, который я написал сам. Ваш я до сих пор использую.

Советы, которые есть в этой ветке очень приятны и полезны.

Ещё раз - огромное спасибо!

 
Vinin:

Вполне работает

 

Доброй ночи.


0 ошибок, одно предупреждение: return value of 'OrderClose' should be checked     46    13 - это строка  OrderClose(OrderTicket(),OrderLots(),_Bid,15);


Ozero.

 
Ozero:

Доброй ночи.


0 ошибок, одно предупреждение: return value of 'OrderClose' should be checked     46    13 - это строка  OrderClose(OrderTicket(),OrderLots(),_Bid,15);


Ozero.


ResetLastError();
if(!OrderClose(OrderTicket(),OrderLots(),_Bid,15);) Print("Чё-та не закрылася позиция. Фигня вот такая происходит: "+GetLastError());
 
artmedia70:

Перес ";" за скобку.

Программа работает, НО периодически ругается на ошибку 4108.


Ozero.

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