Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 6. - página 465

 

Hola. Hace un tiempo empecé a estudiar MQL4 y me encontré con el siguiente malentendido.

Como puede ver en el ejemplo de abajo, cuando la vela más alta de la barra alcanza 1,3058, la orden debe cerrarse. La orden se cierra según las condiciones, pero el precio de cierre no es 1,3058(puede ser 1-3 pips más alto). Entonces, ¿cómo cerramos correctamente? ¿Cierraen 1,3058?

if(High[0] >= 1.3058)

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

Hola. Recientemente he empezado a estudiar MQL4 y me he encontrado con el siguiente malentendido.

Como puede ver en el ejemplo de abajo, cuando la vela más alta de la barra alcanza 1,3058, la orden debe cerrarse. La orden se cierra según las condiciones, pero el precio de cierre no es 1,3058(puede ser 1-3 pips más alto). Entonces, ¿cómo cerramos correctamente? ¿Cierraen 1,3058?

No se puede. La MT tiene un deslizamiento, que siempre es a favor del corredor.
 
Mr.Dmitry:

Hola. Recientemente he empezado a estudiar MQL4 y me he encontrado con el siguiente malentendido.

Como puede ver en el ejemplo de abajo, cuando la vela más alta de la barra alcanza 1,3058, la orden debe cerrarse. La orden se cierra según las condiciones, pero el precio de cierre no es 1,3058(puede ser 1-3 pips más alto). Entonces, ¿cómo cerramos correctamente? ¿Quieres que tu orden se cierre en 1,3058?

Pues bien, imagine que en el último tick el precio era de 1,3057, y en el tick actual es de 1,3059.

No digas luego que la orden no se cerró. No está haciendo la comprobación correctamente. Hay que hacerlo en "más o igual" o "menos o igual" y nada más.

 
artmedia70:

Imagínese una situación en la que en el último tick el precio era 1,3057 y en el tick actual se convirtió en 1,3059.

No diga que el pedido no está cerrado. Lo compruebas incorrectamente. Debe comprobar si es "más o igual" o "menos o igual".


Eso es lo que hago >=. Lo anterior es sólo un ejemplo (disculpen la tautología) y la cuestión no es que la orden no esté cerrada, sino que está cerrada no como yo quisiera.

borilunad:
De ninguna manera, MT prevé el deslizamiento-Slippage, que siempre está a favor del corredor.
¿Así que no hay manera de hacerlo en absoluto? Triste (((.
 
Zhunko:
Podrías escribir un script que dibuje esta línea. Vincula este script a una tecla de acceso directo.


Gracias. Lo intentaré.
 
Mr.Dmitry:

Esto es lo que hago >=. El ejemplo anterior es sólo un ejemplo (disculpen la tautología) y la cuestión no es que la orden no se cierre, sino que no se cierra como a mí me gustaría.

Quiero decir que no hay ninguna salida. Triste ((!)
Si finalmente se establece el Stop Loss, se llega al punto de equilibrio, se empieza a arrastrar y el precio gira repentinamente en la dirección opuesta y en este movimiento la orden se cierra por el Stop Loss no en beneficio, ¡sino en pérdida! Deslizamiento+expansión del spread=:(((
 

Buenas noches a todos.

¿Puede decirme qué estoy haciendo mal?

int inicio()

{

//----

ObjectCreate("trendln1",OBJ_TREND,0);

ObjectSet("trendln1",OBJPROP_COLOR,Red);

//----

return(0);

}

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!P.s. He intentado escribir un script para llamar a la línea de tendencia para que luego sea posible asignar una tecla de acceso rápido para que aparezca la línea de tendencia.

 
okvseok:

Buenas noches a todos.

¿Puede decirme qué estoy haciendo mal?

int inicio()

{

//----

ObjectCreate("trendln1",OBJ_TREND,0);

ObjectSet("trendln1",OBJPROP_COLOR,Red);

//----

return(0);

}

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!P.s. He intentado escribir un script para llamar a la línea de tendencia para que luego sea posible asignar una tecla de acceso rápido para que aparezca la línea de tendencia.

Al menos debería especificar alguna coordenada al crear un objeto.

// Формирование линии
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:

Al menos debería especificar alguna coordenada al crear un objeto.


y si quiero especificar la coordenada ya con el ratón. Sólo tengo que llamar a la línea de tendencia en sí, pero aún no ha funcionado. ¿Es esto posible?
 
okvseok:

y si quiero señalar la coordenada ya con el ratón. Sólo tengo que llamar a la línea de tendencia en sí, pero aún no se activa. ¿Es posible?

No es lo más fácil construir una línea de tendencia, y lo haces con el ratón.
Razón de la queja: