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

Gold Coin M5

gold coin_fix_terki.mq4

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

geniusv101-ecn.mq4MQL4 / MetaTrader 4 · 2 общих теговmarket crusher ea guidlines.txtMQL · 2 общих теговindo run 1.5.mq4MQL4 / MetaTrader 4 · 2 общих тегов#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 общих тегов
Вы автор или правообладатель?

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

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

О программе

Gold Coin M5 — торговый советник для MetaTrader 4, работающий на таймфрейме M5 и использующий индикатор ADX на трёх периодах (M5, M15, H1) для определения направления тренда. Советник реализует стратегию сетки усреднения с ордерами типа BUYSTOP и SELLSTOP, управляет позицией через трейлинг-стоп и контролирует риски по убытку и просадке. Два режима работы переключаются параметром Terki: один — с динамическим усреднением и поиском точек входа по уровню спреда и ценовому движению, другой — с фильтрацией по стохастику и параболику SAR на M15.

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

НастройкаОписание
Terki Терки — Переключатель режима работы советника; при true активируется режим усреднения с динамическим поиском входа
Search_trend_bar Баров для поиска тренда — Количество баров для анализа тренда при определении направления
iADX_M5 ADX на M5 — Период индикатора ADX для таймфрейма M5
iADX_M15 ADX на M15 — Период индикатора ADX для таймфрейма M15
iADX_H1 ADX на H1 — Период индикатора ADX для таймфрейма H1
Step Шаг — Базовый шаг размещения стоп-ордеров в пунктах
Acceleration Ускорение — Параметр ускорения для расчёта динамики цены
TrailingStop Трейлинг-стоп — Расстояние трейлинг-стопа в пунктах
Mult_Profit Множитель прибыли — Множитель для расчёта целевого уровня прибыли
Mult_Loss Множитель убытка — Множитель для расчёта порога убытка
Distance Дистанция — Дополнительное расстояние от текущей цены для размещения ордеров
Coin_Step_Trade Шаг монеты — Пороговое значение для проверки отношения equity к balance при модификации стоп-лосса
StartLots Начальный лот — Начальный размер лота для новых сделок
TIME Время ожидания — Минимальный интервал в секундах между попытками открытия новых позиций
Average_spread Средний спред — Максимально допустимый средний спред в пунктах для работы советника
Magic Магический номер — Идентификатор ордеров советника для фильтрации
q Q параметр стохастика — Параметр K стохастика, умножаемый на 10 при вызове iStochastic
sar SAR — Начальное значение параметра Step для индикатора SAR
user_slippage Проскальзывание — Допустимое проскальзывание в пунктах при исполнении ордеров
PPROFIT Прибыль управление — Текстовая метка для обозначения режима управления прибылью
ProfitGoal Цель прибыли — Переключатель режима контроля прибыли: по тикам или по барам
MinusProfitTarget Целевой уровень прибыли — Целевое значение прибыли для закрытия всех позиций при достижении
DynProfit Динамическая прибыль — Шаг динамического увеличения целевого уровня прибыли
WaitTime Время ожидания после закрытия — Пауза в миллисекундах после закрытия всех позиций перед возобновлением работы
DrawDown Контроль просадки — Включает или отключает автоматическое закрытие позиций при превышении максимальной просадки
MaxDrawdownPercent Максимальная просадка — Максимально допустимая просадка в процентах от капитала
Получить полный код

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

#property description "Email: s*****d*@ukr.net"
#property strict

#include <stdlib.mqh>
#include <stderror.mqh>
extern bool Terki = true ;// Similar BackTest
extern int    Search_trend_bar   = 50;
extern int    iADX_M5            = 14;
extern int    iADX_M15           = 5;
extern int    iADX_H1            = 3;
extern int    Step               = 20;
extern int    Acceleration       = 7; 
extern int    TrailingStop       = 25; 
extern int    Mult_Profit        = 100;
extern int    Mult_Loss          = 3;
extern int    Distance           = 1;
extern int    Coin_Step_Trade    = 500;
extern double StartLots          = 0.02;
extern int    TIME               = 300;
extern int    Average_spread     = 20;
extern int    Magic              = 7773888; 
extern int q=7,w=8, e=6, loss=15000;
extern double sar=0.05,sar2=0.02;
extern int user_slippage=10;
extern string PPROFIT =" PROFIT GESTION ";
input bool ProfitGoal = true;      // Ticks or Bars
input double MinusProfitTarget =1.0;    // If Profit = ProfitTarget Close All Positions
input double DynProfit = 1.0; // Profit Dynamique
input int WaitTime = 30000; // Temps d'attente apr?s cl?ture (en millisecondes)

