Ошибки, баги, вопросы - страница 872

 
Здравствуйте! 
При установке Meta Trader 5 какой Proxy server устанавливать?
 
Vladon:

на мт5 работает.

 

 

Да работает-просчитай ошибки-01.10.20112 до 06.10.2012 на евро/$
Файлы:
20121111.log  60 kb
 
mario065:
Да работает-просчитай ошибки-01.10.20112 до 06.10.2012 на евро/$

всмысле это?

failed modify buy 0.10 EURUSD sl: 1.29120, tp: 1.29370 -> sl: 1.29120, tp: 1.29370 [Invalid stops]

JF 0 Core 1 19:48:37 2012.10.03 16:20:27   Modify error =4756 

 

стоплосс и тейкпрофит нельзя модифить в себя , поэтому пишет ошибку стопов, чего здесь удивительного.

 
Vladon:

всмысле это?

failed modify buy 0.10 EURUSD sl: 1.29120, tp: 1.29370 -> sl: 1.29120, tp: 1.29370 [Invalid stops]

JF 0 Core 1 19:48:37 2012.10.03 16:20:27   Modify error =4756 

 

стоплосс и тейкпрофит нельзя модифить в себя , поэтому пишет ошибку стопов, чего здесь удивительного.

да,а что написано в коде:
  if(PositionSelect(Symbol())){
    if(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_BUY)
      {
      if(MStop > 0)
       {
        if(NormalizeDouble(Bid - MStop,4) >= Open)
          if(SL == 0 || NormalizeDouble(Bid - MStop,4) >= SL) 
           {
            ModifyPosition(Symbol(),NormalizeDouble(Bid - MStop,4),TP);
           }
        }
      }
    if(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_SELL)
      {
      if(MStop > 0)
       { 
        if(NormalizeDouble(Ask + MStop,4) <= Open)
          if(SL == 0 || NormalizeDouble(Ask + MStop,4) <=SL) 
           {
            ModifyPosition(Symbol(),NormalizeDouble(Ask + MStop,4),TP);
           }
        }
      }
     } 
  }

Менят стоп после 10 пипс?Или нет?

Так как считат 10 пипс дорогой? если указал когда менят стоп?

if(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_BUY)

если ест позиция бай

if(MStop > 0)

Если MStop  болше нуля

if(NormalizeDouble(Bid - MStop,4) >= Open)

Если цена Бид минус указание пипс болше цена опен double Open = NormalizeDouble(PositionGetDouble(POSITION_PRICE_OPEN),4);

которая указал на 4 знака.

if(SL == 0 || NormalizeDouble(Bid - MStop,4) >= SL)

Если стоплос = 0 или цена Бид минус указние пипс болше или равни уровен стоплоса.

Что непонятно?

На МТ4 работает нормално.

На МТ5-глюк .

Считат умею,на МТ4 работает нормално.На МТ5 задал болше из за СтопЛевел(SymbolInfoInteger(_Symbol,SYMBOL_TRADE_STOPS_LEVEL)). Все равно-глюк.

Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства позиций
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства позиций
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Свойства позиций - Документация по MQL5
 
но коментс. ищи сам. 
 
mario065:
да,а что написано в коде:

Менят стоп после 10 пипс?Или нет?

Так как считат 10 пипс дорогой? если указал когда менят стоп?

if(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_BUY)

если ест позиция бай

if(MStop > 0)

Если MStop  болше нуля

if(NormalizeDouble(Bid - MStop,4) >= Open)

Если цена Бид минус указание пипс болше цена опен double Open = NormalizeDouble(PositionGetDouble(POSITION_PRICE_OPEN),4);

которая указал на 4 знака.

if(SL == 0 || NormalizeDouble(Bid - MStop,4) >= SL)

Если стоплос = 0 или цена Бид минус указние пипс болше или равни уровен стоплоса.

Что непонятно?

На МТ4 работает нормално.

На МТ5-глюк .

Считат умею,на МТ4 работает нормално.На МТ5 задал болше из за СтопЛевел(SymbolInfoInteger(_Symbol,SYMBOL_TRADE_STOPS_LEVEL)). Все равно-глюк.


if(NormalizeDouble(Bid - MStop,4) >= Open)
                                  ^^^^^^
                                Что за хрень?

if(SL == 0 || NormalizeDouble(Ask + MStop,4) <=SL) 
  ^^^^^^^^                 ^^^^^^^^^^^^^^
Почему не нормализовано? Нахрена это нормализовать?

 

да тут все просто, неправильный уровень стопов, а именно стоп меньше минимального.

 

Че непонятного?  

 
Vladon:

да тут все просто, неправильный уровень стопов, а именно стоп меньше минимального.

 

Че непонятного?  

У него там все непонятно, т.к. косяков больше чем нужно.
 
Reshetov:

Здравствуйте Решетов,

Ето для Вас "Что за хрень?",а для меня условие,когда надо делат вызов функция модификации.

Если посмотрели код,етогово не написали бы.

if(NormalizeDouble(Bid - MStop,4) >= Open)
                                  ^^^^^^
                                Что за хрень?

if(SL == 0 || NormalizeDouble(Ask + MStop,4) <=SL) 
  ^^^^^^^^                 ^^^^^^^^^^^^^^
Почему не нормализовано? Нахрена это нормализовать?

В коде ест:

  double Bid  = NormalizeDouble(SymbolInfoDouble(Symbol(),SYMBOL_BID),4);
  double Ask  = NormalizeDouble(SymbolInfoDouble(Symbol(),SYMBOL_ASK),4);
  double Open = NormalizeDouble(PositionGetDouble(POSITION_PRICE_OPEN),4);
  double SL   = NormalizeDouble(PositionGetDouble(POSITION_SL),4);
  double TP   = NormalizeDouble(PositionGetDouble(POSITION_TP),4);

Перевод условие:

input double MStop  = 0.001;
double Open = NormalizeDouble(PositionGetDouble(POSITION_PRICE_OPEN),4);
if(NormalizeDouble(Bid - MStop,4) >= Open)

Если цена по Bid - MStop  болше или равна уровен открития позиции,тогда можно произайти вызов функция модификации-не ранше.

 Еще-ето неправилно поставили-в коде видно как надо-постит надо верно:

if(SL == 0 || NormalizeDouble(Bid - MStop,4) >= SL)

Показал,что SL нормализовано.Вторая нормализация на всякий случай,думаю не плохо.

Само условие(которые Вы взяли из условие для сел позишон):

Если стоп лос равен нулю Или цена по Bid минус 10 пипс болше или равно уровен стоплоса-тогда можно произайти вызов функция модификации.

Если цена болше и стоплос поменяется,следущий вызов будет через 10 пипс,чтоб не вызивало на каждий тик. 

Вот что я написал-думаю что так правилно.

 

Ожидал,что скажете правилно или нет,ошибка моя или баг? 

 
mario065:

Здравствуйте Решетов,

Ето для Вас "Что за хрень?",а для меня условие,когда надо делат вызов функция модификации.

...
По моему Reshetov имел в виду то, что для if не надо нормализировать переменную. Нормализировать надо значение цены, когда высылается ордер на сервер. Вместо NormalizeDouble(Bid - MStop,4) делайте так NormalizeDouble( (Bid - MStop) ,4).
Причина обращения: