Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 6. - página 511

 
AlexMikash:

Bom dia, queridos senhores!

Preciso chamar as variáveis: máximo do dia, mínimo do dia, preço de fechamento e abertura do dia atual, e o preço de abertura do dia seguinte!

Cumprimentos, AlexMikash

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

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

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

double op=iOpen(NULL,0,iBarShift(NULL,0,iTime(NULL,PERIOD_D1,0));//define opening.

 
woin2110:

if ((hi-low)<=max_koridor_v_punktah)
{
int buy = OrderSend(Symbol(), OP_BUYSTOP, LotBuy, OpenBuy, 0, StopLossBuy, 0);//open Buy OrderSend(Symbol(), OP_BUYSTOP, LotBuy, OpenBuy, 0);//open Buy Order.

se (comprar>0)
{
Alerta ("O pedido BuyStop foi estabelecido",comprar);
}
int sell= OrderSend(Symbol(), OP_SELLSTOP, LotSell, OpenSell, 0, StopLossSell, 0);//open Sell order.
se (vender>0)
{
Alerta ("SellStop order set ",vender);
}
se (DayOfWeek()==5 && Hour()==22) //apagar pedidos pendentes e abertos na sexta-feira, 23:00 horas, horário do servidor
{
se (OrderSelect(vender,SELECT_BY_TICKET)==verdadeiro)
{
EncomendarFechar(Venda,EncomendarLotes(),Oferta,3,Verde);//(Bilhete,lote,Preço fechado, deslizamento em pontos, cor da seta de fechamento no gráfico)

Ordem de fechamento do mercado para vender.
OrdemDelete(venda);//fechando o limite de venda.
}
se (OrderSelect(buy,SELECT_BY_TICKET)==verdadeiro)
{
OrderClose(compra,OrderLots(),Ask,3,Red);//(bilhete, lote, preço de fechamento, deslizamento em pontos, cor da seta de fechamento no gráfico)

Encerrar a ordem de compra no mercado.
OrderDelete(compra);//fechando o limite de compra.
retorno(0);
}
}
}

Quem pode me dizer por que ele não fecha os pedidos e não elimina os limites?

pelo menos

assim:

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:

pelo menos

assim:

Obrigado
 
Existe algum recurso/plataforma que permita o teste de EAs em várias moedas?
 
evillive:
O robô é descarregado da memória quando removido da tabela e quando o terminal é fechado. Pelo menos olhe o manual por um tempo, ele é muito útil e tira muitas dúvidas da sua mente.

eles não vão ler. eles não vão nem assistir ao vídeo. você tem que hipnotizá-los de alguma forma.....
 
Trader7777:
Existe algum recurso/plataforma que permita o teste de EAs em várias moedas?


Sim.

MT5

 
Vladon:


Sim.

MT5


Um EA escrito em MLQ4 funcionará?
 
isn-88:

Olá. Estou tentando descobrir como funcionam os eventos. NÃO trabalhei o evento de apagar um objeto do gráfico (CHARTEVENT_OBJECT_DELETE). Removido tanto com o mouse quanto através da Lista de Objetos. Construir 600.

Por favor, diga-me o que está errado?

Eu uso código de ajuda

#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);
}
}


É estranho para mim, também.
 
Trader7777:

Um EA escrito em MLQ4 funcionará?


Se você traduzir o código para mt5, então sim.

não há outros remédios.

 
Zolotai:


Obrigado. Para que você precisa do init e do deinit nulo? Eu entendo deinit, ele só executa código. Quando o robô começa, certo? E init ?

Como se pode usar um código. Ou seja, você não precisa se preocupar com os cinco dígitos. Como posso saber quais são meus cinco dígitos no momento?

Uma condição simples na função init
double point;
int OnInit()
{
point = Point;
if(Digits % 2 == 1)// значит пятизнак
point *= 10;
}
Metais, estoques e matérias primas não contam.