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

 
waroder:


Según entiendo (espero que correctamente:))Zolotai quiere tomar los datos de dos sentencias de bucle y escribirlos en archivos de texto. De cada uno a un archivo separado. Luego quiere cargar los datos de estos archivos en arrays. A continuación, estas dos matrices deben unirse en una sola para que los datos de dos operadores no se mezclen y se correlacionen entre sí por cada barra.

así))))


 
waroder:


tal y como lo he entendido (espero que correctamente:)) Zolotai quiere tomar los datos de dos sentencias de bucle y escribirlos en archivos de texto. De cada uno a un archivo separado. Luego quiere cargar los datos de estos archivos en arrays. A continuación, estas dos matrices deben unirse en una sola para que los datos de dos operadores no se mezclen y se correlacionen entre sí por cada barra.

así))))

¿Por qué tenemos que fusionar los datos en una matriz multidimensional? La primera dimensión está indexada por tiempo (barras) - el resto son datos de la matriz. Y ordena todos los datos de la primera dimensión como quieras.
 

Gente, necesito ayuda, el código de abajo se ejecuta sólo la segunda parte, cuando sellstop debe establecerse, y buystop por alguna razón no se establece, aunque todas las condiciones se cumplen, ni siquiera puedo ver lo que está mal))

if (OrdersTotal()==2)

{

OrderSelect(2,SELECT_BY_TICKET);

if (OrderType()==OP_SELL)

{

OrderSelect(2,SELECT_BY_TICKET);

double b = OrderOpenPrice();

OrderSend(Symbol(),OP_BUYSTOP,2,b+28*Punto,3,b-25*Punto,b+50*Punto,0,5);

}

OrderSelect(4,SELECT_BY_TICKET);

if (OrderType()==OP_BUY)

{

OrderSelect(4,SELECT_BY_TICKET);

double a = OrderOpenPrice();

OrderSend(Symbol(),OP_SELLSTOP,2,a-28*Point,3,a+25*Point,a-50*Point,0,6);

}

}

 

Bien, como sabes con seguridad que la orden número 2 es una orden de venta, todo lo que tienes que hacer es normalizar el precio, el stop y la toma.

Y mira los registros de EA.

 

Hola, Me pueden aconsejar por favor - Estoy buscando un búho o un guión:

Hay un nivel de orden hay un stop y 3 takeprofits, es necesario que cuando se alcance un determinado nivel por ejemplo la primera orden tr se cierre por una parte determinada (fijada por mi) y la parte restante se transfiera a un nivel que también fijo yo..:

Ejemplo

orden a 1,5800 stop 1,5750 1 posición - 1,5850 2 puntos - 1,5900 3 puntos - 1,5950, por lo que cuando la orden llega a 1,5850 supongamos que se cierra el 40% del lote, el resto a 1,5800 (es decir, en bu) a 2 puntos el 20% y el resto se transfiere a 1,5850 y 3 puntos se cierran completamente.

Lo más importante es poder cambiar yo mismo los valores en función de la situación.

 
zaqwsx123:

Gente, necesito ayuda, el código de abajo se ejecuta sólo la segunda parte, cuando sellstop debe establecerse, y buystop por alguna razón no se establece, aunque todas las condiciones se cumplen, ni siquiera puedo ver lo que está mal))

if (OrdersTotal()==2)

{

OrderSelect(2,SELECT_BY_TICKET);

if (OrderType()==OP_SELL)

{

OrderSelect(2,SELECT_BY_TICKET);

double b = OrderOpenPrice();

OrderSend(Symbol(),OP_BUYSTOP,2,b+28*Punto,3,b-25*Punto,b+50*Punto,0,5);

}

OrderSelect(4,SELECT_BY_TICKET);

if (OrderType()==OP_BUY)

{

OrderSelect(4,SELECT_BY_TICKET);

double a = OrderOpenPrice();

OrderSend(Symbol(),OP_SELLSTOP,2,a-28*Point,3,a+25*Point,a-50*Point,0,6);

}

}

El ticket #2, así como el #4, sólo pueden aparecer en el probador. Esto es una utopía en lo real/demo. Cuando se selecciona una orden en un billete, primero hay que asegurarse de que la orden está seleccionada, y luego comprobar la hora de su cierre. Si es == 0, significa que la orden ha sido seleccionada de la lista de órdenes de mercado. Si la hora de cierre de la orden es > 0, significa que la orden ya ha sido cerrada y está seleccionada en la lista de órdenes cerradas. Cuando se envía una solicitud de negociación al servidor, todos los precios deben estar, en primer lugar, actualizados (los más recientes; para ello, los precios deben obtenerse mediante MarketInfo() o RefreshRates() antes de enviar la solicitud) y, en segundo lugar, todos los precios deben estar normalizados con los dígitos exactos
 
Villcommen:

Hola, Me pueden aconsejar por favor - Estoy buscando un búho o un guión:

Hay un nivel de orden hay un stop y 3 takeprofits, es necesario que cuando se alcance un determinado nivel por ejemplo la primera orden tr se cierre por una parte determinada (fijada por mí) y la parte restante se transfiera a un nivel que también fijo yo..:

Ejemplo

orden a 1,5800 stop 1,5750 1 posición - 1,5850 2 puntos - 1,5900 3 puntos - 1,5950, por lo que cuando la orden llega a 1,5850 supongamos que se cierra el 40% del lote, el resto a 1,5800 (es decir, en bu) a 2 puntos el 20% y el resto se transfiere a 1,5850 y 3 puntos se cierran completamente.

Lo más importante es poder cambiar yo mismo los valores en función de la situación.

¿Has mirado en la base de datos de gatos?
 

Chicos, ¡¡¡díganme sobre esta mierda!!! Cuando creo un nuevo indicador, siempre tengo un problema con la salida del buffer al gráfico. Parece que he escrito todo correctamente, pero los valores no se muestran .... Ya estoy agotado....

#property copyright "nikelodeon"
#property link      ""
extern int k=5;
extern int k1=8;

#property indicator_chart_window
double Buffer1[];
double Buffer2[];
double Buffer3[];
double Buffer4[];
double Buffer5[];
double Buffer6[];
double Buffer7[];
double Buffer8[];
int init()
  {
SetIndexBuffer(0,Buffer2);         // Назначение массива буферу
SetIndexStyle (0,DRAW_LINE,STYLE_SOLID,2,Red);// Линия
SetIndexBuffer(1,Buffer1);// Назначение массива буферу 
SetIndexStyle (1,DRAW_LINE,STYLE_SOLID,2,Blue);// Линия
SetIndexStyle (2,DRAW_ARROW,STYLE_SOLID,1,Red);
SetIndexArrow (2,159);// Стиль линии 
SetIndexBuffer(2,Buffer3);
SetIndexEmptyValue(2,0.0);// Назначение массива буферу
SetIndexStyle (3,DRAW_ARROW,STYLE_SOLID,1,Blue);
SetIndexArrow (3,159);// Стиль линии 
SetIndexBuffer(3,Buffer4);// Назначение массива буферу 
SetIndexEmptyValue(3,0.0);
SetIndexStyle (4,DRAW_ARROW,STYLE_SOLID,2,Green);
SetIndexArrow (4,159);// Стиль линии 
SetIndexBuffer(4,Buffer5);// Назначение массива буферу 
SetIndexEmptyValue(4,0.0);
SetIndexStyle (5,DRAW_ARROW,STYLE_SOLID,2,Green);
SetIndexArrow (5,251);// Стиль линии 
SetIndexBuffer(5,Buffer6);// Назначение массива буферу 
SetIndexEmptyValue(5,0.0);
SetIndexStyle (6,DRAW_ARROW,STYLE_SOLID,2,Red);
SetIndexArrow (6,241);// Вход Бай
SetIndexBuffer(6,Buffer7);// Назначение массива буферу 
SetIndexEmptyValue(6,0.0);
SetIndexStyle (7,DRAW_ARROW,STYLE_SOLID,2,Blue);
SetIndexArrow (7,242);// Вход сел 
SetIndexBuffer(7,Buffer8);// Назначение массива буферу 
SetIndexEmptyValue(7,0.0);

   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
  int i,b,limit;
limit=Bars;
if (b!=Bars){
b=Bars;
      for(i=limit; i>=0; i--){
      
      if ((setupUP(i,4,5)==1)) {Buffer5[i+1]=Low[i+1];} else Buffer5[i+1]=0;
      if ((setupDOWN(i,4,5)==1)){Buffer5[i+1]=High[i+1];} else Buffer5[i+1]=0;
      
      
      

      }
      
  Buffer5[i+1]=Low[i+1];    
}
 
   return(0);
  }
//+------------------------------------------------------------------+


int setupUP (int i, int k, int k1)
{
int num=0;
int setUP=0;
for (i=0; i>=100; i++){
 if((Close[i+1]<Close[i+k])) {num=num+1;}
 }
 
 if (num>=k1) {
               setUP=1;
               return (setUP);     
            }
return (0);
}

int setupDOWN (int i, int k, int k1)
{
int num=0;
int setUP=0;
 if((Close[i+1]>Close[i+k])) {num=num+1;}
 if (num>k1) {
               setUP=1;
               return (setUP);     
            }

}
¿Qué debo hacer para dar salida al quinto búfer?
 
zaqwsx123:

Gente, necesito ayuda, el código de abajo se ejecuta sólo la segunda parte, cuando sellstop debe establecerse, y buystop por alguna razón no se establece, aunque todas las condiciones se cumplen, ni siquiera puedo ver lo que está mal))

if (OrdersTotal()==2)

{

...

Para insertar correctamente el código en el foro, haga clic en SRC

En realidad, deberíamos utilizar if para seleccionar el orden

if (OrderSelect(2,SELECT_BY_TICKET))
{
  //--- действие
 
Bueno, no hay profesionales en mi pregunta ????