[¡Archivo!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. No puedo ir a ningún sitio sin ti - 4. - página 462

 
Roman.:

Puede ser normal los viernes antes de irse de fin de semana... Todavía tienes un porcentaje aprobado por Dios.

Todo debería estar escrito en su acuerdo comercial...

No he mirado tu script, pero por ejemplo, Alpari amplía el spread en las noticias (antes del fin de semana).



Así que voy a escribir un EA con todos los datos posibles sobre mi empresa de corretaje y mi cuenta. En cualquier movimiento la alerta aparecerá de inmediato.

Y no puedo encontrar el número límite de órdenes que se me permite colocar en mi empresa de corretaje, ¿por qué debería simplemente colocar 1000 órdenes pendientes y luego eliminarlas automáticamente una vez que se encuentre el límite?

 
rosomah:


1. Voy a escribir un asesor en el que voy a introducir todos los datos posibles sobre la empresa de corretaje y la cuenta. En cualquier movimiento la alerta aparecerá de inmediato.

No encuentro el número límite de órdenes que podré colocar en mi empresa de corretaje, ¿por qué debería cargar simplemente 1000 órdenes pendientes y luego eliminarlas automáticamente cuando se encuentre el límite?

1) La alerta no servirá de nada. Tiene que introducir estos parámetros de entorno en la sección de código que se encarga de ejecutar los criterios de negociación, y si alguno de estos parámetros excede su valor máximo permitido (usted lo fija), entonces tiene que tomar una decisión apropiada (por ejemplo, rechazar una operación... - realizar una operación).

2. No. No puedes hacer esto, IMHO - lee las reglas y las condiciones comerciales. Si no es así, llame al servicio técnico y a los cocineros locales para TODAS las preguntas de este tipo sobre su tipo de cuenta de operaciones.

 

Hola.

Llevo todo el día trabajando en este código - da error 131. El código debe recorrer todas las órdenes de mercado y en cada vuelta del mismo ciclo, releer el volumen de órdenes abiertas para el símbolo de la orden seleccionada. En caso de que los volúmenes de las posiciones de compra y venta de un símbolo sean diferentes, se abre una orden de bloqueo para el volumen restante.

     int i;
     int ii;
     string SMB="";
     double Price=0;
     double PriceAsk=0;
     double PriceBid=0;
     double SchBuyLotsSMB=0;
     double SchSellLotsSMB=0;
     double MarketLotSMB=0;
     for (i=OrdersTotal()-1;i>=0;i--)
      {
       if (!OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
        {
         Alert ("Ошибка ",GetLastError()," выбора ордера!");
         Print ("Ошибка ",GetLastError()," выбора ордера!");
        }
       else
        {
         SMB=OrderSymbol();
         PriceAsk=MarketInfo(SMB,MODE_ASK);
         PriceBid=MarketInfo(SMB,MODE_BID);
         for (ii=OrdersTotal()-1;ii>=0;ii--)
          {
           if (!OrderSelect(ii, SELECT_BY_POS, MODE_TRADES))
            {
             Alert ("Ошибка ",GetLastError()," выбора ордера!");
             Print ("Ошибка ",GetLastError()," выбора ордера!");
            }
           else
            {
             if(OrderSymbol()==SMB)
              {
               if(OrderType()==OP_BUY)
                {
                 SchBuyLotsSMB=SchBuyLotsSMB+OrderLots();
                }
               if(OrderType()==OP_SELL)
                {
                 SchSellLotsSMB=SchSellLotsSMB+OrderLots();
                }
              }
            }
          }
         MarketLotSMB=SchBuyLotsSMB-SchSellLotsSMB;
         if (MarketLotSMB<0)
          {
           MarketLotSMB=MathAbs(MarketLotSMB);
           Price=PriceAsk;
           OPENORDER ("Buy",SMB,MarketLotSMB,Price);
          }
         else
          {
           if (MarketLotSMB>0)
           Price=PriceBid;
           OPENORDER ("Sell",SMB,MarketLotSMB,Price);
          }            
        }
       SMB="";
       Price=0;
       PriceAsk=0;
       PriceBid=0;
       SchBuyLotsSMB=0;
       SchSellLotsSMB=0;
       MarketLotSMB=0;        
      }

Por favor, ayúdenme a encontrar la razón. 131 - He leído que tiene que ver con un error de búsqueda de volumen. Pero no lo veo.

Gracias de antemano por la respuesta.

 
TarasBY:
Usted está utilizando un bucle extraño en el bucle de orden, PERO esto es el derecho del autor, a continuación, poner a cero las lecturas totales de los lotes (SchBuyLotsSMB y SchSellLotsSMB) antes del segundo bucle.
Así que los pongo a cero.
 
nemo811:

Hola.

Llevo todo el día trabajando en este código - da error 131. El código debe recorrer todas las órdenes de mercado y en cada vuelta del mismo ciclo, releer el volumen de órdenes abiertas para el símbolo de la orden seleccionada. En caso de que los volúmenes de las posiciones de compra y venta de un símbolo sean diferentes, se abre una orden de bloqueo para el volumen restante.

Por favor, ayúdenme a encontrar la razón. 131 - He leído que tiene que ver con un error de búsqueda de volumen. Pero no lo veo.

Gracias de antemano por la respuesta.


¿Dónde tienes el deslizamiento? ¡Quizá esa sea la razón!
 
Por cierto, el código funciona correctamente si las órdenes se abren para un símbolo, y el propio EA se ejecuta en este símbolo. Si las órdenes están abiertas para 2 o más pares, o si el EA se ejecuta en un símbolo para el que no hay órdenes, hay un error.
 
borilunad:

¿Dónde tienes el deslizamiento? ¡Quizá esa sea la razón!

¿Qué significa?

Sleep (1000);

?

Lo he probado y no funciona.

 
nemo811:
Así es como los reinicio.
No lo noté de inmediato. Alternativamente (yo lo haría obligatorio), hacer la normalización del valor del lote pasado a la función token.
 
TarasBY:
No lo noté de inmediato. Como opción (yo lo haría obligatoriamente), hacer que la normalización del valor del lote se pase a la función token.
Se trataba de un pensamiento. Lo probaré ahora. Gracias.
 
nemo811:

¿Qué significa?

?

Lo he intentado, pero no funciona.


¡El deslizamiento, después del precio de apertura, al menos 30 para un 5!
Razón de la queja: