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

 

Здравствуйте. Не давно начал изучать язык MQL4 и столкнулся со следующим не пониманием.

Как видно из примера ниже, когда наибольшая свеча бара становится равна 1.3058 то ордер должен закрыться. Ордер и закрывается в соответствии с условием, но цена закрытия не равна 1.3058 (она может быть на 1-3 пунка больше) Так вот, как собственно производить правильное закрытие? Чтоб ордер закрывался на 1.3058?

if(High[0] >= 1.3058)

OrderClose( OrderTicket(), OrderLots(),  NormalizeDouble(Ask,Digits), 0, Red) ;
 
Mr.Dmitry:

Здравствуйте. Не давно начал изучать язык MQL4 и столкнулся со следующим не пониманием.

Как видно из примера ниже, когда наибольшая свеча бара становится равна 1.3058 то ордер должен закрыться. Ордер и закрывается в соответствии с условием, но цена закрытия не равна 1.3058 (она может быть на 1-3 пунка больше) Так вот, как собственно производить правильное закрытие? Чтоб ордер закрывался на 1.3058?

Никак, в МТ предусмотрено проскальзывание-Slippage, которое всегда в пользу брокера.
 
Mr.Dmitry:

Здравствуйте. Не давно начал изучать язык MQL4 и столкнулся со следующим не пониманием.

Как видно из примера ниже, когда наибольшая свеча бара становится равна 1.3058 то ордер должен закрыться. Ордер и закрывается в соответствии с условием, но цена закрытия не равна 1.3058 (она может быть на 1-3 пунка больше) Так вот, как собственно производить правильное закрытие? Чтоб ордер закрывался на 1.3058?

Представьте ситуацию, что на прошлом тике цена была 1.3057, а на текущем она стала 1.3059.

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

 
artmedia70:

Представьте ситуацию, что на прошлом тике цена была 1.3057, а на текущем она стала 1.3059.

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


Я так и делаю >=. Пример выше все го лишь пример(извините за тавтологию) и вопрос не в том что ордер не закрывается а в том что закрывается не так как бы мне хотелось

borilunad:
Никак, в МТ предусмотрено проскальзывание-Slippage, которое всегда в пользу брокера.
То есть совсем ни как не сделать? Печаль (((
 
Zhunko:
Можно написать скрипт, который рисует эту линию. Привязать этот скрипт к горячей клавише.


спасибо. попробую
 
Mr.Dmitry:

Я так и делаю >=. Пример выше все го лишь пример(извините за тавтологию) и вопрос не в том что ордер не закрывается а в том что закрывается не так как бы мне хотелось

То есть совсем ни как не сделать? Печаль (((
И СтопЛосс поставите, наконец, в безубыток вышли, начали тралить, а цена резко повернула в обратную сторону, и на этой движухе закрывается по СтопЛоссу не в плюсе, а в минусе! Слиппаж+расбухший спред=:((
 

Добрый вечер всем!

Подскажите, что делаю не так:

int start()

{

//----

ObjectCreate("trendln1",OBJ_TREND,0);

ObjectSet("trendln1",OBJPROP_COLOR,Red);

//----

return(0);

}

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

 
okvseok:

Добрый вечер всем!

Подскажите, что делаю не так:

int start()

{

//----

ObjectCreate("trendln1",OBJ_TREND,0);

ObjectSet("trendln1",OBJPROP_COLOR,Red);

//----

return(0);

}

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

Надо бы хоть какую-нибудь координату указать при создании объекта.

// Формирование линии
int fLine(string Name            // Префикс имени
         ,string Text            // Префикс описания
         ,int Number             // Номер
         ,int Bar1,double Price1 // Первая точка
         ,int Bar2,double Price2 // Вторая точка
         ,int Bar3,double Price3 // Вспомогательная точка
         ,color Цвет
         ,int Стиль=STYLE_SOLID  // Сплошная
         ,int Видимость=0        // Только на текущем таймфрейме
         ,bool Луч=false
         ,int Толщина=1
         ,bool Фон=true ){
   int Error;
   datetime Time1=Time[Bar1],
            Time2=Time[Bar2];
   if( Number>0 ) Name=Name+Number;
   if( Bar1<Bar2
    || Bar2<LastBar
    || Price1<Zero
    || Price2<Zero ){
      Error=MyError;
      if( РежимОтладки && ПечататьПредупреждения ) Print("*     "+Name+" не создан, параметры: "+DoubleToStr(Price1,Digits)
                                       +" ("+Bar1+"/"+TimeToStr(Time1)+")..."
                                       +DoubleToStr(Price2,Digits)+" ("+Bar2+"/"+TimeToStr(Time2)+")");
      return(Error);
   }
   Error=fObjectDelete(Name);
   if( Error>0 && Error<MyError ){
      return(Error);
   }
   if( ObjectCreate(Name,OBJ_TREND,0,Time1,Price1,Time2,Price2,Time[Bar3],Price3) ){
      if( Text!="" && Number>0 ){
         Text=Text+Number;
         Фон=true;
      }
      if( !ObjectSetText(Name, Text)
       || !ObjectSet(Name, OBJPROP_COLOR, Цвет)
       || !ObjectSet(Name, OBJPROP_STYLE, Стиль)
       || !ObjectSet(Name, OBJPROP_RAY, Луч)
       || !ObjectSet(Name, OBJPROP_TIMEFRAMES, Видимость)
       || !ObjectSet(Name, OBJPROP_WIDTH, Толщина)
       || !ObjectSet(Name, OBJPROP_BACK, Фон) ){
         Error=GetLastError();
         if( !РежимОтладки ) PlaySound("alert.wav");
         Print("***** "+Name+" - ошибка модификации параметров "+Error);
   }  }
   else{
      Error=GetLastError();
      if( !РежимОтладки ) PlaySound("alert.wav");
      Print("***** "+Name+" - объект не создан, ошибка "+Error);
   }
   return(Error);
}
 
tara:

Надо бы хоть какую-нибудь координату указать при создании объекта.


а если хочу координату указывать уже мышкой. Мне просто необходимо вызвать саму трендовую линию, но еще не сработанную. Это возможно?
 
okvseok:

а если хочу координату указывать уже мышкой. Мне просто необходимо вызвать саму трендовую линию, но еще не сработанную. Это возможно?

Построение трендовой - не самое простое занятие, а Вы ее мышкой.
Причина обращения: