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

ea2.mq4

Похожие материалы по тегам

#1.mtf_collider_h4_close_13_v18bar.mq4MQL4 / MetaTrader 4 · 1 общих теговea robofibo source v.11.2.mq4MQL4 / MetaTrader 4 · 1 общих теговsma crossover scalper ea for mt4.mq4MQL4 / MetaTrader 4 · 1 общих теговr15 pivot points expert advisor by @fundedmillionairess.mq4MQL4 / MetaTrader 4 · 1 общих теговnewstrader.mq5MQL5 / MetaTrader 5 · 1 общих теговmm3.0_flip_codepro_v3.1_with_cooldown@lifeindreamsworld.mq5MQL5 / MetaTrader 5 · 1 общих тегов
Вы автор или правообладатель?

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

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

О программе

Это торговый советник для MetaTrader 4, который отслеживает ценовые движения на текущем символе и таймфрейме. Он сравнивает текущую цену закрытия с ранее зафиксированной и при достижении заданного минимального ценового сдвига в указанном временном окне открывает позицию в направлении движения. Советник автоматически рассчитывает размер лота на основе баланса счёта и заданного процента риска, а также поддерживает установку TakeProfit, StopLoss и работу трейлинг-стопа.

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

НастройкаОписание
cSeconds cSeconds — Временное окно в секундах, в течение которого проверяется достижение минимального ценового движения для открытия позиции.
MinPriceShot MinPriceShot — Минимальное ценовое движение в пунктах, необходимое для срабатывания открытия позиции.
MaxOrdersCount MaxOrdersCount — Максимальное количество одновременно открытых позиций советника.
RiskPercent RiskPercent — Процент от текущего баланса, используемый для расчёта размера лота при открытии позиции.
TakeProfit TakeProfit — Уровень фиксации прибыли в пунктах для каждой открытой позиции.
StopLoss StopLoss — Уровень стоп-лосса в пунктах для каждой открытой позиции.
TrailingStop TrailingStop — Расстояние трейлинг-стопа в пунктах, которое перемещает стоп-лосс вслед за движением цены в пользу позиции.
Slippage Slippage — Максимально допустимое проскальзывание цены в пунктах при исполнении ордера.
BuyMagic BuyMagic — Магический номер, присваиваемый покупательским позициям для их идентификации среди ордеров на счёте.
SellMagic SellMagic — Магический номер, присваиваемый продавческим позициям для их идентификации среди ордеров на счёте.
Получить полный код

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

#import "stdlib.ex4"
   string ErrorDescription(int a0); 
#import

extern int cSeconds = 14;
extern int MinPriceShot = 6;
extern int MaxOrdersCount = 1;
extern double RiskPercent = 10.0;
double Gd_104 = 0.1;
extern int TakeProfit = 20;
extern int StopLoss = 15;
extern int TrailingStop = 3;
extern int Slippage = 3;
extern int BuyMagic = 25;
extern int SellMagic = 65;
int G_datetime_136 = 0;
double G_close_140 = -1.0;
string Gs_148 = "";
double Gd_156;

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

int deinit() {
   return (0);
}

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

int f0_9(int A_cmd_0, int A_magic_4) {
   int count_8 = 0;
   for (int pos_12 = OrdersTotal() - 1; pos_12 >= 0; pos_12--) {
      if (!OrderSelect(pos_12, SELECT_BY_POS, MODE_TRADES)) Print("OrderSelect error : " + ErrorDescription(GetLastError()));
      else {
         if (OrderSymbol() == Symbol()) {
            if (OrderType() == A_cmd_0)
               if (OrderMagicNumber() == A_magic_4) count_8++;
         }
      }
   }
   return (count_8);
}

void f0_3(double A_lots_0) {
   int error_8;
   double price_16 = 0;
   double price_24 = 0;
   RefreshRates();
   while (IsTradeContextBusy()) Sleep(1000);
   int datetime_32 = TimeCurrent();
   int ticket_12 = OrderSend(Symbol(), OP_BUY, A_lots_0, Ask, Slippage, 0, 0, "", BuyMagic, 0, Blue);
   if (ticket_12 == -1) {
      while (ticket_12 == -1 && TimeCurrent() - datetime_32 < 60 && !IsTesting()) {
         error_8 = GetLastError();
         Print("Error Opening BUY. (" + error_8 + ")" + ErrorDescription(error_8));
         if (error_8 == 148/* TRADE_TOO_MANY_ORDERS */) return;
         Sleep(1000);
         while (IsTradeContextBusy()) Sleep(1000);
         Print("??????");
         RefreshRates();
         ticket_12 = OrderSend(Symbol(), OP_BUY, A_lots_0, Ask, Slippage, 0, 0, "", BuyMagic, 0, Blue);
      }
      if (ticket_12 == -1) {
         error_8 = GetLastError();
         Print("Error opening BUY. (" + error_8 + ")" + ErrorDescription(error_8));
      }
   }
   if (ticket_12 != -1) {
      Print("Opened BUY for " + Symbol() + " " + Period() + " Lots " + DoubleToStr(A_lots_0, 2) + "!");
      if (OrderSelect(ticket_12, SELECT_BY_TICKET, MODE_TRADES)) {
         if (StopLoss != 0 || TakeProfit != 0) {
            if (TakeProfit > 0) price_16 = f0_8(0);
            if (StopLoss > 0) price_24 = Ask - StopLoss * Gd_156 - (Ask - Bid);
            price_16 = f0_2(price_16);
            price_24 = f0_2(price_24);
            int status=OrderModify(ticket_12, OrderOpenPrice(), price_24, price_16, 0, Green);
         }
      }
   }
}

void f0_5(double A_lots_0) {
   int error_8;
   double price_16 = 0;
   double price_24 = 0;
   RefreshRates();
   while (IsTradeContextBusy()) Sleep(1000);
   int datetime_32 = TimeCurrent();
   int ticket_12 = OrderSend(Symbol(), OP_SELL, A_lots_0, Bid, Slippage, 0, 0, "", SellMagic, 0, Red);
   if (ticket_12 == -1) {
      while (ticket_12 == -1 && TimeCurrent() - datetime_32 < 60 && !IsTesting()) {
         error_8 = GetLastError();
         Print("Error opening SELL. (" + error_8 + ")" + ErrorDescription(error_8));
         if (error_8 == 148/* TRADE_TOO_MANY_ORDERS */) return;
         Sleep(1000);
         while (IsTradeContextBusy()) Sleep(1000);
         Print("??????");
         RefreshRates();
         ticket_12 = OrderSend(Symbol(), OP_SELL, A_lots_0, Bid, Slippage, 0, 0, "", SellMagic, 0, Red);
      }
      if (ticket_12 == -1) {
         error_8 = GetLastError();
         Print("Error opening SELL. (" + error_8 + ")" + ErrorDescription(error_8));
      }
   }
   if (ticket_12 != -1) {
      Print("Opened SELL for " + Symbol() + " " + Period() + " Lots " + DoubleToStr(A_lots_0, 2) + "!");
      if (OrderSelect(ticket_12, SELECT_BY_TICKET, MODE_TRADES)) {
         if (StopLoss != 0 || TakeProfit != 0) {
        

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

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

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

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

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

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

Стоимость полного кода
799,20₽ ≈ $9.77