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

hzhlм¬°eaв-_atc.mq4

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

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

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

О программе

Программа представляет собой торгового советника для платформы MetaTrader 4, написанного на языке MQL4. Она обрабатывает события тиков через функцию start() и выполняет торговые операции с помощью OrderSend и OrderClose.

Советник рассчитывает размер лота на основе свободной маржи счёта или фиксированного значения, в зависимости от состояния переключателя. При отсутствии управляемых ордеров программа случайным образом выбирает направление — покупку или продажу — и открывает позицию.

При наличии открытых позиций советник добавляет ордера при достижении определённых ценовых уровней, корректируя размер лота и расстояние по заданным параметрам. Также реализована функция закрытия всех управляемых ордеров при достижении заданной разницы между эквити и балансом.

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

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

НастройкаОписание
lot Размер лота — Фиксированный размер лота, используемый при открытии и добавлении позиций.
HZH HZH — Числовой параметр, используемый при расчёте ценовых уровней и условий закрытия позиций.
HZH_1 HZH_1 — Числовой параметр-множитель, применяемый при вычислении ценовых дистанций для открытия дополнительных ордеров.
HZH_2 HZH_2 — Числовой параметр-множитель, определяющий коэффициент увеличения лота при добавлении позиций.
Slippage Проскальзывание — Допустимое проскальзывание в пунктах при исполнении торговых ордеров.
MagicNumber Магический номер — Целочисленный магический номер для идентификации ордеров, управляемых данным советником.
???????????????? (FixLotMM) Фиксированный лот — Переключатель, определяющий способ расчёта лота: фиксированный размер или расчёт на основе процента риска от свободной маржи.
???????? (RiskPercent) Процент риска — Процент риска, используемый при расчёте лота от свободной маржи счёта при отключённом фиксированном лоте.
Получить полный код

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

extern double lot =0.1;
extern double HZH = 50;                                                  
extern double HZH_1 =3;                                                               
extern double HZH_2 =1; 
extern double HZH????????= 10;
extern int Slippage = 3;  
extern int MagicNumber=24680; 
extern bool   FixLotMM     = FALSE;//????????????????
extern double RiskPercent  = 1.0;//????????
double Lots,MinLot,Lots1,LotStep,MaxLot;

int Ticket;
int HoldingOrderType;
double nextlots;
double nextbuyprice;
double nextsellprice;
double addpoint;

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

int deinit()
  {

   return(0);
  }

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

      if (FixLotMM)//????????????????????????????????
    Lots = lot;
  else //????????????????????????
    Lots = AccountFreeMargin() / 1000.0 * (RiskPercent / 100.0);

   if //????????????????????????????????????????????????
    (Lots < MinLot) Lots = MinLot;
  else
  { //????????????????????????????????????????????????
    if (Lots > MaxLot) 
      Lots = MaxLot;
    else//??????????????????????????????????????????????lot??????
    {
      for (Lots1 = MinLot; Lots1 <= Lots; Lots1 += LotStep) {}
      Lots = Lots1 - LotStep;
    }
  }

  if (Lots > 2300.0) Lots = NormalizeDouble(Lots, 0);//????????2300????????????

       int HoldingOrders = 0;
       if( OrdersTotal() != 0) {
          for (int i = 0; i < OrdersTotal(); i++) {
             OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
             if (OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber){
                 HoldingOrders++;
             }
          }
       }

      if(AccountEquity()-AccountBalance()>=HZH????????)CloseAllOrder();

      MathSrand(TimeLocal());
      if(MathRand()%2 ==0 && HoldingOrders==0){             //????
           Ticket=OrderSend(Symbol(),OP_BUY,Lots,NormalizeDouble(Ask, Digits),Slippage,0,0,"dummy-buy",MagicNumber,0,Red);
           if(Ticket>0){
              if (OrderSelect(Ticket,SELECT_BY_TICKET,MODE_TRADES)){
                 HoldingOrderType = OrderType();
                 nextlots = NormalizeDouble(Lots*HZH_2,1);
                 addpoint=HZH*HZH_1;
                 nextbuyprice=OrderOpenPrice()-addpoint*Point;

                 Print("Pivot dummy-buy order opened : ",OrderOpenPrice());
              }
              else{
                 Print("Error opening Pivot dummy-buy order : ",GetLastError());
                 return(0);
              }
           }
      }else
      if(MathRand()%2 ==1 && HoldingOrder

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

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

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

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

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

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

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