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

Trix_EA

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

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

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

О программе

Trix_EA — советник для MetaTrader 4, использующий пользовательский индикатор #MTF_Trix для генерации торговых сигналов на покупку и продажу. Советник открывает позиции по цене Bid/Ask с заданными параметрами StopLoss и TakeProfit, а также поддерживает многократные попытки отправки ордеров с логированием в файл.

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

Настройки включают объём позиции, уровни стоп-лосса и тейк-профита, параметры индикатора TRIX, магический номер для фильтрации ордеров и параметры алертов. Советник работает на языке MQL4 в среде MetaTrader 4.

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

НастройкаОписание
Lots Lots — Размер лота для открытия позиций.
StopLoss StopLoss — Стоп-лосс в пунктах для открытых позиций.
TakeProfit TakeProfit — Тейк-профит в пунктах для открытых позиций.
TradeAtCloseBar TradeAtCloseBar — Переключатель: торговля в момент закрытия бара или в процессе его формирования.
TrailingStop TrailingStop — Расстояние trailing stop в пунктах.
Trailing step (TrailingStep) TrailingStep — Шаг корректировки стоп-лосса при использовании TrailingStop.
BreakEven BreakEven — Уровень безубытка в пунктах. При достижении указанной прибыли стоп-лосс перемещается к цене открытия позиции.
MagicNumber MagicNumber — Магический номер для идентификации ордеров, управляемых советником.
Repeat Repeat — Количество повторных уведомлений о событиях.
Periods Periods — Период между повторными уведомлениями в секундах.
UseAlert UseAlert — Переключатель всплывающих уведомлений о торговых событиях.
SendEmail SendEmail — Переключатель отправки email-уведомлений при торговых событиях.
Slippage Slippage — Допустимое проскальгивание цены при выполнении ордеров.
TimeFrame TimeFrame — Таймфрейм для расчёта индикатора TRIX.
TRIX_Period TRIX_Period — Период индикатора TRIX.
Signal_Period Signal_Period — Период сигнальной линии индикатора TRIX.
Signals Signals — Переключатель отображения сигналов индикатора.
CountBars CountBars — Количество баров для расчёта индикатора.
Получить полный код

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

#define OrderStr "Trix_EA"

extern double  Lots = 0.1;
extern int		StopLoss = 50;
extern int	 	TakeProfit = 0;
extern bool 	TradeAtCloseBar = true;
extern int 		TrailingStop = 0;
extern int 		TrailingStep = 1;      //Trailing step
extern int    	BreakEven = 0;
extern int	  	MagicNumber=0;

extern int     Repeat=3;
extern int     Periods=5;
extern bool    UseAlert=false;
extern bool    SendEmail=true;
extern string
			TradeLog="Trix_EA";

extern int  Slippage = 3;

int 	         mm = 0;
double         Risk = 10;
int       	   Crepeat=0;
int            AlertTime=0;
double         AheadTradeSec = 0;
double         AheadExitSec = 0;
int     			TradeBar = 0;
double         MaxTradeTime = 300;

extern string  
         Indicator_Setting = "---------- Indicator Setting";
extern int  TimeFrame      = 0;
extern int  TRIX_Period    = 13;
extern int  Signal_Period 	= 8;
extern bool Signals      	= true;
extern int  CountBars    	= 1500;

int
					NumberOfTries		= 5, //Number of tries to set, close orders;
					RetryTime			= 1; 

double	
			Ilo					=	0;

int DotLoc=7;
static int TradeLast=0;

string sound="alert.wav";

double sig_buy=0, sig_sell=0;

int Spread=0;
string filename="";

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

int deinit()
  {

   return(0);
  }

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

void SetText(int X1, double Y1, string TEXT_NAME, string TEXT_VALUE, int TEXT_COLOR) {
return;
if(ObjectFind(TEXT_NAME) != 0)
{
   ObjectCreate(TEXT_NAME, OBJ_TEXT, 0, X1, Y1);
   ObjectSet(TEXT_NAME,OBJPROP_COLOR,TEXT_COLOR);
   ObjectSetText(TEXT_NAME, TEXT_VALUE, 10, "Wingdings", EMPTY);         
}
else
{
   ObjectMove(TEXT_NAME, 0, X1, Y1);
}                  
}

void Alerts(int _buy, int _sell, int _exitbuy, int _exitsell, double _op, double _sl, double _tp, int _ticket) {

string AlertStr="";
AlertStr="";
string CurDate="";
CurDate=TimeToStr(CurTime(),TIME_DATE|TIME_MINUTES);

if (UseAlert)
{

if (_buy==1) 
{ 
   if (Crepeat==Repeat)
   { 
      AlertTime=0;
   }
   if (Crepeat>0 && (CurTime()-AlertTime)>Periods)
   {
   if (_buy==1) {
   AlertStr=AlertStr+"Buy @ "+DoubleToStr(_op,Digits)+"; SL: "+DoubleToStr(_sl,Digits)+"; TP: "+DoubleToStr(_tp,Digits)+" at "+CurDate+" Order:"+DoubleToStr(_ticket,0)+"."; 
   Alert(Symbol()," ",Period(), ": ",AlertStr); 
   if (SendEmail) 
   {
      SendMail(Symbol()+" "+Period()+ ": ",Symbol()+" "+Period()+": "+AlertStr);
   }

      Crepeat=Crepeat-1;
      AlertTime=CurTime();
   }

   } 
}

if (_sell==1) 
{ 
   if (Crepeat==Repeat)
   { 
      AlertTime=0;
   }
   if (Crepeat>0 && (CurTime()-AlertTime)>Periods)
   {
   if (_sell==1) {
      AlertStr=AlertStr+"Sell @ "+DoubleToStr(_op,Digits)+"; SL: "+DoubleToStr(_sl,Digits)+"; TP: "+DoubleToStr(_tp,Digits)+" at "+CurDate+" Order:"+DoubleToStr(_ticket,0)+"."; 
   Alert(Symbol()," ",Period(), ": ",AlertStr); 
   if (SendEmail) 
   {
      SendMail(Symbol()+" "+Period()+ ": ",Symbol()+" "+Period()+": "+AlertStr);
   }

      Crepeat=Crepeat-1;
      AlertTime=CurTime();
   }

   } 
}

if (_exitsell==1) 
{ 
   if (Crepeat==Repeat)
   { 
   AlertTime=0;
   }

if (Crepeat>0 && (CurTime()-AlertTime)>Periods)
{
   if (_exitsell==1) {
   AlertStr=AlertStr+" Close Sell @ "+DoubleToStr(_op,Digits)+" at "+CurDate+" Order:"+DoubleToStr(_ticket,0)+"."; 
   Alert(Symbol()," ",Period(), ": ", AlertStr); 
   if (SendEmail) 
   {
      SendMail(Symbol()+" "+Period()+ ": ",Symbol()+" "+Period()+": "+AlertStr);
   }

   Crepeat=Crepeat-1;
   AlertTime=CurTime();
   }

}

} 

if (_exitbuy==1) 
{ 
   if (Crepeat==Repeat)
   { 
      AlertTime=0;
   }
   if (Crepeat>0 && (CurTime()-AlertTime)>Periods)
   {
   if (_exitbuy==1) {
   AlertStr=AlertStr+" Close Buy @ "+DoubleToStr(_op,Digits)+" at "+CurDate+" Order:"+DoubleToStr(_ticket,0)+"."; 
   Alert(Symbol()," ",Period(), ": ",AlertStr); 
   if (SendEmail) 
   {
      SendMail(Symbol()+" "+Period()+ ": ",Symbol()+" "+Period()+": "+AlertStr);
   }

      Crepeat=Crepeat-1;
      AlertTime=CurTime();
   }

   } 
}

if (_exitbuy==0 && _exitsell==0 && _buy==0 && _sell==0)  
{
   Crepeat=Repeat;
   AlertTime=0;
}

}

return;
}

void subPrintDetails()
{
   string sComment   = "";
   string sp         = "----------------------------------------\n";
   string NL         = "\n";
	string sDirection = "";
   sComment = "Trix_EA v.1.0" + NL;
   sComment = sComment + "StopLoss=" + DoubleToStr(StopLoss,0) + " | "; 
   sComment = sComment + "TakeProfit=" + DoubleToStr(TakeProfit,0) + " | ";
   sComment = sComment + "TrailingStop=" + DoubleToStr(TrailingStop,0) + NL;   
   sComment = sComment + sp;   
   sComment = sComment + "Lots=" + DoubleToStr(Ilo,2) + " | ";
   sComment = sComment + "LastTrade=" + DoubleToStr(TradeLast,0) + NL; 
   sComment = sComment + "sig_buy=" + DoubleToStr(sig_buy,Digits) + NL; 
   sComment = sComment + "sig_sell=" + DoubleToStr(sig_sell,Digits) + NL; 
   sComment = sComment + sp;  
   Comment(sComment);
}

int CntOrd(int Type, int Magic) {

int _CntOrd;
_CntOrd=0;
for(int i=0;i<OrdersTotal();i++)
{
   OrderSelect(i, SELECT_BY_POS, MODE_TRADES);

   if (OrderSymbol()==Symbol()) {
      if ( (OrderType()==Type && (OrderMagicNumber()==Magic) || Magic==0)) _CntOrd++;
   }
}
return(_CntOrd);
}

string ErrorDescription(int error_code)
  {
   string error_string;

   switch(error_code)
     {

      case 0:
      case 1:   error_string="no error";                                                  break;
      case 2:   error_string="common error";                                              break;
      case 3:   error_string="invalid trade parameters";                                  break;
      case 4:   error_string="trade server is busy";                                      break;
      case 5:   error_string="old version of the client terminal";                        break;
      case 6:   error_string="no connection with trade server";                           break;
      case 7:   error_string="not enough rights";                                         break;
      case 8:   error_string="too frequent requests";                                     break;
      case 9:   error_string="malfunctional trade operation";                             break;
      case 64:  error_string="account disabled";                                          break;
      case 65:  error_string="invalid account";                                           break;
      case 128: error_string="trade timeout";                                             break;
      case 129: error_string="invalid price";                                             break;
      case 130: error_string="invalid stops";                                             break;
      case 131: error_string="invalid trade volume";                                      break;
      case 132: error_string="market is closed";                                          break;
      case 133: error_string="trade is disabled";                                         break;
      case 134: error_string="not enough money";                                          break;
      case 135: error_string="price changed";                                             break;
      case 136: error_string="off quotes";                                                break;
      case 137: error_string="broker is busy";                                            break;
      case 138: error_string="requote";                                                   break;
      case 139: error_string="order is locked";                                           break;
      case 140: error_string="long positions only allowed";                               break;
      case 141: error_string="too many requests";                                         break;
      case 145: error_

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

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

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

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

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

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

Стоимость полного кода
2 191,50₽ ≈ $26.79