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

j_ea_test9_sh.mq4

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

xauusd_gold_perfect.mq4MQL4 / MetaTrader 4 · 1 общих теговtm sniper pro.pineTradingView · 1 общих теговsource code of grid with 100 pips stop loss.mq4MQL4 / MetaTrader 4 · 1 общих теговsniper pro.mq5MQL5 / MetaTrader 5 · 1 общих теговpro +.pineTradingView · 1 общих теговofada_gold_trader_v230.mq5MQL5 / MetaTrader 5 · 1 общих тегов
Вы автор или правообладатель?

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

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

О программе

Данный файл представляет собой торговый советник для платформы MetaTrader 4, написанный на языке MQL4. Советник использует два технических индикатора — Stochastic и MACD — для формирования торговых сигналов на покупку и продажу.

Открытие позиции происходит при совпадении сигналов: для покупки индикатор MACD должен быть выше нуля, а Stochastic — пересекать сигнальную линию снизу вверх. Для продажи условия зеркальны. Размер лота рассчитывается на основе собственного капитала аккаунта и параметра риска.

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

Внутренняя логика советника отслеживает открытые ордера по магическому числу и комментарию, позволяет закрывать позиции при выполнении условий разворота индикаторов и при необходимости корректировать параметры текущих позиций.

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

НастройкаОписание
Author_QQ Автор QQ — Текстовый параметр, задающий авторский QQ-идентификатор, используемый в качестве маркировки торговых операций.
Author_email Автор Email — Текстовый параметр, задающий авторский адрес электронной почты, используемый в качестве маркировки торговых операций.
MIN_EQ Минимальный капитал — Числовой параметр, задающий минимальный уровень собственного капитала аккаунта. При значении ниже этого порога и отсутствии открытых позиций торговля приостанавливается.
STOPLOST Стоп-лосс в пунктах — Целочисленный параметр, задающий расстояние стоп-лосса от цены входа в пунктах.
Lots Размер лота — Числовой параметр, задающий начальный размер лота. Может быть пересчитан автоматически на основе собственного капитала и параметра риска.
Получить полный код

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

#include <stdlib.mqh>

#define COMM            "EA_Test"

extern string Author_QQ  = "10144229";
extern string Author_email  = "**************";
extern string Author_blog  = "";

extern double  MIN_EQ = 300;
extern int STOPLOST = 30;
double RISK = 1;
int MAGIC = 19003;
int last_trade_period = 0;
int last_trade_type = -100;
double last_lots=0;
int MIN_TRADE_TIME=0;
extern double Lots = 0;

bool buy_close() {
   double k = iStochastic(Symbol(), 0, 9, 3, 3, MODE_SMA, 1, MODE_MAIN, 1);
   double kp = iStochastic(Symbol(), 0, 9, 3, 3, MODE_SMA, 1, MODE_MAIN, 2);
   double d = iStochastic(Symbol(), 0, 9, 3, 3, MODE_SMA, 1, MODE_SIGNAL, 1);
   double dp = iStochastic(Symbol(), 0, 9, 3, 3, MODE_SMA, 1, MODE_SIGNAL, 2);

   return ( k<d );
}
bool sell_close() {
   double k = iStochastic(Symbol(), 0, 9, 3, 3, MODE_SMA, 1, MODE_MAIN, 1);
   double kp = iStochastic(Symbol(), 0, 9, 3, 3, MODE_SMA, 1, MODE_MAIN, 2);
   double d = iStochastic(Symbol(), 0, 9, 3, 3, MODE_SMA, 1, MODE_SIGNAL, 1);
   double dp = iStochastic(Symbol(), 0, 9, 3, 3, MODE_SMA, 1, MODE_SIGNAL, 2);

   return ( k>d );
}
bool buy_add() {
   return (false);
}
bool sell_add() {
   return (false);
}
bool buy_ready() {
   return ( iMACD(Symbol(), 0, 12, 26, 9, PRICE_CLOSE, MODE_MAIN, 1)>0 );
}
bool sell_ready() {
   return ( iMACD(Symbol(), 0, 12, 26, 9, PRICE_CLOSE, MODE_MAIN, 1)<0 );
}
bool buy_ok() {
   double k = iStochastic(Symbol(), 0, 9, 3, 3, MODE_SMA, 1, MODE_MAIN, 1);
   double kp = iStochastic(Symbol(), 0, 9, 3, 3, MODE_SMA, 1, MODE_MAIN, 2);
   double d = iStochastic(Symbol(), 0, 9, 3, 3, MODE_SMA, 1, MODE_SIGNAL, 1);
   double dp = iStochastic(Symbol(), 0, 9, 3, 3, MODE_SMA, 1, MODE_SIGNAL, 2);
   return (kp<dp && k>d);
}
bool sell_ok() {
   double k = iStochastic(Symbol(), 0, 9, 3, 3, MODE_SMA, 1, MODE_MAIN, 1);
   double kp = iStochastic(Symbol(), 0, 9, 3, 3, MODE_SMA, 1, MODE_MAIN, 2);
   double d = iStochastic(Symbol(), 0, 9, 3, 3, MODE_SMA, 1, MODE_SIGNAL, 1);
   double dp = iStochastic(Symbol(), 0, 9, 3, 3, MODE_SMA, 1, MODE_SIGNAL, 2);
   return (kp>dp && k<d);
}

int init() {
      // код доступен только после оплаты
   }
int deinit() {
   return (0);
}
int start() {
      // код доступен только после оплаты
   }     
   if ( AccountEquity()<MIN_EQ && ea_orders(COMM, MAGIC)==0 ) {
      Print("[", COMM, "]BUSINESS STOP.");
      return(0);
   }

   double p;
   int next, cnt, action=0;

   if ( buy_ready() && buy_ok() ) {
      action = 10;
   } else if ( sell_ready() && sell_ok() ) {
      action = -10;
   }   

   if (RISK>0) Lots = NormalizeDouble(AccountEquity()/(20000*RISK), 1);
   if (Lots<0.1) Lots = 0.1;

   cnt = CurTime() / MIN_TRADE_TIME;
   if (ea_orders(COMM, MAGIC)==0 && cnt!=last_trade_period ) {
      if ( action == 10 ) {
         p = MathMin(Low[0], Low[1])-STOPLOST*Point;
         if (ea_order_send(COMM, OP_BUY, Lots, Ask, 1, p, 0, MAGIC)) {
            Print("??????");
            last_trade_period = CurTime() / MIN_TRADE_TIME;
            last_trade_type = OP_BUY;
            last_lots = L

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

Что вы получите после оплаты

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

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

Стоимость полного кода
493₽