← К каталогу
Исходный код · ID 680

trendcapture.mq4

Вы автор или правообладатель?

Сообщите нам, если считаете, что материал размещён без разрешения.

Краткий обзор

О программе

Данный советник работает на платформе MetaTrader 4 и анализирует рынок с помощью индикаторов Parabolic SAR (iSAR) и Average Directional Index (iADX). На каждом новом баре он определяет наличие открытых позиций на текущем инструменте и при их отсутствии оценивает историю сделок для выбора направления входа.

При открытии позиции советник проверяет соотношение SAR и цены закрытия, а также значение ADX. Если SAR находится ниже текущей цены и ADX ниже 20, открывается покупка; если SAR выше цены и ADX ниже 20 — продажа. Размер лота рассчитывается на основе свободного маржа счёта и параметра MaximumRisk.

Советник поддерживает фиксацию убытка и фиксацию прибыли через параметры StopLoss и TakeProfit. Кроме того, реализован механизм перевода стоп-лосса в безубыточный уровень при достижении позиции прибылью в 5 и более пунктов.

Настройки программы

НастройкаОписание
TakeProfit Число, задающее уровень тейк-профита в пунктах при открытии торговой позиции.
StopLoss Число, задающее уровень стоп-лосса в пунктах при открытии торговой позиции.
MaximumRisk Число, определяющее долю свободного маржа счёта, используемую для расчёта размера лота при открытии позиции.
Получить полный код

Поиск по коду файла

#include <stdlib.mqh>

extern double     TakeProfit=180.0;

extern double     StopLoss=50.0;

extern double     MaximumRisk = 0.03;

static int        prevtime = 0;

int start() {
      // код доступен только после оплаты
   }

   if (Time[0] == prevtime) return(0);

   prevtime = Time[0];

   int total = OrdersTotal();

   int ticket = -1;
   for(int cnt = 0; cnt < total; cnt++) {
      OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);

      if(OrderType() <= OP_SELL && OrderSymbol() == Symbol()) {
         ticket = OrderTicket();
      }
   }

   if (ticket < 0) {
      int cmd = OP_BUY;

      int htotal = HistoryTotal();

      for(int i = 0; i < htotal; i++) {
         if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY) == false) { 
            Print("?????? ? ??????? ?????! ???????? ? ???????! ????? ?? ????? ???? ??????? ? ?????? ??????"); 
            break; 
         }

         if ((OrderSymbol()!= Symbol()) || (OrderType() > OP_SELL)) 
            continue;

         if (OrderProfit() > 0) {

            cmd = OrderType();
         } else { // ? ????????? ??????, 

            if (OrderType() == OP_SELL) {
               cmd = OP_BUY;
            } else {
               cmd = OP_SELL;
            }
         }
      }  

      double sar = iSAR(NULL, 0, 0.02, 0.2, 0);
      double adx = iADX(NULL, 0, 14, PRICE_CLOSE, MODE_MAIN, 0);
      if (cmd == OP_BUY) { // ???? ????????? ??????? ???????

         if ((sar < Close[0]) && (adx < 20)) { 

            ticket=OrderSend(Symbol(),OP_BUY, LotsOptimized(), Ask, 3, Bid - StopLoss * Point, Ask + TakeProfit * Point, "TrendCapture", 16384, 0, Blue);

            if(ticket > 0) {
               if (OrderSelect(ticket, SELECT_BY_TICKET, MODE_TRADES)) 
                  Print

Показано первые 50% кода (символов: 2285)

Открыть по тарифу

Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.

Разовая покупка файла

На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.

Чтобы оформить заказ, введите email и перейдите к оплате.

Стоимость полного кода
228,50₽ ≈ $2.79