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

Gold Coin

gold coin.mq5

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

#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 общих тегов
Вы автор или правообладатель?

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

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

О программе

Gold Coin — торговый советник для MetaTrader 5, использующий комбинацию индикаторов ADX, стохастика и параболического SAR для анализа рыночных условий. Советник размещает отложенные ордера BuyStop и SellStop при формировании соответствующих сигналов, а также осуществляет управление открытыми позициями.

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

Советник отслеживает динамику спреда и при превышении допустимого уровня приостанавливает торговлю. Все позиции и ордера идентифицируются с помощью магического номера. Информация о состоянии работы отображается текстовым объектом на графике.

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

НастройкаОписание
Search_trend_bar Количество баров для поиска тренда
iADX_M5 Период индикатора ADX для таймфрейма M5
iADX_M15 Период индикатора ADX для таймфрейма M15
iADX_H1 Период индикатора ADX для таймфрейма H1
Step Шаг размещения отложенных ордеров от текущей цены в пунктах
Acceleration Параметр ускорения для расчёта динамики изменения цены за заданный промежуток времени
InpTrailingStop Расстояние трейлинг-стопа в пунктах для защиты открытых позиций
Mult_Profit Множитель прибыли для определения целевого уровня закрытия позиций
Mult_Loss Множитель убытка для определения уровня закрытия позиций
Distance Дополнительное расстояние от текущей цены для размещения отложенных ордеров
Coin_Step_Trade Пороговое соотношение прибыли к балансу в процентах для активации трейлинг-стопа
StartLots Начальный размер лота для открытия позиций
TIME Временной интервал в секундах между допустимыми операциями
Average_spread Пороговое значение спреда для контроля торговых условий
Magic Магический номер для идентификации ордеров и позиций советника
q Параметр периода быстрой линии стохастика
sar Начальное значение шага параболического SAR
Получить полный код

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

#property description "Email: @LifeInDreamsWorld"
#property version     "1.00"

#include <Trade\Trade.mqh>
#include <Trade\PositionInfo.mqh>
#include <Trade\OrderInfo.mqh>
#include <Trade\HistoryOrderInfo.mqh>

input int    Search_trend_bar   = 50;
input int    iADX_M5            = 14;
input int    iADX_M15           = 5;
input int    iADX_H1            = 3;
input int    Step               = 20;
input int    Acceleration       = 7; 
input int    InpTrailingStop    = 25; // Переименовали входной параметр
input int    Mult_Profit        = 100;
input int    Mult_Loss          = 3;
input int    Distance           = 1;
input int    Coin_Step_Trade    = 500;
input double StartLots          = 0.02;
input int    TIME               = 300;
input int    Average_spread     = 20;
input int    Magic              = 7773888; 
input int    q=7, w=8, e=6, loss=15000;
input double sar=0.05, sar2=0.02;

string Comments = "Gold Coin M5"; 
bool isTestMode;
int Awers = 5;  
int Colerd = 10; 
int Bitters = 100;
bool Terki;
int Sigiig = 10;
int Dffer, fsfwef;
int TrailingStop; // Рабочая переменная для трейлинга
double PeriMix, Lultors, Lultorsw, Swwe, Bultes, Serrte, Swwewx;
double ddwert[]; 
double pupserix[];
int wqaww[];   
int sweew, wdwqwq;
double max_equity = 0;

CTrade         trade;
CPositionInfo  m_position;
COrderInfo     m_order;
CHistoryOrderInfo m_hist_order;

int handle_adx_m5, handle_adx_m15, handle_adx_h1;
int handle_stoch_m1_fast, handle_stoch_m1_slow, handle_sar_m15;

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

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

