Глава 6 - "Обучение программированию на MQL4: Торговые советники"!

Форум Vikpro.net — это площадка для общения и обмена опытом форекс трейдеров со всего мира. Здесь вы можете найти ответы на свои вопросы, поделиться своими знаниями и идеями с другими пользователями.

Домой Програмирование MQL4 Глава 6 - "Обучение программированию на MQL4: Торговые советники"!
1ответ(ов) в теме
Tanya
не в сети 3 дня
На сайте с 24.12.2022
Участник
Тем 21
Сообщения 44
1
08:46

Глава 6: Управление позициями и ордерами

В этой главе мы рассмотрим важные аспекты управления позициями и ордерами в вашем торговом советнике на MQL4. Управление позициями и ордерами является ключевым для эффективной торговли и защиты вашего капитала.

6.1 Открытие и закрытие позиций
Открытие позиций - это процесс размещения ордера на покупку или продажу определенного актива. В MQL4 вы можете использовать функцию OrderSend() для открытия позиций.

Пример открытия позиции:

int type = OP_BUY; // Тип ордера (покупка)
double lotSize = 0.01; // Размер лота
double price = Ask; // Цена открытия позиции
int slippage = 3; // Проскальзывание
double stopLoss = 1.2300; // Уровень стоп-лосс
double takeProfit = 1.2500; // Уровень тейк-профит
bool result = OrderSend(Symbol(), type, lotSize, price, slippage, stopLoss, takeProfit);

В этом примере мы используем функцию OrderSend(), чтобы разместить ордер на покупку (OP_BUY). Мы указываем размер лота (lotSize), цену открытия позиции (price), проскальзывание (slippage), уровень стоп-лосс (stopLoss) и уровень тейк-профит (takeProfit).

Закрытие позиций - это процесс закрытия открытых позиций. В MQL4 вы можете использовать функцию OrderClose() для закрытия позиций.

Пример закрытия позиции:

int ticket = OrderTicket(); // Номер ордера
double lots = OrderLots(); // Размер лота
double price = Bid; // Цена закрытия позиции
int slippage = 3; // Проскальзывание
bool result = OrderClose(ticket, lots, price, slippage);

В этом примере мы используем функцию OrderClose(), чтобы закрыть открытую позицию с заданным номером ордера (ticket). Мы указываем размер лота (lots), цену закрытия позиции (price) и проскальзывание (slippage).

6.2 Модификация позиций и ордеров
Модификация позиций и ордеров позволяет вам изменять параметры уже открытых позиций и ордеров. В MQL4 вы можете использовать функции OrderModify() и OrderSend() для модификации позиций и ордеров соответственно.

Пример модификации стоп-лосса позиции:

int ticket = OrderTicket(); // Номер ордера
double stopLoss = 1.2400; // Новый уровень стоп-лосс
int slippage = 3; // Проскальзывание
bool result = OrderModify(ticket, OrderOpenPrice(), stopLoss, OrderTakeProfit(), 0, Blue, slippage);

В этом примере мы используем функцию OrderModify(), чтобы изменить уровень стоп-лосса для открытой позиции с заданным номером ордера (ticket). Мы указываем новый уровень стоп-лосса (stopLoss), текущую цену открытия позиции (OrderOpenPrice()), текущий уровень тейк-профита (OrderTakeProfit()), ноль для значения отложенных ордеров, цвет (Blue) и проскальзывание (slippage).

6.3 Управление ордерами и позициями
Управление ордерами и позициями включает в себя контроль и мониторинг открытых ордеров и позиций в вашем торговом советнике. В MQL4 вы можете использовать функции OrdersTotal(), OrderSelect(), OrderMagicNumber(), OrderType(), OrderSymbol(), OrderLots(), OrderProfit() и другие для управления ордерами и позициями.

Пример получения информации о всех открытых позициях:

int totalPositions = OrdersTotal(); // Общее количество ордеров
int counter = 0; // Счетчик позиций

for (int i = 0; i < totalPositions; i++)
{
   if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
   {
      if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber)
      {
         double lots = OrderLots(); // Размер лота
         double profit = OrderProfit(); // Прибыль
         int type = OrderType(); // Тип ордера

         // Дополнительные операции с позицией...

         counter++;
      }
   }
}

Print("Найдено ", counter, " позиций");

В этом примере мы используем цикл for для прохода через все открытые ордера. Мы используем функцию OrderSelect() для выбора ордера по его индексу (i) и проверяем, соответствует ли символ ордера (OrderSymbol()) текущему символу, а также соответствует ли номер ордера магическому числу (MagicNumber). Мы получаем информацию о размере лота (OrderLots()), прибыли (OrderProfit()) и типе ордера (OrderType()). Вы также можете выполнить дополнительные операции с позицией внутри цикла.

Эта глава познакомила вас с основными аспектами управления позициями и ордерами в вашем торговом советнике на MQL4. Открытие, закрытие и модификация позиций, а также управление ордерами, являются важными элементами успешной торговли. В следующей главе мы рассмотрим тему денежного управления и риск-менеджмента.

Продолжайте изучение и практикуйтесь в программировании на MQL4!

Примечание от Тани:
Приветствую вас! Я надеюсь, что эта глава помогла вам понять, как эффективно управлять позициями и ордерами в MQL4. Управление позициями, открытие и закрытие ордеров, а также модификация параметров являются важными навыками для успешной торговли на рынке. В следующей главе мы рассмотрим важность денежного управления и риск-менеджмента, которые помогут вам защитить ваш капитал и повысить стабильность ваших торговых операций. Если у вас возникли вопросы, не стесняйтесь задавать их - я всегда готова помочь!

0
Вы не имеете права на публикацию сообщений в этой теме

Спасибо вам за выбор Форума VikPro Портала, как место общения!