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

ima_expert.mq5

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

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

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

О программе

Данный продукт представляет собой торговый советник для платформы MetaTrader 5, написанный на языке MQL5. Советник использует пользовательский индикатор "ima" для анализа текущей рыночной ситуации и генерации торговых сигналов.

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

Для управления позициями реализована модификация ордеров при достижении определённого уровня прибыли, а также закрытие позиций при превышении заданного порога убытка. Размер лота рассчитывается на основе свободного маркета и параметров риска с проверкой достаточности средств для открытия сделки.

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

НастройкаОписание
n Период скользящей средней, используемый в пользовательском индикаторе "ima".
take Уровень фиксации прибыли в пунктах, при достижении которого позиция модифицируется с переносом стоп-лосса.
drop Порог убытка в пунктах, при превышении которого открытая позиция принудительно закрывается.
k Коэффициент чувствительности, определяющий минимальную скорость изменения индикатора для генерации сигнала на открытие позиции.
r Коэффициент риска, используемый для расчёта размера лота на основе свободного маркета.
max_lots Максимально допустимый размер лота для открытой позиции.
Получить полный код

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

#property version   "1.00"

#include <Trade\Trade.mqh>
#include <Trade\PositionInfo.mqh>
#include <Trade\AccountInfo.mqh>

input int n=5;            // MA Period
input int take=50;        // ??????? ?????? ???????
input int drop=1000;      // ??????? ?????? ??????
input double k=0.5;       // ??????? ????????
input double r=0.01;      // ??????? ?????
input double max_lots=1;  // ???????????? ??? (0-??? ???????????)

int imaHandle,sp=30;
bool order_opened,f_buy,f_sell,f_buy_modify,f_sell_modify,f_close;
double lot,k1,aIMA[];
datetime h,aT[1];

MqlTick current_price;
CPositionInfo current_order;
CAccountInfo account_info;
CTrade trade;

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

void OnDeinit(const int reason)
  {
   IndicatorRelease(imaHandle);
  }

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

   order_opened=current_order.Select(_Symbol);

   CopyTime(_Symbol,0,0,1,aT);  //????????? ????? ???????? ?????????? ????
   if(!order_opened && h!=aT[0])
     {

      CopyBuffer(imaHandle,0,0,2,aIMA);  //???????? ? ????? ?????? ??????????
      ArraySetAsSeries(aIMA,true);  //????????????? ?????????? ??????? ??? ?????????

      k1=(aIMA[0]-aIMA[1])/MathAbs(aIMA[1]);
      f_buy=(k1>=k);   //?????? ? ???????? ??????? ???????
      f_sell=(k1<=-k); //?????? ? ???????? ???????? ???????
      h=aT[0];
     }

   if(order_opened && current_order.Profit()>0)
     {

      SymbolInfoTick(_Symbol,current_price);

      f_buy_modify=(current_order.Type()==POSITION_TYPE_BUY && 
                    (current_price.bid-current_order.PriceOpen())/_Point>take &&
                    (current_price.bid-current_order.StopLoss())/_Point>take);
      f_sell_modify=(current_order.Type()==POSITION_TYPE_SELL && 
                     (current_order.PriceOpen()-current_price.ask)/_Point>take && 
                     (M

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

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

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

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

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

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

Стоимость полного кода
331,70₽ ≈ $4.05