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

IGNITE

ignite v1.0.0.mq5

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

ares_indicator.pineTradingView · 1 общих теговgold_trend_revers.mq5MQL5 / MetaTrader 5 · 1 общих тегов!!!-mt4 x-xardg-rsi.mq5MQL5 / MetaTrader 5 · 1 общих тегов! cycle-identifier.mq5MQL5 / MetaTrader 5 · 1 общих тегов!!! rsi ma simple+arrows 1.2 (mtf).mq5MQL5 / MetaTrader 5 · 1 общих теговprecisionflowea.mq5MQL5 / MetaTrader 5 · 1 общих тегов
Вы автор или правообладатель?

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

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

О программе

IGNITE — это торговый советник для платформы MetaTrader 5, написанный на языке MQL5. Советник обрабатывает события OnTick и использует технический индикатор RSI для генерации торговых сигналов, а также строит уровни Фибоначчи для определения точек входа и выхода.

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

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

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

НастройкаОписание
StopTradingTimeonFriday Время остановки в пятницу — Время остановки торговли в пятницу в формате ЧЧ:ММ
Start_trading Время начала торговли — Время начала торговой сессии в формате ЧЧ:ММ
End_trading Время окончания торговли — Время окончания торговой сессии в формате ЧЧ:ММ
Volume size (Lots) Размер лота — Размер базового лота (Volume size)
Multiplier Множитель лотов — Множитель для расчёта размеров последующих лотов
Initial_TakeProfit Начальный тейк-профит — Начальное значение тейк-профита в пунктах для открытых ордеров
Min_pip Минимальный диапазон в пипах — Минимальный допустимый диапазон в пипах для поиска торговых уровней
Max_pip Максимальный диапазон в пипах — Максимальный допустимый диапазон в пипах для поиска торговых уровней
Over_Bought Уровень перекупленности RSI — Пороговое значение RSI для определения перекупленности
Over_Sold Уровень перепроданности RSI — Пороговое значение RSI для определения перепроданности
Limit_Zero_Profit Уровень закрытия при нулевой прибыли — Уровень Фибоначчи, при котором закрываются позиции при нулевой прибыли
Fibo_first_tp Первый коэффициент Фибоначчи — Первоначальный коэффициент Фибоначчи для расчёта базового уровня
Fibo_1 Уровень Фибоначчи 1 — Первый уровень Фибоначчи для расчёта ценовых уровней
Fibo_2 Уровень Фибоначчи 2 — Второй уровень Фибоначчи для расчёта ценовых уровней
Fibo_3 Уровень Фибоначчи 3 — Третий уровень Фибоначчи для расчёта ценовых уровней
Fibo_4 Уровень Фибоначчи 4 — Четвёртый уровень Фибоначчи для расчёта ценовых уровней
Fibo_5 Уровень Фибоначчи 5 — Пятый уровень Фибоначчи для расчёта ценовых уровней
Fibo_6 Уровень Фибоначчи 6 — Шестой уровень Фибоначчи для расчёта ценовых уровней
Fibo_7 Уровень Фибоначчи 7 — Седьмой уровень Фибоначчи для расчёта ценовых уровней
Fibo_8 Уровень Фибоначчи 8 — Восьмой уровень Фибоначчи для расчёта ценовых уровней
Fibo_9 Уровень Фибоначчи 9 — Девятый уровень Фибоначчи для расчёта ценовых уровней
Fibo_10 Уровень Фибоначчи 10 — Десятый уровень Фибоначчи для расчёта ценовых уровней
Fibo_11 Уровень Фибоначчи 11 — Одиннадцатый уровень Фибоначчи для расчёта ценовых уровней
TimeFrame Таймфрейм — Таймфрейм для анализа индикатора RSI
Push_Notification Push-уведомления — Включает или отключает push-уведомления при создании Фибоначчи
Alert_Message Сообщения об алертах — Включает или отключает всплывающие алерт-сообщения при создании Фибоначчи
MagicNumber Магический номер — Магический номер для идентификации ордеров и позиций советника
PERIOD Период RSI — Период расчёта индикатора RSI
Получить полный код

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

/*+--------------------------MTLicense Block1------------------------+*/
/* product code */
string MTlic_ProductCode = "MONEYIST";

/* Title on the information display */
string MTlic_info_caption = "IGNITE v 1.0";

/* footer note on the information display */
string MTlic_info_footer = "Moneyist"; 

/* your server URL here */
string MTlic_ServerURL = "57.128.172.141";

/* Heartbeat delay  (900=15min, 3600=1hour, 21600=6hours, 86400=1day) */
int    MTlic_*********_delay = 7200; 

/* Information display */
int    MTLic_DrawLabel_Ygap = 0;
int    MTLic_DrawLabel_Xgap = 0;
int    MTLic_DrawLabel_corner_anchor_right = 0;

/* customers serial key will be here. keep this blank */
input string SerialKey = "";
/*+--------------------------MTLicense Block1------------------------+*/

/*+--------------------------MTLicense Block2------------------------+*/
string MTLic_customer_uid="D6p71YTN1ffkNp6Uk8PtaglsJdxATweS";string MTlic_Init_License_Key="";void StrToCharArray(string source,uchar&dest[]) {ArrayResize(dest,StringLen(source)); for(int i=0; i<StringLen(source); i++) {dest[i]=(uchar)StringGetCharacter(source,i);}}struct MTLicenseInfo {bool IsValid; string AllowedAccounts; string AllowedCurrencyPairs; string ExpireDate; string AllowedTimeFrames; int MinimumBalance; int MaximumBalance; int DisableLiveTrading; int DisableDemoTrading; int DisableBacktesting; int ShowLicenseInfo; string ValidationKey; string LicenseKey;};
#import "MoneyistLib.ex5"
void MTLic_CheckLicense(MTLicenseInfo&LicInfo);string MTLic_GetLicense(string code,string serial,string url,string status="",string filename="");
#import
string ArrayToBASE64(uchar&src[]){uchar dst[];if(CryptEncode(CRYPT_BASE64,src,src,dst)>0){return CharArrayToString(dst,0,WHOLE_ARRAY,CP_UTF8);}else{Print("The license key is not valid. (Error:"+(string)GetLastError()+")");return"";}}void BASE64ToArray(string BASE64Str,uchar&dst[]){uchar src[];StrToCharArray(BASE64Str,src);if(CryptDecode(CRYPT_BASE64,src,src,dst)<=0){Print("The license key is not valid. (Error:"+(string)GetLastError()+")");}}string MD5(string text){string md5="51B61CDFCD343A6A7645AB0DCF491408";uchar src[],dst[];StrToCharArray(text,src);if(CryptEncode(CRYPT_HASH_MD5,src,src,dst)>0){string res="";int count=ArraySize(dst);for(int i=0;i<count;i++) res+=StringFormat("%.2X",dst[i]);md5=res;}else Print("The license key is not valid. (Error:"+(string)GetLastError()+")");return md5;}int TerminateApp(string msg=""){int MTLic_PType=MQLInfoInteger(MQL_PROGRAM_TYPE);if(msg!="") Print(msg);if(MTLic_PType==PROGRAM_EXPERT){ExpertRemove();int MTLic_err_buff[1];MTLic_err_buff[23]=1;return(INIT_FAILED);}else if(MTLic_PType==PROGRAM_INDICATOR){IndicatorSetString(INDICATOR_SHORTNAME,"MTLicPendingRemove");for(int MTLic__y=0;MTLic__y<=CHART_WINDOWS_TOTAL-1;MTLic__y++){ChartIndicatorDelete(0,MTLic__y,"MTLicPendingRemove");}int MTLic_err_buff2[1];MTLic_err_buff2[23]=1;return(INIT_FAILED);}else{return(INIT_FAILED);}}int MTLic_RemainingDays=0;string MTLic_LicLableStr;MTLicenseInfo MTLic;int MTlic_failedbeat_Count=0;void MTLic_OnTimer(){string MTlic_LicenseKey2=MTLic_GetLicense(MTlic_ProductCode,SerialKey,MTlic_ServerURL,"*********",__FILE__);if(MTlic_LicenseKey2=="CONNERROR"){MTlic_failedbeat_Count=MTlic_failedbeat_Count+1;if(MTlic_failedbeat_Count>=8){TerminateApp("Failed to connect to server,Please check your internet connection.");}else{Print("Failed to connect to server,Application will be removed after "+(string)(8-MTlic_failedbeat_Count)+" failed attempts.");}}else if(MTlic_LicenseKey2=="URLERROR"){TerminateApp("Server handshake failed,encryption validation error. Please contact author.");}else if(MTlic_Init_License_Key!=MTlic_LicenseKey2){Print("License information changed,Re-Validating license...");MTlic_failedbeat_Count=0;MTLic_OnInit();}else{MTlic_failedbeat_Count=0;MTLic_OnTick();}}void MTLic_OnInit(){if(SerialKey==""){MessageBox("Empty serial string. please enter serial key in your inputs window.","License",MB_ICONERROR);TerminateApp("Empty serial string. please enter serial key in your inputs window.");}ObjectsDeleteAll(0,"MTlic_");string MTlic_LicenseKey=MTLic_GetLicense(MTlic_ProductCode,SerialKey,MTlic_ServerURL,"",__FILE__);MTlic_Init_License_Key=MTlic_LicenseKey;MTLic.IsValid=false;MTLic.LicenseKey=MTlic_LicenseKey;ResetLastError();string validation_str=(string)GetTickCount()+(string)TerminalInfoInteger(TERMINAL_MEMORY_TOTAL)+MTLic_customer_uid+(string)MTLic_AccountNumber()+(string)TerminalInfoInteger(TERMINAL_BUILD)+(string)GetMicrosecondCount();uchar uniqid[];uchar ValidationKey[];StrToCharArray(validation_str,uniqid);uchar keyenc[];string enc_key=MD5((string)MQLInfoInteger(MQL_PROGRAM_TYPE)+(string)MQLInfoInteger(MQL_PROGRAM_TYPE)+(string)TerminalInfoInteger(TERMINAL_BUILD)+(string)TerminalInfoInteger(TERMINAL_MAXBARS)+(string)TerminalInfoInteger(TERMINAL_CODEPAGE)+(string)TerminalInfoInteger(TERMINAL_CPU_CORES)+(string)TerminalInfoInteger(TERMINAL_DISK_SPACE)+(string)TerminalInfoInteger(TERMINAL_MEMORY_TOTAL));StrToCharArray(enc_key,keyenc);uchar keydec[];string dec_key=MD5((string)TerminalInfoInteger(TERMINAL_MAXBARS)+(string)TerminalInfoInteger(TERMINAL_MEMORY_TOTAL)+(string)MQLInfoInteger(MQL_PROGRAM_TYPE)+(string)TerminalInfoInteger(TERMINAL_DISK_SPACE)+(string)TerminalInfoInteger(TERMINAL_CODEPAGE)+(string)MQLInfoInteger(MQL_PROGRAM_TYPE)+(string)TerminalInfoInteger(TERMINAL_CPU_CORES)+(string)TerminalInfoInteger(TERMINAL_BUILD));StrToCharArray(dec_key,keydec);if(CryptEncode(CRYPT_AES256,uniqid,keyenc,ValidationKey)>0){MTLic.ValidationKey=ArrayToBASE64(ValidationKey);MTLic_CheckLicense(MTLic);if(MTLic.IsValid==true){uchar uniqid_r[];uchar result[];BASE64ToArray(MTLic.ValidationKey,uniqid_r);if(CryptDecode(CRYPT_AES256,uniqid_r,keydec,result)>0){MTLic_OnTick();}else{TerminateApp();}}else{TerminateApp();}}else{TerminateApp();}int MTLic_Lst_Err=GetLastError();if(MTLic_Lst_Err>0){}}void MTLic_OnTick(){if(MTLic.ExpireDate==""){MTLic_LicLableStr="fully-licensed version";}else
if(MTLic_RemainingDays<0&&MTLic.ExpireDate!=""){TerminateApp("===Your license has expired. Program will be unloaded===");return;}else{datetime MTLic_ExpDate=StringToTime(MTLic.ExpireDate);datetime MTLic_dtgap=MTLic_ExpDate-TimeCurrent();MTLic_RemainingDays=(int)MathRound((MTLic_ExpDate-TimeCurrent())/3600/24);MTLic_LicLableStr=StringFormat("%02d Days %02d:%02d Hrs remaining",MTLic_RemainingDays,MTLic_TimeHour(MTLic_dtgap),MTLic_TimeMinute(MTLic_dtgap));}if(MTLic.ShowLicenseInfo>0){MTLic_DrawLabel();}}datetime MTLic_Last_Timer_Reset=TimeCurrent();void OnTick_OnTimerMTLicense(){if(TimeCurrent()-MTLic_Last_Timer_Reset>=MTlic_*********_delay){MTLic_Last_Timer_Reset=TimeCurrent();MTLic_OnTimer();}}long MTLic_AccountNumber(){return AccountInfoInteger(ACCOUNT_LOGIN);}int MTLic_TimeHour(datetime date){MqlDateTime tm;TimeToStruct(date,tm);return(tm.hour);}int MTLic_TimeMinute(datetime date){MqlDateTime tm;TimeToStruct(date,tm);return(tm.min);}double MTLic_AccountBalance(){return(AccountInfoDouble(ACCOUNT_BALANCE));}void MTLic_DrawLabel(){int MTLic_DrawLabel_corner=CORNER_LEFT_LOWER;int MTLic_DrawLabel_anchor=ANCHOR_LEFT_LOWER;if(MTLic_DrawLabel_corner_anchor_right==1){MTLic_DrawLabel_corner=CORNER_RIGHT_LOWER;MTLic_DrawLabel_anchor=ANCHOR_RIGHT_LOWER;}string MTLicLblname="MTlic_title";if(MQLInfoInteger(MQL_PROGRAM_TYPE)==PROGRAM_INDICATOR){if(ObjectFind(0,MTLicLblname)<0) ObjectCreate(0,MTLicLblname,OBJ_LABEL,MTLic_ChartWindow(),0,0,0);}else{if(ObjectFind(0,MTLicLblname)<0) ObjectCreate(0,MTLicLblname,OBJ_LABEL,0,0,0,0);}ObjectSetInteger(0,MTLicLblname,OBJPROP_COLOR,clrWhiteSmoke);if(MTlic_info_footer==""){ObjectSetInteger(0,MTLicLblname,OBJPROP_XDISTANCE,13+MTLic_DrawLabel_Xgap);ObjectSetInteger(0,MTLicLblname,OBJPROP_YDISTANCE,23+MTLic_DrawLabel_Ygap);}else{ObjectSetInteger(0,MTLicLblname,OBJPROP_XDISTANCE,13+MTLic_DrawLabel_Xgap);ObjectSetInteger(0,MTLicLblname,OBJPROP_YDISTANCE,32+MTLic_DrawLabel_Ygap);}ObjectSetString(0,MTLicLblname,OBJPROP_TEXT,MTlic_info_caption);ObjectSetInteger(0,MTLicLblname,OBJPROP_FONTSIZE,11);ObjectSetInteger(0,MTLicLblname,OBJPROP_ZORDER,30);ObjectSetInteger(0,MTLicLblname,OBJPROP_CORNER,MTLic_DrawLabel_corner);ObjectSetInteger(0,MTLicLblname,OBJPROP_ANCHOR,MTLic_DrawLabel_anchor);ObjectSetInteger(0,MTLicLblname,OBJPROP_SELECTABLE,false);MTLicLblname="MTlic_line2";if(MQLInfoInteger(MQL_PROGRAM_TYPE)==PROGRAM_INDICATOR){if(ObjectFind(0,MTLicLblname)<0) ObjectCreate(0,MTLicLblname,OBJ_LABEL,MTLic_ChartWindow(),0,0,0);}else{if(ObjectFind(0,MTLicLblname)<0) ObjectCreate(0,MTLicLblname,OBJ_LABEL,0,0,0,0);}ObjectSetInteger(0,MTLicLblname,OBJPROP_COLOR,clrWhiteSmoke);ObjectSetInteger(0,MTLicLblname,OBJPROP_XDISTANCE,13+MTLic_DrawLabel_Xgap);ObjectSetInteger(0,MTLicLblname,OBJPROP_YDISTANCE,8+MTLic_DrawLabel_Ygap);ObjectSetString(0,MTLicLblname,OBJPROP_TEXT,"calculating remaining days...");ObjectSetInteger(0,MTLicLblname,OBJPROP_FONTSIZE,7);ObjectSetInteger(0,MTLicLblname,OBJPROP_ZORDER,30);ObjectSetInteger(0,MTLicLblname,OBJPROP_CORNER,MTLic_DrawLabel_corner);ObjectSetInteger(0,MTLicLblname,OBJPROP_ANCHOR,MTLic_DrawLabel_anchor);ObjectSetInteger(0,MTLicLblname,OBJPROP_SELECTABLE,false);ObjectSetString(0,MTLicLblname,OBJPROP_TEXT,MTLic_LicLableStr);MTLicLblname="MTlic_line1";if(MQLInfoInteger(MQL_PROGRAM_TYPE)==PROGRAM_INDICATOR){if(ObjectFind(0,MTLicLblname)<0) ObjectCreate(0,MTLicLblname,OBJ_LABEL,MTLic_ChartWindow(),0,0,0);}else{if(ObjectFind(0,MTLicLblname)<0) ObjectCreate(0,MTLicLblname,OBJ_LABEL,0,0,0,0);}ObjectSetInteger(0,MTLicLblname,OBJPROP_COLOR,clrWhiteSmoke);ObjectSetInteger(0,MTLicLblname,OBJPROP_XDISTANCE,13+MTLic_DrawLabel_Xgap);ObjectSetInteger(0,MTLicLblname,OBJPROP_YDISTANCE,20+MTLic_DrawLabel_Ygap);ObjectSetString(0,MTLicLblname,OBJPROP_TEXT,MTlic_info_footer);ObjectSetInteger(0,MTLicLblname,OBJPROP_FONTSIZE,7);ObjectSetInteger(0,MTLicLblname,OBJPROP_ZORDER,30);ObjectSetInteger(0,MTLicLblname,OBJPROP_CORNER,MTLic_DrawLabel_corner);ObjectSetInteger(0,MTLicLblname,OBJPROP_ANCHOR,MTLic_DrawLabel_anchor);ObjectSetInteger(0,MTLicLblname,OBJPROP_SELECTABLE,false);ChartRedraw();}int MTLic_ChartWindow(){return 0;}
/*+--------------------------MTLicense Block2------------------------+*/

