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

 
AlexMikash:

Buenos días, estimados señores.

Necesito llamar a las variables: máximo del día, mínimo del día, precio de cierre y apertura del día actual, y el precio de apertura del día siguiente.

Saludos, AlexMikash

https://docs.mql4.com/ru/series

if(DayOfWeek()==1,2..... && Hour()==1,2....)
{
double hi=iHigh(NULL,0,iBarShift(NULL,0,iTime(NULL, PERIOD_D1,0));//define high
double low=iLow(NULL,0,iBarShift(NULL,0,iTime(NULL,PERIOD_D1,0));//define low.

/////////////////////////////////////////////////////////////////////////////////////////////////

double op=iOpen(NULL,0,iBarShift(NULL,0,iTime(NULL,PERIOD_D1,0));//definir apertura.

 
woin2110:

si ((hi-low)<=max_koridor_v_punktah)
{
int buy = OrderSend(Symbol(), OP_BUYSTOP, LotBuy, OpenBuy, 0, StopLossBuy, 0);//abrir orden de compra.

si (compra>0)
{
Alerta ("La orden BuyStop se ha establecido ",buy);
}
int sell= OrderSend(Symbol(), OP_SELLSTOP, LotSell, OpenSell, 0, StopLossSell, 0);//abrir orden de venta.
si (venta>0)
{
Alerta ("SellStop order set ",sell);
}
if (DayOfWeek()==5 && Hour()==22) //borrar las órdenes pendientes y abiertas el viernes a las 23:00 hora del servidor
{
if (OrderSelect(sell,SELECT_BY_TICKET)==true)
{
OrderClose(sell,OrderLots(),Bid,3,Green);//(Ticket,lot,Precio de cierre, deslizamiento en puntos, color de la flecha de cierre en el gráfico)

Cerrar la orden de mercado para vender.
OrderDelete(sell);//cerrando el límite de venta.
}
if (OrderSelect(buy,SELECT_BY_TICKET)==true)
{
OrderClose(buy,OrderLots(),Ask,3,Red);//(Ticket, lote, precio de cierre, deslizamiento en puntos, color de la flecha de cierre en el gráfico)

Cerrar la orden de mercado para comprar.
OrderDelete(buy);//cerrando el límite de compra.
return(0);
}
}
}

¿Quién puede decirme por qué no cierra las órdenes y no borra los límites?

al menos

así:

if ((hi-low)<=max_koridor_v_punktah)
{
buy = OrderSend(Symbol(), OP_BUYSTOP, LotBuy, OpenBuy, 0, StopLossBuy, 0);//открытие ордера на покупку.

if (buy>0) 
{
Alert ("Установлен ордер BuyStop ",buy);
}
 sell= OrderSend(Symbol(), OP_SELLSTOP, LotSell, OpenSell, 0, StopLossSell, 0);//открытие ордера на продажу.
if (sell>0) 
{
Alert ("Установлен ордер SellStop ",sell);
}
if (DayOfWeek()==5 && Hour()==22) //удаляем отложенные и открытые ордера в пятницу, в 23:00 по серверному времени 
{
if (OrderSelect(sell,SELECT_BY_TICKET)==true)
{
OrderClose(sell,OrderLots(),Bid,3,Green);//(тикет,лот,цена закрытия,проскальзывание в пунктах,цвет 
стрелки закрытия на графике)зыкрытие рыночного ордера на продажу.
OrderDelete(sell);//закрытие лимиток на продажу.
}
if (OrderSelect(buy,SELECT_BY_TICKET)==true)
{
OrderClose(buy,OrderLots(),Ask,3,Red);//(тикет,лот,цена закрытия,проскальзывание в пунктах,цвет стрелки 
закрытия на графике)зыкрытие рыночного ордера на покупку.
OrderDelete(buy);//закрытие лимиток на покупку.
return(0); 
}
} 
}
далее int buy,sell; должно быть за пределами старта
Да и лимиток тут нет, поэтому закрыть он их и не должен. 
 
Vladon:

al menos

así:

Gracias
 
¿Existe algún recurso/plataforma que permita probar los EAs en varias divisas?
 
evillive:
El robot se descarga de la memoria cuando se retira del gráfico y cuando se cierra el terminal. Al menos mira el manual un rato, es muy útil y te quita muchas dudas.

no leerán. ni siquiera verán el vídeo. hay que hipnotizarlos de alguna manera.....
 
Trader7777:
¿Existe algún recurso/plataforma que permita probar los EAs en varias divisas?


Sí.

MT5

 
Vladon:


Sí.

MT5


¿Funcionará un EA escrito en MLQ4?
 
isn-88:

Hola. Estoy tratando de entender cómo funcionan los eventos. NO me ha funcionado el evento de borrar un objeto del gráfico (CHARTEVENT_OBJECT_DELETE). Se elimina tanto con el ratón como a través de la Lista de Objetos. Construye 600.

Por favor, dígame qué pasa.

Utilizo el código de la ayuda

#define KEY_NUMPAD_5 12
#define KEY_LEFT 37
#define KEY_UP 38
#define KEY_RIGHT 39
#define KEY_DOWN 40
#define KEY_NUMLOCK_DOWN 98
#define KEY_NUMLOCK_LEFT 100
#define KEY_NUMLOCK_5 101
#define KEY_NUMLOCK_RIGHT 102
#define KEY_NUMLOCK_UP 104
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//---
Print("Запущен эксперт с именем ",MQLInfoString(MQL_PROGRAM_NAME));
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| ChartEvent function |
//+------------------------------------------------------------------+
void OnChartEvent(const int id, // идентификатор события
const long& lparam, // параметр события типа long
const double& dparam, // параметр события типа double
const string& sparam) // параметр события типа string
{
//--- нажатие левой кнопкой мышки на графике
if(id==CHARTEVENT_CLICK)
{
Print("Координаты щелчка мышки на графике: x = ",lparam," y = ",dparam);
}
//--- нажатие мышкой на графическом объекте
if(id==CHARTEVENT_OBJECT_CLICK)
{
Print("Нажатие кнопки мышки на объекте с именем '"+sparam+"'");
}
//--- нажатие кнопки на клавиатуре
if(id==CHARTEVENT_KEYDOWN)
{
switch(int(lparam))
{
case KEY_NUMLOCK_LEFT: Print("Нажата KEY_NUMLOCK_LEFT"); break;
case KEY_LEFT: Print("Нажата KEY_LEFT"); break;
case KEY_NUMLOCK_UP: Print("Нажата KEY_NUMLOCK_UP"); break;
case KEY_UP: Print("Нажата KEY_UP"); break;
case KEY_NUMLOCK_RIGHT: Print("Нажата KEY_NUMLOCK_RIGHT"); break;
case KEY_RIGHT: Print("Нажата KEY_RIGHT"); break;
case KEY_NUMLOCK_DOWN: Print("Нажата KEY_NUMLOCK_DOWN"); break;
case KEY_DOWN: Print("Нажата KEY_DOWN"); break;
case KEY_NUMPAD_5: Print("Нажата KEY_NUMPAD_5"); break;
case KEY_NUMLOCK_5: Print("Нажата KEY_NUMLOCK_5"); break;
default: Print("Нажата какая-то неперечисленная клавиша");
}
ChartRedraw();
}
//--- удален объект
if(id==CHARTEVENT_OBJECT_DELETE)
{
Print("Удален объект с именем ",sparam);
}
//--- создан объект
if(id==CHARTEVENT_OBJECT_CREATE)
{
Print("Создан объект с именем ",sparam);
}
//--- перемещен объект или изменены координаты точек привязки
if(id==CHARTEVENT_OBJECT_DRAG)
{
Print("Изменение точек привязки объекта с именем ",sparam);
}
//--- изменен текст в поле ввода графического объекта Edit
if(id==CHARTEVENT_OBJECT_ENDEDIT)
{
Print("Изменен текст в объекте Edit ",sparam);
}
}


Para mí también es raro.
 
Trader7777:

¿Funcionará un EA escrito en MLQ4?


Si traduces el código a mt5 entonces sí.

no hay otros remedios.

 
Zolotai:


Gracias. ¿Para qué necesitas void init y deinit? Entiendo que deinit, sólo ejecuta código. Cuando el robot se pone en marcha, ¿verdad? ¿Y el init?

Cómo se puede utilizar un código. Es decir, no tienes que preocuparte por los cinco dígitos. ¿Cómo sé cuáles son mis cinco dígitos en este momento?

Una simple condición en la función init
double point;
int OnInit()
{
point = Point;
if(Digits % 2 == 1)// значит пятизнак
point *= 10;
}
Los metales, las existencias y las materias primas no cuentan.