MQL - язык программирования для создания автоматизированных торговых роботов
MQL (MetaQuotes Language) - это язык программирования, разработанный компанией MetaQuotes Software Corp. для написания советников, индикаторов и скриптов на платформе MetaTrader 4 и 5. Этот язык ориентирован на финансовые продукты и инвестиционные стратегии.
Как и любой язык программирования, MQL имеет свой набор синтаксических правил и стандартов, которые требуются для создания эффективного и прочного кода для торговых роботов и советников. Для решения различных задач в MQL используются переменные, логические операторы, условные операторы, циклы и другие конструкции.
Примеры кода на MQL:
1) Пример написания простого индикатора:
#property indicator_chart_window
#property indicator_buffers 1
double MyBuffer[];
void OnInit() {
SetIndexBuffer(0, MyBuffer);
}
int OnCalculate(const int rates_total,
const int prev_calculated,
const datetime &time[],
const double &open[],
const double &high[],
const double &low[],
const double &close[],
const long &tick_volume[],
const long &volume[],
const int &spread[]) {
int limit = rates_total - prev_calculated;
for (int i = 0; i < limit; i++) {
MyBuffer[i] = (high[i] + low[i]) / 2;
}
return (rates_total);
}
2) Пример написания простого советника:
void OnTick() {
double buy_price = Ask;
double sell_price = Bid;
double profit = 0;
int ticket = OrderSend(Symbol(), OP_BUY, 0.1, buy_price, 10, 0, 0, "My EA", 0, 0, Green);
if (ticket > 0) {
while (!OrderSelect(ticket, SELECT_BY_TICKET, MODE_TRADES)) {
Sleep(1000);
}
if (OrderClose(ticket, OrderLots(), sell_price, 10, Red)) {
profit = OrderProfit();
Print("Profit: ", profit);
}
}
}
Обратите внимание, что второй пример содержит функции для отправки и закрытия ордеров. Если вы хотите написать советника на MQL, необходимо учитывать существующие ограничения MetaTrader, а также быть осторожным при торговле на реальных счетах.