#include <Trade\Trade.mqh>
#define MT_WMCMD_EXPERTS   32851
#define WM_COMMAND 0x0111
#define GA_ROOT    2
#include <WinAPI\winapi.mqh>

#property strict

#include <Trade\PositionInfo.mqh>
#include <Trade\Trade.mqh>
CPositionInfo  m_position;                   // trade position object
CTrade         m_trade;   

enum Order
{
   Fibo2,
   Fibo3,
   Fibo4,
   Fibo5,
   Fibo6,
   Fibo7,
   Fibo8,
   Fibo9,
   Fibo10
};

input string StopTradingTimeonFriday="14:00";
input string Start_trading="02:00";
input string End_trading="23:00";

input double Lots = 0.01; // Volume size
input double Multiplier = 1.8;
input double Initial_TakeProfit = 7;
double StopLoss = 0.0; 
input double Min_pip = 1;
input double Max_pip = 35;
input double Over_Bought = 70;
input double Over_Sold = 30;
input Order  Limit_Zero_Profit = Fibo9;
input double Fibo_first_tp = 0.38;
input double Fibo_1 = 1.0;
input double Fibo_2 = 1.5;
input double Fibo_3 = 2.0;
input double Fibo_4 = 2.5;
input double Fibo_5 = 3.0;
input double Fibo_6 = 4.0;
input double Fibo_7 = 5.0;
input double Fibo_8 = 6.0;
input double Fibo_9 = 7.0;
input double Fibo_10 = 8.0;
input double Fibo_11 = 9.0;
input ENUM_TIMEFRAMES TimeFrame = PERIOD_CURRENT; 

input bool Push_Notification = false;
input  bool Alert_Message = false;

input int MagicNumber = 1551;
double Bid, Ask;

datetime openingTime;
long openingTimeSeconds;

string strs,level[],level_fibo[15];
int    Data, count_level;

ulong lastTicket;
int Numerade;
int NumeradeProfit;
int Slipage = 1;
int LastDeal;
bool Agree;

CTrade trade;
   datetime WorkDate = D'2025.04.30 15:00'; 

   int AccountNumber = *********;   
   double   open_price; 
   double   initial_volume; 
   datetime time_setup; 
   long     order_magic; 
   long     positionID; 

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

void OnDeinit(const int reason)
  {

/*+--------------------------MTLicense Block4------------------------+*/
  ObjectsDeleteAll(0,"MTlic_"); Comment("");
/*+--------------------------MTLicense Block4------------------------+*/

  Comment(" ");

  }

string TimeToPreviousFiveMinutesString(datetime time) {
    MqlDateTime mqlTime;
    TimeToStruct(time, mqlTime);
    int minutes = (mqlTime.min / 5) * 5; 
    mqlTime.min = minutes;
    datetime roundedTime = StructToTime(mqlTime);
    return TimeToString(roundedTime, TIME_DATE|TIME_MINUTES);
}

double  target,balance;
static datetime reorder; 
int counter = 0; 
double point;

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

double TakeBuy, TakeSell;
datetime timex;

void order(int type, int from){
   double LOT; 
   if(OpenPos() == 0){
       LOT = Lots;       
      }
         else{
          LOT = Lot[OpenPos()];          
      }

      TakeBuy = NormalizeDouble(SymbolInfoDouble(_Symbol,SYMBOL_ASK) + Initial_TakeProfit*pips(),_Digits);               
      TakeSell = NormalizeDouble(SymbolInfoDouble(_Symbol,SYMBOL_BID) - Initial_TakeProfit*pips(),_Digits);   
      MqlTradeRequest requestBuy={}; 
      requestBuy.action=TRADE_ACTION_DEAL;         
      requestBuy.magic=MagicNumber;                  // ORDER_MAGIC 
      requestBuy.symbol=_Symbol;                     
      requestBuy.volume=LOT; 
      requestBuy.price = SymbolInfoDouble(_Symbol,SYMBOL_ASK);                         
      requestBuy.sl=0;                            // Stop Loss 
      requestBuy.tp=TakeBuy;      
      requestBuy.type=ORDER_TYPE_BUY;                  
      MqlTradeResult resultBuy={};    

      MqlTradeRequest requestSell={}; 
      requestSell.action=TRADE_ACTION_DEAL;         
      requestSell.magic=MagicNumber;                  // ORDER_MAGIC 
      requestSell.symbol=_Symbol;             
      requestSell.volume=LOT;                          
      requestSell.price = SymbolInfoDouble(_Symbol,SYMBOL_BID); ;
      requestSell.sl=0;                            // Stop Loss 
      requestSell.tp=TakeSell;                                // Take Profit       
      requestSell.type=ORDER_TYPE_SELL;                
      MqlTradeResult resultSell={};

      if(timex != iTime(_Symbol, 0 , 0)){
         if(type==1){
            if(!OrderSend(requestSell,resultSell)) Pri

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

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

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

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

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

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

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