196 lines
4.2 KiB
MQL5
196 lines
4.2 KiB
MQL5
|
|
// ************************************************
|
||
|
|
// *** Project Name: reytick.mq5 ***
|
||
|
|
// *** License: Copyright 2025, MetaQuotes Ltd. ***
|
||
|
|
// *** URL: https://www.mql5.com/reytick ***
|
||
|
|
// ************************************************
|
||
|
|
|
||
|
|
// ************************************
|
||
|
|
// *** Author: Eduardo Pozos Huerta ***
|
||
|
|
// *** Date: 09/12/2025 ***
|
||
|
|
// *** Update: 09/12/2025 ***
|
||
|
|
// ************************************
|
||
|
|
|
||
|
|
// ******************
|
||
|
|
// *** Properties ***
|
||
|
|
// ******************
|
||
|
|
|
||
|
|
#property link "https://www.mql5.com/reytick"
|
||
|
|
#property version "1.00"
|
||
|
|
#property copyright "Copyright 2025, MetaQuotes Ltd."
|
||
|
|
|
||
|
|
// ***********************
|
||
|
|
// *** Include Headers ***
|
||
|
|
// ***********************
|
||
|
|
|
||
|
|
#include "utils.mqh"
|
||
|
|
|
||
|
|
// ************************
|
||
|
|
// *** General Settings ***
|
||
|
|
// ************************
|
||
|
|
|
||
|
|
input string GENERAL_SETTINGS = "****** General Settings ******";
|
||
|
|
input int magic_number = 2025120901;
|
||
|
|
input int Max_Spread_Points = 0;
|
||
|
|
|
||
|
|
// *********************
|
||
|
|
// *** Time Settings ***
|
||
|
|
// *********************
|
||
|
|
|
||
|
|
input string TIME_SETTINGS = "****** Time Settings ******";
|
||
|
|
input int Session_Start_Hour = 7;
|
||
|
|
input int Session_Start_Minute = 0;
|
||
|
|
input int Session_End_Hour = 21;
|
||
|
|
input int Session_End_Minute = 0;
|
||
|
|
|
||
|
|
// *********************************
|
||
|
|
// *** Take profit and stop loss ***
|
||
|
|
// *********************************
|
||
|
|
|
||
|
|
input string TP_AND_SL = "****** Take Profit and Stop Loss ******";
|
||
|
|
input double TP_Pips = 20.0;
|
||
|
|
input double SL_Pips = 10.0;
|
||
|
|
|
||
|
|
// **********************
|
||
|
|
// *** Risk Managment ***
|
||
|
|
// **********************
|
||
|
|
|
||
|
|
input string RISK_MANAGMENT = "****** Risk Managment ******";
|
||
|
|
input double Trade_Lot = 0.01;
|
||
|
|
input int Max_Trades_Per_Session = 150;
|
||
|
|
input double Max_Risk_Percent = 0.01;
|
||
|
|
input double Min_Momentum = 0.0;
|
||
|
|
input double Min_Tick_Volatility = 0.0;
|
||
|
|
input int Min_Tick_Volume = 5;
|
||
|
|
input double Micro_Range_Limit = 0.0;
|
||
|
|
input double Equity_Stop_Loss = 0.3;
|
||
|
|
input int Max_Consecutive_Losses = 10;
|
||
|
|
|
||
|
|
// ************************
|
||
|
|
// *** Dynamic Settings ***
|
||
|
|
// ************************
|
||
|
|
|
||
|
|
input string DYNAMIC_SETTINGS = "****** Dynamic Settings ******";
|
||
|
|
input bool Use_Dynamic_Lot = true;
|
||
|
|
|
||
|
|
// ***********************
|
||
|
|
// *** Broker Settings ***
|
||
|
|
// ***********************
|
||
|
|
|
||
|
|
input string BROKER_SETTINGS = "****** Broker Settings ******";
|
||
|
|
input double Comission_Per_Lot = 3.5;
|
||
|
|
|
||
|
|
// **************************************
|
||
|
|
// *** Expert initialization function ***
|
||
|
|
// **************************************
|
||
|
|
|
||
|
|
int OnInit() {
|
||
|
|
|
||
|
|
//--- Global Variables
|
||
|
|
symbol_name = Symbol();
|
||
|
|
|
||
|
|
//--- create timer
|
||
|
|
EventSetTimer(60);
|
||
|
|
|
||
|
|
//---
|
||
|
|
return(INIT_SUCCEEDED);
|
||
|
|
}
|
||
|
|
|
||
|
|
// ****************************************
|
||
|
|
// *** Expert deinitialization function ***
|
||
|
|
// ****************************************
|
||
|
|
|
||
|
|
void OnDeinit(const int reason) {
|
||
|
|
//--- destroy timer
|
||
|
|
EventKillTimer();
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
// ****************************
|
||
|
|
// *** Expert tick function ***
|
||
|
|
// ****************************
|
||
|
|
|
||
|
|
void OnTick() {
|
||
|
|
//---
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
// **********************
|
||
|
|
// *** Timer function ***
|
||
|
|
// **********************
|
||
|
|
|
||
|
|
void OnTimer() {
|
||
|
|
//---
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
// *******************
|
||
|
|
//| Trade function ***
|
||
|
|
// *******************
|
||
|
|
|
||
|
|
void OnTrade() {
|
||
|
|
//---
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
// *********************************
|
||
|
|
// *** TradeTransaction function ***
|
||
|
|
// *********************************
|
||
|
|
|
||
|
|
void OnTradeTransaction(const MqlTradeTransaction& trans,
|
||
|
|
const MqlTradeRequest& request,
|
||
|
|
const MqlTradeResult& result)
|
||
|
|
{
|
||
|
|
//---
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
// ***********************
|
||
|
|
// *** Tester function ***
|
||
|
|
// ***********************
|
||
|
|
|
||
|
|
double OnTester() {
|
||
|
|
//---
|
||
|
|
double ret=0.0;
|
||
|
|
//---
|
||
|
|
|
||
|
|
//---
|
||
|
|
return(ret);
|
||
|
|
}
|
||
|
|
|
||
|
|
// ***************************
|
||
|
|
// *** TesterInit function ***
|
||
|
|
// ***************************
|
||
|
|
|
||
|
|
void OnTesterInit() {
|
||
|
|
//---
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
// ***************************
|
||
|
|
// *** TesterPass function ***
|
||
|
|
// ***************************
|
||
|
|
|
||
|
|
void OnTesterPass() {
|
||
|
|
//---
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
// *****************************
|
||
|
|
// *** TesterDeinit function ***
|
||
|
|
// *****************************
|
||
|
|
|
||
|
|
void OnTesterDeinit() {
|
||
|
|
//---
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
// **************************
|
||
|
|
// *** BookEvent function ***
|
||
|
|
// **************************
|
||
|
|
|
||
|
|
void OnBookEvent(const string &symbol) {
|
||
|
|
//---
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
// *******************************************************************
|