void Rexter()
{
   double Ask = SymbolInfoDouble(_Symbol, SYMBOL_ASK);
   double Bid = SymbolInfoDouble(_Symbol, SYMBOL_BID);

   Calculation_of_dynamic_information();

   int totalTrades = 0;

   for(int i = PositionsTotal() - 1; i >= 0; i--)
   {
      if(m_position.SelectByIndex(i) && m_position.Symbol() == _Symbol && m_position.Magic() == Magic && Terki)
      {
         totalTrades++;
         double equity = AccountInfoDouble(ACCOUNT_EQUITY);
         double balance = AccountInfoDouble(ACCOUNT_BALANCE);

         if(m_position.PositionType() == POSITION_TYPE_BUY)
         {
            if(equity > max_equity || equity / balance < (double)Coin_Step_Trade / 100)
            {
               if(Swwewx < -60 * _Point && Bid < m_position.PriceOpen() - (60 * _Point))
               {
                  if(m_position.StopLoss() == 0.0 || Bid - m_position.StopLoss() > (TrailingStop * _Point * 150) + fsfwef * _Point)
                  {
                     double sl = NormalizeDouble(Bid - (TrailingStop * _Point), _Digits);
                     if(sl != m_position.StopLoss())
                        trade.PositionModify(m_position.Ticket(), sl, m_position.TakeProfit());
                  }
               }
            }
         }
         else if(m_position.PositionType() == POSITION_TYPE_SELL)
         {
            if(equity > max_equity || equity / balance < (double)Coin_Step_Trade / 100)
            {
               if(Swwewx > 60 * _Point && Ask > m_position.PriceOpen() + (60 * _Point))
               {
                  if(m_position.StopLoss() == 0.0 || m_position.StopLoss() - Ask > (TrailingStop * _Point * 150) + fsfwef * _Point)
                  {
                     double sl = NormalizeDouble(Ask + (TrailingStop * _Point), _Digits);
                     if(sl != m_position.StopLoss())
                        trade.PositionModify(m_position.Ticket(), sl, m_position.TakeProfit());
                  }
               }
            }
         }
      }
   }

   if(Ask - Bid > 25 * _Point && totalTrades == 0)
   {
      Alert("Big spread now > 25. Points:", (Ask - Bid) / _Point);
      return;
   } 

   if(iHigh(_Symbol, PERIOD_M1, 0) == iLow(_Symbol, PERIOD_M1, 0) && Terki)
   {
      for(int i = OrdersTotal() - 1; i >= 0; i--)
      {
         if(m_order.SelectByIndex(i) && m_order.Magic() == Magic)
         {
            if(m_order.OrderType() == ORDER_TYPE_SELL_STOP && Bid - 5 * _Point > m_order.PriceOpen()) trade.OrderDelete(m_order.Ticket());
            if(m_order.OrderType() == ORDER_TYPE_BUY_STOP && Ask + 5 * _Point < m_order.PriceOpen()) trade.OrderDelete(m_order.Ticket());
         }
      }
   }

   double targetProfit = Qwaaw() * 400;   
   double current_profit = 0;
   double min_price = DBL_MAX;
   double max_price = -DBL_MAX; 
   int tips = 0;

   for(int i = PositionsTotal() - 1; i >= 0; i--)
   {
      if(m_position.SelectByIndex(i) && m_position.Magic() == Magic && Terki)
      {
         current_profit += m_position.Profit();
         if(m_position.PriceOpen() < min_price) min_price = m_position.PriceOpen();
         if(m_position.PriceOpen() > max_price) max_price = m_position.PriceOpen();
         tips = (m_position.PositionType() == POSITION_TYPE_BUY) ? 1 : -1;
      }
   }

   if(current_profit > targetProfit || current_profit < -(targetProfit * 2)) CloseAllTerki();

   double lr = Qwaaw();
   if(totalTrades > 1 && Terki) lr = Qwaaw() * totalTrades;

   if(totalTrades < Awers && Terki) 
   {
      if(Swwewx > 60 * _Point && Ask + (Step + Distance) * _Point < min_price) 
      {
         trade.BuyStop(lr, Ask + Step * _Point, _Symbol, 0, 0, ORDER_TIME_GTC, 0, Comments);
         sweew = (int)TimeCurrent();
         return;
      } 
      if(Swwewx < -60 * _Point && Bid - (Step + Distance) * _Point > max_price)  
      {
         trade.SellStop(lr, Bid - Step * _Point, _Symbol, 0, 0, ORDER_TIME_GTC, 0, Comments);
         wdwqwq = (int)TimeCurrent();
         return;
      }
   }  

   totalTrades = 0;
   if(Terki) return;

   for(int i = PositionsTotal() - 1; i >= 0; i--) 
   {
      if(m_position.SelectByIndex(i) && m_position.Symbol() == _Symbol && m_position.Magic() == Magic && !Terki)
         totalTrades++;
   }  

   if(iHigh(_Symbol, PERIOD_M1, 0) == iLow(_Symbol, PERIOD_M1, 0) && !Terki)
   {
      for(int i = OrdersTotal() - 1; i >= 0; i--)
      {
         if(m_order.SelectByIndex(i) && m_order.Magic() == Magic)
         {
            if(m_order.OrderType() == ORDER_TYPE_SELL_STOP && Bid - 5 * _Point > m_order.PriceOpen()) trade.OrderDelete(m_order.Ticket());
            if(m_order.OrderType() == ORDER_TYPE_BUY_STOP && Ask + 5 * _Point < m_order.PriceOpen()) trade.OrderDelete(m_order.Ticket());         
         }
      }
   }

   targetProfit = Qwaaw() * Mult_Profit;   
   current_profit = 0;
   min_price = DBL_MAX;
   max_price = -DBL_MAX; 
   tips = 0;
   double totalLots = 0.0;

   for(int i = PositionsTotal() - 1; i >= 0; i--)
   {
      if(m_position.SelectByIndex(i) && m_position.Magic() == Magic && !Terki)
      {
         current_profit += m_position.Profit();
         if(m_position.PriceOpen() < min_price) min_price = m_position.PriceOpen();
         if(m_position.PriceOpen() > max_price) max_price = m_position.PriceOpen();
         tips = (m_position.PositionType() == POSITION_TYPE_BUY) ? 1 : -1;
         totalLots += m_position.Volume();
      }
   }

   datetime oldest_time = D'3000.01.01 00:00:00'; // Используем формат даты 

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

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

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

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

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

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

Стоимость полного кода
1 262,40₽ ≈ $15.66