[ARCHIVO] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 3. - página 66

 
vovan-gogan:

¿Qué sentido tiene? El nivel de SL es correcto. Cuando pongo la variable SL en MA20 con un desplazamiento de 3, emito el nivel de SL a través de Alert y siempre está en el nivel correcto. No sé por qué se elimina la SL antes de alcanzar el nivel de SL.

Bueno, si para ti es importante no arreglar el problema, sino comunicarlo, entonces paso.
 
PapaYozh:

No, bueno, si no se trata de arreglar el problema, sino de comunicar, entonces paso.

No, al contrario. Seguiré tu consejo. Veamos qué pasa.
 
Me confunde el hecho de que ambos tipos de órdenes BUYSTOP / SELLSTOP se borren por la misma condición, al menos son cosas diferentes. Supongo que hay otro fragmento de código similar y que borrará todas las órdenes pendientes en serie.
 
splxgf:
Me confunde el hecho de que ambos tipos de órdenes BUYSTOP / SELLSTOP se borren por la misma condición, al menos son cosas diferentes. Supongo que hay otro fragmento de código similar y que todas las órdenes pendientes se borrarán sucesivamente.

No. Ni por asomo. Acabo de presentar una parte del fragmento de código que describe el caso de la eliminación de órdenes SellStop para que quede más claro.
 
vovan-gogan:

No. No por uno.
   if (OrderType() == OP_BUYSTOP || OrderType() == OP_SELLSTOP)

Uno de los tipos de órdenes está por debajo del precio, el otro está por encima del precio... y la condición para cerrarlas es la misma Bid>SL... Hay que preguntarse dónde está la lógica.

Recomiendo eliminar un tipo de orden de la condición, o simplemente puede reducirse más.

 
vovan-gogan:

gente, ayúdenme a entender qué diablos es esto. Mi Asesor Experto está diseñado para poner un oplot, y si el precio no lo alcanza, pero invierte al nivel de su parada, el oplot debe ser eliminado. pero en el probador a veces pone un oplot y se elimina inmediatamente antes de que incluso llegue a la parada. ¿Cuál es el problema? Aquí hay una captura de pantalla y el código de borrado.

Aquí está el código:

¿Cuál es el error aquí?

En la primera línea (dejemos de lado el resto)... Si el Bid está por debajo del StopLoss de su orden...
Y la orden se establece por debajo de la Oferta y su StopLoss también está por debajo de la Oferta. La primera línea de código la borra inmediatamente.
 
Hola, una pregunta bastante núbil... supongo. En las capturas de pantalla que a menudo veo en las herramientas estándar (nativas de MT4) los niveles de Fibo y las extensiones de Fibo, después del número de Fibo hay un precio en el que el nivel es ...... Mi pregunta es: ¿cómo lo habilito?
 
Vinin:

Adaptado de



Hola, ayuda por favor... Aquí hay un indicador. ¿Puedo adjuntar una señal sonora al dibujar un nuevo segmento? ZigzagFr_v1.mq4 (4.4 Kb) Ver
 
¡Buenas tardes! No entiendo algo. Decidí adjuntar un trailing stop a mi EA pero sigue mostrando el error 130. No puedo entender nada, y ayer tampoco pude.
  } }
   
   
  //+------------------------------------------------------
  double JUN;int tiktik;
   for ( i=0; i<OrdersTotal(); i++) {   OrderSelect(i,SELECT_BY_POS );if(( OrderMagicNumber( )==1000 &&OrderSymbol()==Symbol())) { 
      if( OrderType( )!=OP_BUY ) continue;
     if (price-OrderOpenPrice( )>30*Point) {JUN= price-OrderOpenPrice( );tiktik=OrderTicket();} }} 
     
     Alert("Позиция с тикетом #",tiktik," имеет JUN, ",JUN);Alert("JUN",JUN,"JUNpomnim",JUNpomnim);
    if (JUN>0){if (JUN>JUNpomnim){Alert("JUN",JUN,"JUNpomnim+++++++++++++++++++++++++",JUNpomnim);
      OrderModify(tiktik,OrderOpenPrice(),price-15*Point,OrderTakeProfit(),0,0);     JUNpomnim=JUN;
      Alert("OrderModify-BAY", GetLastError()); }}
      
      
      
  double BAN;int tiktAk;
   for ( i=0; i<OrdersTotal(); i++) {   OrderSelect(i,SELECT_BY_POS );if(( OrderMagicNumber( )==2000 &&OrderSymbol()==Symbol())) { 
      if( OrderType( )!=OP_SELL ) continue;
     if (OrderOpenPrice( )-price>30*Point) {BAN= OrderOpenPrice( )-price;tiktAk=OrderTicket();} }} 
     
     Alert("Позиция с тикетом #",tiktAk," имеет BAN, ",BAN);Alert("BAN",BAN,"BANpomnim",BANpomnim);
    if (BAN>0){ if (BAN>BANpomnim){Alert("BAN",BAN,"BANpomnim++++++++++++++++++++++++++++",BANpomnim);
      OrderModify(tiktAk,OrderOpenPrice(),price+15*Point,OrderTakeProfit(),0,0);  BANpomnim=BAN;
       Alert("OrderModify-SELL", GetLastError()); }}
    

  
   return(0);
  }
//+------------------------------------------------------

Por favor, vea la línea con la modificación, hay un error en ella. Por lo tanto, el stop loss se establece 15 pips más alto para Bai, y viceversa para Vender.

En general, un trailing stop comienza a caer cuando el Buy Stop y el Sell Stop se abren y luego el precio se mueve 30 pips más arriba (o más abajo para una venta), tenga en cuenta que el stop no está por debajo de la apertura; en otras palabras, no veo errores lógicos.

Calculo el precio en cada tick y es así

int X,Y; double price=NormalizeDouble((Ask+Bid)/2,4); 

Lo principal es comprobar si los valores de entrada son correctos.

Aunque escribí un fragmento de código sin un plan y no lo pensé bien, lo redacté de todos modos.

 
Dimka-novitsek:
Buenas tardes, no entiendo algo. Decidí adjuntar un trailing stop a mi EA pero sigue mostrando el error 130. No puedo entender nada, tampoco pude ayer.

Por favor, vea la línea con la modificación, hay un error en ella. Por lo tanto, el stop loss se establece 15 pips más alto para Bai, y viceversa para Vender.

En general, un trailing stop comienza a caer cuando el Buy Stop y el Sell Stop se abren y luego el precio se mueve 30 pips más arriba (o más abajo para una venta), tenga en cuenta que el stop no está por debajo de la apertura; en otras palabras, no veo errores lógicos.

Calculo el precio en cada tick y es así

Intenté comprobarlo, pero estaba mal.

Escribí una parte del código sin un plan, sin pensarlo, pero sigue siendo correcto.

en tal desorden que es difícil sugerir algo.

Bueno, para empezar:

1) no escribas 2-3 operadores por línea, todo se confunde y se lee mal

2) Variable JUNpomnim. ¿Dónde se "da" un valor inicial? ¿Es lo mismo para todas las órdenes abiertas?

Para un ejemplo sencillo, tienes 2 órdenes. Sólo tienes que mover el SL de la primera, cambiar esta variable, y ya está. El segundo no se moverá porque JUN = JUNpomnim.

3) Al utilizar OrderModify(), normalizar todos los precios