input bool DrawDown = true ; // Active DrawDown
extern double MaxDrawdownPercent = 5.0; // Drawdown maximum en pourcentage du capital

double initialProfit = MinusProfitTarget; // Profit initial
double LastProfit = MinusProfitTarget; // Dernier profit enregistr?
double newProfit;
double NewMinusProfitTarget;
bool ProfitMinus = false; // Indicateur de d?passement du profit initial
double totalProfit;
double SleepTime = WaitTime;

double maxEquity;
int magic = Magic;
int MAGIC_NUMBER = Magic;

datetime lastCandleTime;   // Stocke le temps de la derni?re bougie
bool achatEnCours = false; // Indique si un ordre d'achat est en cours
bool venteEnCours = false; // Indique si un ordre de vente est en cours
int nbOrdresAchat = 0;     // Compteur d'ordres d'achat
int nbOrdresVente = 0;     // Compteur d'ordres de vente

string Comments = "Gold Coin M5"; 
bool isTestMode;
int Awers = 5;  
int Colerd = 10; 
int Bitters = 100;

int Sigiig = user_slippage;
int r, Dffer, fsfwef;
double PeriMix, Lultors, Lultorsw, Qwaaw, Swwe, Bultes, 
Serrte, Seerwr, Swwewx, Looeer, Bibiruxe, Cupperip;
double ddwert[]; 
double pupserix[];
double avgtick[];
int wqaww[];   
int sweew, wdwqwq;
double max = 0;
int se=0;

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

    if (ProfitGoal == true && MinusProfitTarget > 0)
    {
        CheckProfitTarget();
    }

    if (DrawDown)
    {
        double currentDrawdownPercent = CalculateCurrentDrawdownPercent();
        if (currentDrawdownPercent > MaxDrawdownPercent)
        {
            CloseOrders();
            Print("Drawdown maximum d?pass?. Fermeture de tous les ordres.");
            ResetAfterClose(); // R?initialiser les variables apr?s la fermeture des ordres
            return;
        }
    }

   int totalBuyStop = 0;
   int totalSellStop = 0;  
   int ticket;  
   Calculation_of_dynamic_information();
   int totalTrades = 0;
   for( int pos = 0; pos < OrdersTotal(); pos++ ) {
      r = OrderSelect( pos, SELECT_BY_POS, MODE_TRADES );
      if( OrderSymbol() != Symbol() ) continue;   
      if( OrderMagicNumber() == Magic && Terki){ 
         totalTrades++;
         switch ( OrderType() ) {

             case OP_BUY:    
                  if( AccountEquity() > max || AccountEquity() / AccountBalance() < ( double ) Coin_Step_Trade / 100 ){
                     if( Swwewx < -60 * Point && Bid < OrderOpenPrice() - ( 60 * Point ) )
                        if( OrderStopLoss() == 0.0 || Bid - OrderStopLoss() > ( TrailingStop * Point * 150 )+ fsfwef*Point  )
                           if( NormalizeDouble( Bid - ( TrailingStop * Point * 150 ), Digits ) != OrderStopLoss() )
                              r = OrderModify( OrderTicket(), OrderOpenPrice(), NormalizeDouble( Bid - ( TrailingStop * Point), Digits ), OrderTakeProfit(), 0 ); 
                  }

            break;
            case OP_SELL:    
                  if( AccountEquity() > max || AccountEquity() / AccountBalance() < ( double ) Coin_Step_Trade / 100 ){
                     if( Swwewx > 60 * Point  && Ask > OrderOpenPrice() + ( 60 * Point ) )
                        if( OrderStopLoss() == 0.0 || OrderStopLoss() - Ask > ( TrailingStop * Point * 150 ) + fsfwef*Point ) 
                           if( NormalizeDouble( Ask + ( TrailingStop * Point * 150 ), Digits ) != OrderStopLoss() )
                              r = OrderModify(OrderTicket(), OrderOpenPrice(), NormalizeDouble( Ask + ( TrailingStop * Point), Digits ), OrderTakeProfit(), 0 );
                  }

            break;
         }  
      }
   }

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

 if(iHigh(NULL,PERIOD_M1,0)==iLow(NULL,PERIOD_M1,0) && Terki)
   {
    for(int pos=OrdersTotal()-1;pos>=0;pos--) 
           {
            int sz = OrderSelect( pos, SELECT_BY_POS);
            if(OrderType()==OP_SELLSTOP && OrderMagicNumber()==Magic && Bid-5*Point>OrderOpenPrice())int dc=OrderDelete(OrderTicket());
            if(OrderType()==OP_BUYSTOP && OrderMagicNumber()==Magic && Ask+5*Point<OrderOpenPrice())int dc=OrderDelete(OrderTicket());         
           }
   }

 double Profit=Qwaaw()*400;   
 double profit=0;
 double min=DBL_MAX;
 double maxi=-DBL_MAX; 
 int tips=0;
 for(int pos=OrdersTotal()-1;pos>=0;pos--) 
           {
            int sz = OrderSelect(pos, SELECT_BY_POS);
            if(OrderMagicNumber()==Magic && Terki){profit=profit+OrderProfit();}
            if(OrderMagicNumber()==Magic && OrderOpenPrice()<min && Terki)min=OrderOpenPrice();
            if(OrderMagicNumber()==Magic && OrderOpenPrice()>maxi && Terki)maxi=OrderOpenPrice();
            if(OrderMagicNumber()==Magic && OrderType()==OP_BUY && Terki)tips=1;
            if(OrderMagicNumber()==Magic && OrderType()==OP_SELL && Terki)tips=-1;
           }
  if(profit>Profit || profit<-(Profit*2))
  {
           for(int pos=OrdersTotal()-1;pos>=0;pos--) 
           {
            int sz = OrderSelect( pos, SELECT_BY_POS);
            if(OrderType()==OP_SELL && OrderMagicNumber()==Magic && Terki)int dc=OrderClose(OrderTicket(),OrderLots(),Ask,3,Red);
            if(OrderType()==OP_BUY && OrderMagicNumber()==Magic && Terki)int dc=OrderClose(OrderTicket(),OrderLots(),Bid,3,Red);
            if(((OrderType()==OP_BUYSTOP || OrderType()==OP_SELLSTOP) && Terki) && OrderMagicNumber()==Magic)int dc=OrderDelete(OrderTicket());
           }
  }

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

   if(totalTrades < Awers && Terki) 
   {

      if( Swwewx > 60 * Point &&  Ask+(Step+Distance)*Point<min) 
      {
          ticket = OrderSend( Symbol(), OP_BUYSTOP, lr, Ask + Step*Point , Sigiig, 0, 0, Comments, Magic, 0 );
          sweew = ( int ) TimeCurrent();
          return;
      } 
      if( Swwewx < -60 * Point &&  Bid-(Step+Distance)*Point>maxi)  
      {
          ticket = OrderSend(Symbol(), OP_SELLSTOP, lr, Bid - Step*Point, Sigiig, 0, 0, Comments, Magic, 0 );
          wdwqwq = ( int ) TimeCurrent();
          return;
      }
   }  

    totalTrades = 0;
   if(Terki)return;
   for(int pos=OrdersTotal()-1;pos>=0;pos--) {
      r = OrderSelect( pos, SELECT_BY_POS, MODE_TRADES );
      if( OrderSymbol() != Symbol() ) continue;   
      if( OrderMagicNumber() == Magic && !Terki){ 
         totalTrades++;
      }
   }  

 if(iHigh(NULL,PERIOD_M1,0)==iLow(NULL,PERIOD_M1,0) && !Terki)
   {
    for(int pos=OrdersTotal()-1;pos>=0;pos--) 
           {
            int sz = OrderSelect( pos, SELECT_BY_POS);
            if(OrderType()==OP_SELLSTOP && OrderMagicNumber()==Magic && Bid-5*Point>OrderOpenPrice())int dc=OrderDelete(OrderTicket());
            if(OrderType()==OP_BUYSTOP && OrderMagicNumber()==Magic && Ask+5*Point<OrderOpenPrice())int dc=OrderDelete(OrderTicket());         
           }
   }

  Profit=Qwaaw()*Mult_Profit;   
  profit=0;
  min=DBL_MAX;
  maxi=-DBL_MAX; 
  tips=0;
 double totalLots=0.0;
 for(int pos=OrdersTotal()-1;pos>=0;pos--) 
           {
            int sz = OrderSelect(pos, SELECT_BY_POS);
            if(OrderMagicNumber()==Magic && !Terki){profit=profit+OrderProfit();}
            if(OrderMagicNumber()==Magic && OrderOpenPrice()<min && !Terki)min=OrderOpenPrice();
            if(OrderMagicNumber()==Magic && OrderOpenPrice()>maxi && !Terki)maxi=OrderOpenPrice();
            if(OrderMagicNumber()==Magic && OrderType()==OP_BUY && !Terki)tips=1;
            if(OrderMagicNumber()==Magic && OrderType()==OP_SELL && !Terki)tips=-1;
            if(OrderMagicNumber()==Magic && (OrderType()==OP_BUY || OrderType()==OP_SELL) && !Terki)totalLots=totalLots+OrderLots();
           }

  datetime old="9999.01.01 00:00:00";
  for(int pos=OrdersTotal()-1;pos>=0;pos--) 
           {
            int sz = OrderSelect( pos, SELECT_BY_POS);
            if(OrderMagicNumber()==Magic && OrderOpenTime()<old && !Terki)old=OrderOpenTime();
           }

 if(profit<-(Qwaaw()*loss))
 {
  for(int pos=OrdersTotal()-1;pos>=0;pos--) 
           {
            int sz = OrderSelect( pos, SELECT_BY_POS);
            if(OrderType()==OP_SELL && OrderMagicNumber()==Magic && OrderOpenTime()==old && !Terki)int dc=OrderClose(OrderTicket(),OrderLots(),Ask,3,Red);
            if(OrderType()==OP_BUY && OrderMagicNumber()==Magic && OrderOpenTime()==old && !Terki)int dc=OrderClose(OrderTicket(),OrderLots(),Bid,3,Red);
           }
   return; 
 }

  if(profit>Profit && !Terki)
  {
           for(int pos=OrdersTotal()-1;pos>=0;pos--) 
           {
            int sz = OrderSelect( pos, SELECT_BY_POS);
            if(OrderType()==OP_SELL && OrderMagicNumber()==Magic)int dc=OrderClose(OrderTicket(),OrderLots(),Ask,3,Red);
            if(OrderType()==OP_BUY && OrderMagicNumber()==Magic)int dc=OrderClose(OrderTicket(),OrderLots(),Bid,3,Red);
            if((OrderType()==OP_BUYSTOP || OrderType()==OP_SELLSTOP) && OrderMagicNumber()==Magic)int dc=OrderDelete(OrderTicket());
           }
  }

         ObjectDelete("tyrelerfk_text");  
         ObjectCreate(0,"tyrelerfk_text",OBJ_TEXT,0,Time[0],Open[0]);
         if (TerminalInfoInteger(TERMINAL_TRADE_ALLOWED) != 0)ObjectSetString(0,"tyrelerfk_text",OBJPROP_TEXT,"The robot works! Analyzing the market!");
         if (TerminalInfoInteger(TERMINAL_TRADE_ALLOWED) == 0)ObjectSetString(0,"tyrelerfk_text",OBJPROP_TEXT,"The robot doesn't work! Trading is prohibited!");
         ObjectSetString(0,"tyrelerfk_text",OBJPROP_FONT,"Arial");
         ObjectSetInteger(0,"tyrelerfk_text",OBJPROP_FONTSIZE,7);
         ObjectSetDouble(0,"tyrelerfk_text",OBJPROP_ANGLE,0.0);
         ObjectSetInteger(0,"tyrelerfk_text",OBJPROP_ANCHOR,ANCHOR_LEFT_LOWER);
         ObjectSetInteger(0,"tyrelerfk_text",OBJPROP_COLOR,clrYellow);
         ObjectSetInteger(0,"tyrelerfk_text",OBJPROP_BACK,false);
         ObjectSetInteger(0,"tyrelerfk_text",OBJPROP_SELECTABLE,false);
         ObjectSetInteger(0,"tyrelerfk_text",OBJPROP_SELECTED,false);
         ObjectSetInteger(0,"tyrelerfk_text",OBJPROP_HIDDEN,true);
         ObjectSetInteger(0,"tyrelerfk_text",OBJPROP_ZORDER,0);

int colest=0;
 for(int posq=0;posq<OrdersHistoryTotal();posq++) 
           {
            int sz = OrderSelect(posq, SELECT_

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

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

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

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

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

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

Стоимость полного кода
1 742,70₽ ≈ $21.29