Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 1824

 
Tretyakov Rostyslav #:

a1)

а2)

б)

¿y en los otros puntos?

 
Порт-моне тв #:

¿y en los otros puntos?

Nos ocuparemos de los problemas a medida que vayan surgiendo...

Primero hay que hacer una tabla y definir qué debe estar ahí y dónde, y luego escribir las funciones

 
Mihail Matkovskij #:

La función Color debería devolver el color, no el doble.

No estaría de más estudiar el enlace que el motor del sitio añadió también.

Gracias. déjame leerlo

 
Tretyakov Rostyslav #:

Nos ocuparemos de los problemas a medida que vayan surgiendo...

Primero hay que hacer una tabla y definir qué debe estar ahí y dónde, y luego escribir las funciones

Básicamente puedo hacerlo, lo más difícil para mí es escribir el precio en un archivo y calcular el tiempo

 
Порт-моне тв #:

En principio puedo hacerlo, lo que más me cuesta es escribir el precio en un archivo y calcular el tiempo

¿Por qué escribirlo en un archivo, pudiendo hacerlo así?


Tampoco esdifícil, en el momento en que empiezas a contar

int iStart  = 0;
int iSeconds=20;
//---
   if(наступило событие)
      iStart=TimeCurrent(); // запомнили время в секундах
//---
   if((iStart+iSeconds)<=TimeCurrent()) // если время пришло
     {
      выполняем действие
     }


 
Tretyakov Rostyslav #:

Nos ocuparemos de los problemas a medida que vayan surgiendo...

Primero hay que hacer una tabla y definir qué debe estar ahí y dónde, y luego escribir funciones

int ticket;
double pricefix;
// if an object was clicked
   if(id==CHARTEVENT_OBJECT_CLICK)
     {
      // if buy button was pressed
      if(sparam=="BuyButton")
        {
         //price fixing
         pricefix = Ask; 
        
        }
     }  
    if(Ask < pricefix - 4*_Point)
    { 
   ticket = OrderSend(_Symbol,OP_BUY,0.01,Ask,3,0,Ask+300*_Point,NULL,0,0,Green);  
    }  
}

Intenté fijar el precio pulsando el botón a través de una variable, esperando que cuando el precio alcanzara esta variable, se abriera la orden, pero no ocurrió el milagro. Ayuda.

Aunque la función es teóricamente correcta, si pongo

if(Ask == pricefix)
entonces la orden se abre inmediatamente, pero necesito que sea 4 puntos menos después de recordar
 
Порт-моне тв #:

Estaba intentando hacer una fijación de precios a través de una variable, esperando que cuando el precio sea igual a esa variable, se abra una orden, pero no ocurrió el milagro. Ayuda.

Aunque la función es correcta en teoría, si pongo

La orden se abre inmediatamente pero necesito que sea 4 pips más baja después de recordar




//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- 
   ObjectCreate(0,"Button_1",OBJ_BUTTON,0,0,0);
   ObjectSetInteger(0,"Button_1",OBJPROP_XDISTANCE,20);
   ObjectSetInteger(0,"Button_1",OBJPROP_YDISTANCE,20);
   ObjectSetInteger(0,"Button_1",OBJPROP_XSIZE,100);
   ObjectSetInteger(0,"Button_1",OBJPROP_YSIZE,20);
   ObjectCreate(0,"Label_1",OBJ_LABEL,0,0,0);
   ObjectSetInteger(0,"Label_1",OBJPROP_XDISTANCE,20);
   ObjectSetInteger(0,"Label_1",OBJPROP_YDISTANCE,40);
   ObjectSetInteger(0,"Label_1",OBJPROP_CORNER,CORNER_LEFT_UPPER);
   ObjectSetString(0,"Label_1",OBJPROP_TEXT,"Price");
   ObjectSetInteger(0,"Label_1",OBJPROP_COLOR,clrBlack);
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| ChartEvent function                                              |
//+------------------------------------------------------------------+
void OnChartEvent(const int id,
                  const long &lparam,
                  const double &dparam,
                  const string &sparam)
  {
//---
   if(sparam=="Button_1")
     {
      ObjectSetString(0,"Label_1",OBJPROP_TEXT,DoubleToString(Ask-4*_Point,Digits));
     }
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   int ticket;
   double price=StringToDouble(ObjectGetString(0,"Label_1",OBJPROP_TEXT));
   if(Ask<=price) ticket = OrderSend(_Symbol,OP_BUY,0.01,Ask,3,0,Ask+300*_Point,NULL,0,0,clrGreen);  
  }
 

¡Hola!

Tengo una pregunta.

¿Hay alguna forma de recordar la reducción máxima?

Es decir, la reducción de hoy es del 16% y hace 20 días era del 5%, por lo que la reducción máxima es del 16% y si mañana es del 24%, entonces la reducción máxima es del 24%.

O es difícil de recordar.

 
Alexander Avksentyev #:

¡Hola!

Tengo una pregunta.

¿Hay alguna forma de recordar la reducción máxima?

Es decir, la reducción de hoy es del 16% y hace 20 días era del 5%, por lo que la reducción máxima es del 16% y si mañana es del 24%, entonces la reducción máxima es del 24%.

O es complicado.

CodeBase tiene indicadores que muestran el balance, la historia de la equidad del historial de operaciones. Hay más de una herramienta de este tipo.

Tomar los datos y calcularlos como un indicador normal

 
Maxim Kuznetsov #:

CodeBase tiene indicadores que muestran el balance, la historia de la equidad del historial de operaciones. Y hay más de una, tales herramientas.

Tomar los datos y calcularlos como para un indicador estándar

Bueno, por supuesto que se puede dar salida a un indicador y hacer comparaciones.

¡¡¡Gracias!!!