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

 
simpleton:

Si se necesitan otros cálculos además del precio total de la posición, se pueden "devolver" los valores de S1 y S2 a la función llamada pasando las propias variables por referencia, y devolver el signo de error de la función. Es decir, el prototipo de la función llamada podría tener el siguiente aspecto: "bool fun(double &S1, double &S2);". La función que llama inicia las variables, las pasa a fun() y, si fun() devuelve true, utiliza los valores de las variables pasadas (que a su vez pueden tener nombres diferentes) como S1 y S2.

Gracias. Entendido. Excepto que con el error en OrderSelect, no está claro cómo parar excepto paracontinuar.

Borrado el post tarde, hizo casi lo mismo que se describe.

double CenaUsrednenija(const int type,const int Magic){
double nn=0,bb=0;
 double factb=0;
  int total=OrdersTotal();

for(int i=total-1; i>=0; i--)
  {
    if (!(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))) continue;
    if (OrderSymbol() != Symbol()) continue;  

   if(OrderSelect(i,SELECT_BY_POS))
     {
      if(OrderSymbol()==Symbol())
        {
         if(OrderType()==type && OrderMagicNumber()==Magic)
           {
            double op=OrderOpenPrice();
            double llot=OrderLots();
            double itog=op*llot;
            bb=bb+itog;
            nn=nn+llot;
            factb=NormalizeDouble(bb/nn,_Digits);
        //  Print("  type= ",type," Цена открытия= ",op, " Лот= ",llot, " itog=op*llot= ",itog, " factb=bb/nn= ",factb);
        
           }
        }
     }
  }  return(factb);  
}  
 

No puedo escribir una función como ésta.

- Si una orden de VENTA tiene una pérdida de -1000 pips. entonces abrimos la misma orden de VENTA a 1000 puntos de la primera. Si otro -1000p, abrimos otra orden de VENTA, etc.

 
Top2n:

No puedo escribir una función como ésta.

- Si una orden de VENTA tiene una pérdida de -1000 pips. entonces abrimos la misma orden de VENTA a 1000 puntos de la primera. Si otro -1000p, abrimos otra orden de VENTA, etc.


¿Cuál es el problema aquí? Se selecciona la orden OrderSelect necesaria, por ejemplo, en el ticket, se compara el beneficio de la misma con la orden OrderProfit y se envía una solicitud para abrir una OrderSend más.
 
Top2n:

No puedo escribir una función como ésta.

- Si una orden de VENTA tiene una pérdida de -1000 pips. entonces abrimos la misma orden de VENTA a 1000 puntos de la primera. Si otro -1000p, abrimos otra orden de VENTA, etc.


De acuerdo con esta condición, la segunda orden debe abrirse al precio actual que está aproximadamente a 1000 puntos de distancia del precio de apertura de la primera orden, por lo que no hay nada difícil - una simple orden para abrir una nueva posición.
 
Señores, ¿alguien puede decirme dónde encontrar un archivo de citas de mejor calidad?
 
Top2n:
Señores, ¿alguien puede decirme dónde encontrar un archivo de citas de mejor calidad?

Descargamos Tickstory y lo utilizamos para descargar los ticks de Dukascopia, luego podemos exportarlos a MT4, pero es sólo temporal, el terminal los sobrescribirá con sus propios archivos. Es decir, es sólo para el probador, por lo que la calidad de la simulación es del 99,9%.
 
evillive:

Descargue Tickstory y úselo para descargar los ticks de Dukascopy, luego puede exportarlos a MT4, pero esto es sólo temporal, la terminal los sobrescribirá con sus propios archivos. Es decir, es sólo para el probador, para que la calidad de la simulación sea del 99,9%.

Sí, el tema, ¡muchas gracias!)
 

No puedo entender qué pasa con WindowTimeOnDropped(). No hay valores al restablecer el gráfico( todo el tiempo =0). Escribí un pequeño código para comprobarlo.


//+------------------------------------------------------------------+
#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 Red
//---- input parameters

double xBuffer[];
int init()
  {
   string short_name;
//---- indicator line
   SetIndexStyle(0,DRAW_LINE);
   SetIndexBuffer(0,xBuffer);
//---- name for DataWindow and indicator subwindow label
   short_name="Mouse";
   IndicatorShortName(short_name);
   SetIndexLabel(0,short_name);
//----
   return(0);
  }

int start()
  {
  datetime Mouse=WindowTimeOnDropped();
  Alert(" Mouse= ",Mouse);
  xBuffer[0]=Mouse;
  return(0);
  }
 
Colegas, ¿aconsejan cómo ignorar el evento onChartEvent(...) en EA?

El problema es que si cambias el marco temporal cuando el EA está funcionando, el EA se reiniciará y volverá a abrir las operaciones. A su vez, las operaciones que se han abierto antes permanecen "desatendidas".

¿Cómo luchar? Tengo que redibujar el gráfico de milagro, pero necesita un EA previamente inicializado.

 
intrade:
Colegas, ¿aconsejan cómo ignorar el evento onChartEvent(...) en EA?

El problema es que si cambias el marco temporal cuando el EA está funcionando, el EA se reiniciará y volverá a abrir las operaciones. A su vez, las operaciones que se han abierto antes permanecen "desatendidas".

¿Cómo luchar? Tengo que redibujar el gráfico de milagro, pero necesita un EA previamente inicializado.


Prescribir condiciones de apertura exactas e inequívocas.