[ARCHIVO]Cualquier pregunta de novato, para no saturar el foro. Profesionales, no lo dejéis pasar. No puedo ir a ningún sitio sin ti - 5. - página 161

 
Se ha producido la siguiente situación: El Probador de Estrategias no cierra las posiciones de TakeProfit. Las operaciones se realizan en TF Day, miré a TFs más pequeños en las operaciones con pérdidas - el precio baja/sube más que el nivel requerido para activar el TakeProfit, pero la operación no se cierra, y cuando el precio alcanza el StopLoss, entonces se fija la pérdida. Incluso he intentado la visualización - el precio sólo pasa TakeProfit y eso es todo. Y a veces todo funciona, y a veces aparecen cosas así. Ayer mismo todo iba bien, pero hoy he ejecutado el probador y he obtenido una pérdida total de rendimiento. He intentado reinstalar el terminal, pero no ha servido de nada. No estoy seguro de si estoy utilizando una empresa de corretaje diferente.
 
beginner666999:
Se ha producido la siguiente situación: el Probador de Estrategias no cierra las posiciones por TakeProfit. Las operaciones se realizan en TF Day, miré TF más pequeño en las operaciones con pérdidas - el precio baja/sube más que el nivel requerido para la activación del TakeProfit, pero la operación no se cierra, y cuando el precio alcanza el StopLoss, la pérdida se fija. Incluso he probado la visualización - el precio sólo pasa TakeProfit y eso es todo. Y a veces todo funciona, y a veces aparecen cosas así. Ayer mismo todo iba bien, pero hoy he ejecutado el probador y he obtenido una total falta de rendimiento. He intentado reinstalar el terminal, pero no ha servido de nada. No estoy seguro de que haya alquilado una empresa de corretaje diferente.

Se trata de la propagación, se incrementa para el fin de semana.

Es así.

 
r772ra:

Se trata de la propagación, se incrementa para el fin de semana.

Es algo así.


Gracias. Esperaré a los días laborables para comprobarlo.
 
r772ra:

Se trata de la propagación, se incrementa para el fin de semana.

Es así.


Hay que ser tan imbécil - miré el spread para mi instrumento en el sitio web del broker y me sorprendió - ¡11 pips! Gracias de nuevo.
 
Entonces, otra pregunta, ligeramente fuera de tema. ¿Por qué aumentan el diferencial en el fin de semana? Al fin y al cabo, de todas formas no hay comercio.
 
Konstebl:

Por favor, aconséjeme cómo especificar la condición correctamente. Si hay una orden de COMPRA abierta, si está en el punto de equilibrio, entonces establecemos BUYSTOP:

static bool flag ;

if(NewBar())

bandera = verdadero;

for(i=0;i<total;i++)

{

OrderSelect(i,SELECT_BY_POS,MODE_TRADES);

if(OrderSymbol()==Symbol() && OrderMagicNumber()==123)

{

if(OrderType()==OP_BUY)

{

if(OrderStopLoss()>OrderOpenPrice())

{

if(Ask>m && frUP>0 && flag)

{

precio = NormalizeDouble(frUP+(Ask-Bid)+30*Point,Digits);

takeprofit = NormalizeDouble(price+tp*Point,Digits);

ticket = OrderSend(Symbol(),OP_BUYSTOP,Lots,price,5,Bid-sl*Point,takeprofit, "Fractal",123,TimeCurrent()+72000,Blue);

if(ticket>0)

flag = false;

si no

Print("Error ",GetLastError());

}

}

}

}

}

¡¡¡no funciona!!!


¿Has probado a poner corchetes según la lógica? Porque hasta ahora no hay ninguno.

Lo que está escrito implica que al menos un puesto está abierto. De lo contrario, no abrirá ninguna nueva.

 
Vinin:


¿Has probado a poner corchetes según la lógica? Porque hasta ahora no hay ninguno.

Lo que está escrito implica que al menos un puesto está abierto. De lo contrario, no se abrirá ninguna nueva


¿Y cómo se organizan? He terminado un poco el código:

 if(NewBar())

     flag = true;    

          for(i=0;i<total;i++)

             {

             OrderSelect(i,SELECT_BY_POS,MODE_TRADES); 

             if(OrderSymbol()==Symbol() && OrderMagicNumber()==123)

                {

                if(OrderType()==OP_BUY || OrderType()<=OP_BUYSTOP)

                   {

                   if(OrderStopLoss()>OrderOpenPrice())

                      {

                      if(Ask>m && frUP>0 && flag)

                         {                

                        price = NormalizeDouble(frUP+(Ask-Bid)+30*Point,Digits);

                        takeprofit = NormalizeDouble(price+tp*Point,Digits);

                        ticket = OrderSend(Symbol(),OP_BUYSTOP,Lots,price,5,Bid-sl*Point,takeprofit,"Fractal",123,TimeCurrent()+72000,Blue);

                       if(ticket>0)

                        flag = false;

                       else

                        Print("Ошибка ",GetLastError());

                      }

                   }

                }

             }

          }
По идее должно работать,но не хочет.
 
beginner666999:
Entonces, otra pregunta, ligeramente fuera de tema. ¿Por qué aumentan el diferencial los fines de semana? De todos modos, no comercian.

No, el fin de semana no, no lo escribí bien, el Spread se queda en el terminal en la última cotización que entró

Así que cierra la terminal durante el día, el viernes. Y lo pruebas el fin de semana.

 
r772ra:

No, el fin de semana no, no lo escribí bien, el Spread se queda en el terminal en la última cotización que entró

Así que cierra la terminal durante el día, el viernes. Y lo pruebas durante el fin de semana.


Lo tengo, ¡gracias! Así tiene mucho más sentido.
 
Konstebl:


¿Y cómo los organizo? He añadido un poco de código:


OK, un poco de lógica

if(NewBar())
    flag = true;    
for(i=0;i<total;i++) {
    OrderSelect(i,SELECT_BY_POS,MODE_TRADES); 
    if(OrderSymbol()==Symbol() && OrderMagicNumber()==123) {
    if(OrderType()==OP_BUY || OrderType()<=OP_BUYSTOP) {
        if(OrderStopLoss()>OrderOpenPrice()) {
            if(Ask>m && frUP>0 && flag) {                
                price = NormalizeDouble(frUP+(Ask-Bid)+30*Point,Digits);
                takeprofit = NormalizeDouble(price+tp*Point,Digits);
                ticket = OrderSend(Symbol(),OP_BUYSTOP,Lots,price,5,Bid-sl*Point,takeprofit,"Fractal",123,TimeCurrent()+72000,Blue);
                if(ticket>0)
                    flag = false;
                else
                    Print("Ошибка ",GetLastError());
            }
        }
    }
}

          }

El bucle se ejecuta independientemente de la condición if(NewBar())