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

 

Chicos, estoy recibiendo el error 130, por favor, aconséjenme si puedo. Por favor, no critiquen demasiado, soy un principiante.

.
.
.
   double step = 0.0005;
   double val,c,r,res;
   string str;
   int i; //цикличесская
   int stp=5;
.
.
.
   c=(Ask+Bid)/2;
   r=(MathRound(c*1000))/1000;
   if((r-c)==0){
      res=r;
   }
   else{
      if((r-c)>0){
         res=r-step;
      }
      else {
         res=r+step;
      }
   }
.
.
.
      ResetLastError();
      OrderSend(Symbol(),OP_BUYLIMIT,0.01,res-stp*(i+1)*Point,3,res-(stp*(i+1)-100)*Point,res-(stp*(i+1)+5)*Point,"|",0,0,CLR_NONE);
      Print("98-",GetLastError());
.
.
...
 

Hola a todos) aconsejarme por favor - no puedo averiguar cómo escribir el código (Ejemplo; 2 robots de trabajo - cada uno tiene su propio magik) la mayoría de las órdenes de compra o venta caen en el historial de pedidos, es decir, si la orden era una venta, la siguiente transacción es una orden de compra - el problema es que no puedo seleccionar la última orden y el magik juntosy por lo tanto identificar el tipo de orden para un robot en particular (sólo una parte del código funciona - si elijo sólo el último orden de la historia - funciona perfectamente cuando el robot es uno y el segundo código escrito para las listas de todos los pedidos con un número mágico imprime su número y escribe su tipo, pero por qué entonces no devuelve el valor de la última y no puedo entender por qué) me ayudan a reunir en un todo aquí es 1 y 2 código;

1) código para determinar el último pedido, o más exactamente, su tipo

int ordenBS;

int total1=Total de Pedidos()-1;

if(OrderSelect(total1, SELECT_BY_POS, MODE_HISTORY) == true) // tipo de pedido

{ orderBS=OrderType();}

2) el código cuenta todas las operaciones ejecutadas y registra su número y tipo de orden, pero no muestra la última orden

int k ;

int ordenBS;

if(OrdersHistoryTotal()>0)

{for(int O=OrdersHistoryTotal()-1; O>=0; O--)

{ if(OrderSelect(O,SELECT_BY_POS,MODE_HISTORY))

{ si(OrderMagicNumber()!=136) continuar;

if(OrderMagicNumber()==136)

k=NúmeroMágicoDeOrden();

orderBS=Tipo de pedido();

Alert("último número de orden 136 = ", "número de orden en el historial=",O, "número mágico=",k, "orden sat comprar=",ordenBS); }}}

¡¡¡CÓMO DEVOLVER EL ÚLTIMO PEDIDO DEL HISTORIAL CON UN NÚMERO MÁGICO BUSCADO !!!


¡¡¡¡¡ayúdame pliz!!!!!

 
Tema97:

Hola a todos) aconsejarme por favor - no puedo averiguar cómo escribir el código (Ejemplo; 2 robots de trabajo - cada uno tiene su propio magik) la mayoría de las órdenes de compra o venta caen en el historial de pedidos, es decir, si la orden era una venta, la siguiente transacción es una orden de compra - el problema es que no puedo seleccionar la última orden y el magik juntosy por lo tanto identificar el tipo de orden para un robot en particular (sólo una parte del código funciona - si elijo sólo el último orden de la historia - funciona perfectamente cuando el robot es uno y el segundo código escrito para las listas de todos los pedidos con un número mágico imprime su número y escribe su tipo, pero por qué entonces no devuelve el valor de la última y no puedo entender por qué) me ayudan a conectar esto en un todo aquí 1 y 2 código;


1) Para pegar correctamente el código fuente en el foro, haga clic en SRC y pegue su código en la ventana que aparece.


2) Probar un script como este, lo he esbozado rápidamente, no lo he probado ya que no tengo órdenes en el historial.

#property strict

void OnStart()
  {
   if(OrdersHistoryTotal()>0)
     {
      for(int i=OrdersHistoryTotal()-1; i>=0; i--)
        {
         if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))
           {
            if(OrderMagicNumber()!=136) continue;
              {
               Print("Последний ордер с магик-номером 136: индекс ордера в истории = ",i,
                     " магик номер = ",OrderMagicNumber(),
                     " тип ордера = ",OrderType());
               return;
              }
           }
        }
     }
  }

3) Recuerde, si después de if hay una sola instrucción, no tiene que poner llaves { }, pero si tiene 2 o más instrucciones que dependen de este if, tiene que ponerlas dentro de { }. En su ejemplo anterior, después de la condición if(OrderMagicNumber()==136) hay 3 instrucciones to=...; orderBS=...; y Alert(); pero no están colocadas dentro de { }.

 

"¡Un hombre no es un soldado en el campo!"

Hola a todos.

¿Hay alguien de LITMO(Universidad Estatal de Mecánica y Óptica de las Tecnologías de la Información de San Petersburgo), que viva en San Petersburgo, con quien pueda reunirse en persona y hablar de cuestiones de programación?
¡¡¡¡¡Póngase en contacto conmigo personalmente o por correo electrónico: leonid.belskiy@gmail.com !!!!!
 
paladin80:

1) Para pegar correctamente el código fuente en el foro, haga clic en SRC y pegue su código en la ventana que aparece.


2) Probar con este script, rápidamente esbozado, no lo comprobé ya que no tengo órdenes en el historial.

3) Recuerde, si sólo hay una instrucción después de if, no tiene que poner llaves { }, pero si hay 2 o más instrucciones que dependen de este if, tiene que ponerlas dentro de { }. En su ejemplo anterior, después de la condición if(OrderMagicNumber()==136) hay 3 instrucciones to=...; orderBS=...; y Alert(); pero no están colocadas dentro de { }.

- Hace lo mismo que el código 2 - el último no selecciona ((((((((((((

¿puedo hacer algo como ????? a la hora de cerrar o no hay selección allí tampoco?

 
Hola a todos. ¿Quién sabe cuál es la vida útil de una matriz estática unidimensional? ¿Es lo mismo que una variable local o no?
 
i999i:
Hola a todos. ¿Quién sabe cuál es la vida útil de una matriz estática unidimensional? ¿Es lo mismo que una variable local o no?
Después de la ejecución de una función, en la que se declara el array, ¿debo borrarlo o hacer algo con él para liberar memoria, o se borrará solo?
 
i999i:
Después de ejecutar una función en la que se declara un array, ¿hay que borrarlo o hacer algo para liberar memoria, o se borra solo?
Mientras el programa se esté ejecutando, éste (el array) existe
 
Vinin:
Mientras el programa se ejecute, existe (array)
Pero si lo necesito para 1 tick por hora y no lo necesito el resto del tiempo... cómo lo borro... está ocupando memoria
 
¿Puede decirme con qué frecuencia se redibuja el gráfico por sí mismo? (así como forzado porChartRedraw() )
Razón de la queja: