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

VQ_EA

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

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

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

О программе

VQ_EA — торговый советник для MetaTrader 4, использующий внешний индикатор VQ для генерации сигналов на покупку и продажу. Советник открывает и закрывает позиции на основании этих сигналов, поддерживая ордера BUY и SELL с возможностью установки стоп-лосса и тейк-профита.

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

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

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

НастройкаОписание
Lots Размер лота — Размер торгового лота.
StopLoss Стоп-лосс — Уровень стоп-лосса в пунктах.
TakeProfit Тейк-профит — Уровень тейк-профита в пунктах.
TradeAtCloseBar Торговля при закрытии бара — Переключатель: при включении торговля осуществляется при закрытии бара, при выключении — немедленно.
TrailingStop Трейлинг-стоп — Расстояние трейлинг-стопа в пунктах.
Trailing step (TrailingStep) Шаг трейлинг-стопа — Шаг трейлинг-стопа в пунктах.
BreakEven Безубыток — Уровень безубытка в пунктах для фиксации прибыли при достижении заданного расстояния от цены открытия.
MagicNumber Магический номер — Магический номер для идентификации ордеров, управляемых советником.
Repeat Количество повторений — Количество повторных уведомлений для каждого сигнала.
Periods Период уведомлений — Период в секундах между повторными уведомлениями.
UseAlert Всплывающие уведомления — Включает или отключает всплывающие уведомления о торговых событиях.
SendEmail Отправка email — Включает или отключает отправку email-уведомлений о торговых событиях.
Slippage Проскальзывание — Допустимое проскальзывание в пунктах.
Crash Режим Crash — Переключатель режима индикатора Crash.
TimeFrame Таймфрейм — Таймфрейм для расчёта индикатора.
Length Длина — Параметр длины индикатора.
Method Метод — Параметр метода расчёта индикатора.
Smoothing Сглаживание — Параметр сглаживания индикатора.
Filter Фильтр — Параметр фильтра индикатора.
RealTime Реальное время — Включает или отключает режим реального времени индикатора.
Steady Стабильный режим — Переключатель стабильного режима индикатора.
Color Цвет — Включает или отключает цветовое отображение индикаторных сигналов.
Alerts Уведомления — Включает или отключает индикаторные уведомления.
EmailON Email уведомления — Включает или отключает отправку email-уведомлений от индикатора.
SignalPrice Ценовые сигналы — Включает или отключает отображение ценовых сигналов индикатора.
SignalPriceBUY Цвет сигнала покупки — Цвет отображения сигнала покупки.
SignalPriceSELL Цвет сигнала продажи — Цвет отображения сигнала продажи.
CountBars Количество баров — Количество баров для расчёта индикатора.
Получить полный код

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

#define OrderStr "VQ_EA"

extern double  Lots = 0.1;
extern int		StopLoss = 60;
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="VQ_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   bool     Crash = false;
extern   int      TimeFrame = 0;
extern   int      Length = 5;
extern   int      Method = 3;
extern   int      Smoothing = 1;
extern   int      Filter = 5;

extern   bool     RealTime = true;
extern   bool     Steady  = false;
extern   bool     Color = true;
extern   bool     Alerts = true;
extern   bool     EmailON = false;
extern   bool     SignalPrice = true;
extern   color    SignalPriceBUY = Yellow;
extern   color    SignalPriceSELL = Aqua;
extern   int      CountBars = 1485;

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 = "VQ_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"; 

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

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

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

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

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

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

Стоимость полного кода
2 231,30₽ ≈ $27.27