Discusión sobre el artículo "Qué comprobaciones debe superar un robot comercial antes de ser publicado en el Mercado" - página 6

 
Andrey F. Zelinsky:
El artículo no aborda la cuestión de qué hacer si stoplevel =0. La cuestión se ha planteado repetidamente en el foro. En el artículo no hay recomendaciones al respecto.
¿Cuál es la cuestión? Sin stoplevel - y es bueno....
 
Oleksii Chepurnyi:
¿Cuál es la pregunta? No hay semáforo, y eso está bien...

Cero no significa ausente. Cero significa flotante.

 
Andrey F. Zelinsky:

Así es. Según la "metodología" de Roche... nivelación de tope cero significa cero y no hace falta calcularlo de ninguna manera. Pero qué hacer con las preguntas y dudas en el foro al respecto. Es necesario aclarar y santificar en la "metodología" la situación cuando el tope nivelador es igual a cero.

Es necesario.

Habitualmente se utiliza el doble spread. Pero eso es "habitualmente". Y a veces no es "normalmente".

 
Andrey F. Zelinsky:

Artyom, que ponderar "normalmente" y "no normalmente". Estamos hablando de los requisitos del mercado, que, según tengo entendido, están orientados al correcto funcionamiento real del nivel cero.

Es decir, es necesario hacer un comentario sobre el nivel cero en la "metodología" y eliminar todas las preguntas al respecto. Pero resulta que las preguntas surgen en el foro, el mismo Vladon ya ha frotado sus callos presionando las teclas sobre este tema - y la parte oficial está en silencio.

Eso es lo que estoy diciendo - es necesario ;)
 
Oleksii Chepurnyi:

De alguna manera no está claro acerca de la sign.....

Lo escribí así.

Debería ser algo así

   for(int i=PositionsTotal()-1; i>=0; i--)
     {
      if(!pst.SelectByIndex(i)) ShowError;
      if(pst.Symbol()==CheckSymb)
        {
         if(oper==1 && pst.PositionType()==POSITION_TYPE_BUY)  sum_volume += pst.Volume();
         if(oper==2 && pst.PositionType()==POSITION_TYPE_SELL) sum_volume -= pst.Volume();
        }
     }
   for(int i=OrdersTotal()-1; i>=0; i--)
     {
      if(!ord.SelectByIndex(i)) ShowError;
      if(ord.Symbol()==CheckSymb)
        {
         if(oper==1 && (ord.OrderType()==ORDER_TYPE_BUY  || ord.OrderType()==ORDER_TYPE_BUY_LIMIT  || ord.OrderType()==ORDER_TYPE_BUY_STOP  || ord.OrderType()==ORDER_TYPE_BUY_STOP_LIMIT))  sum_volume += ord.VolumeCurrent();
         if(oper==2 && (ord.OrderType()==ORDER_TYPE_SELL || ord.OrderType()==ORDER_TYPE_SELL_LIMIT || ord.OrderType()==ORDER_TYPE_SELL_STOP || ord.OrderType()==ORDER_TYPE_SELL_STOP_LIMIT)) sum_volume -= ord.VolumeCurrent();
        }
     }
y luego analizar no sólo el valor, sino también el signo de la suma. Míralo tú mismo más adelante.
 
Andrey F. Zelinsky:

Así es. Según la "metodología" de Roche... nivelación de tope cero significa cero y no hace falta calcularlo de ninguna manera. Pero qué hacer con las preguntas y dudas en el foro al respecto. Es necesario aclarar y santificar en la "metodología" la situación cuando la nivelación de tope es igual a cero.

Así que escribir - ¿cuál es el problema? Para hablar de nuevo

Ya se ha respondido - nivelación de parada cero no siempre significa que no existe tal restricción.

 
Rashid Umarov:
y luego analiza no sólo el valor, sino también el signo de la suma. Mira más por ti mismo

¿Por qué? Porque la salida será la suma de posiciones y órdenes en una sola dirección.

 
Oleksii Chepurnyi:

¿Por qué? Porque la salida será la suma de posiciones y órdenes en una sola dirección.

Permítame recordarle su pregunta de

Según tengo entendido, el cálculo debería tener en cuenta el volumen de todas las posiciones y órdenes sólo en la dirección en la que vamos a abrir una operación o colocar una orden.

Pero aquí la limitación en el número de lotes para un símbolo la dirección no se tiene en cuenta en absoluto....

¿O he entendido algo mal?


¿Cuál es el problema?
 
Rashid Umarov:

¿Qué ocurre?

¿Por qué necesitamos una señal? Mi ejemplo resume los volúmenes de una sola dirección.....

 

OK