forked from rosh/MQL5Book
152 lines
5.2 KiB
MQL5
152 lines
5.2 KiB
MQL5
//+------------------------------------------------------------------+
| |||
//| AllInOne.mqh |
| |||
//| Copyright 2021, MetaQuotes Ltd. |
| |||
//| https://www.mql5.com |
| |||
//+------------------------------------------------------------------+
| |||
#include "..\..\Include\PRTF.mqh"
| |||
#include "..\..\Include\Uninit.mqh"
| |||
| |||
// detect and output actual program type
| |||
const string type = PRTF(EnumToString((ENUM_PROGRAM_TYPE)MQLInfoInteger(MQL_PROGRAM_TYPE)));
| |||
| |||
//+------------------------------------------------------------------+
| |||
//| Simple class to trap uninitialization reason |
| |||
//+------------------------------------------------------------------+
| |||
class Finalizer
| |||
{
| |||
static const Finalizer f;
| |||
public:
| |||
~Finalizer()
| |||
{
| |||
PRTF(EnumToString((ENUM_DEINIT_REASON)UninitializeReason()));
| |||
}
| |||
};
| |||
| |||
static const Finalizer Finalizer::f;
| |||
| |||
//+------------------------------------------------------------------+
| |||
//| Event handler for indicator/expert start-up |
| |||
//+------------------------------------------------------------------+
| |||
int OnInit()
| |||
{
| |||
Print(__FUNCTION__);
| |||
return INIT_SUCCEEDED;
| |||
}
| |||
| |||
//+------------------------------------------------------------------+
| |||
//| Stub of event handler for script/service start-up |
| |||
//| NB: enable '#define _OnStart OnStart' to use as event handler |
| |||
//+------------------------------------------------------------------+
| |||
void _OnStart()
| |||
{
| |||
Print(__FUNCTION__);
| |||
}
| |||
| |||
//+------------------------------------------------------------------+
| |||
//| Event handler for indicator/expert finalization |
| |||
//+------------------------------------------------------------------+
| |||
void OnDeinit(const int reason)
| |||
{
| |||
Print(__FUNCTION__, " ", EnumToString((ENUM_DEINIT_REASON)reason));
| |||
}
| |||
| |||
//+------------------------------------------------------------------+
| |||
//| Event handler for new tick in an expert adviser |
| |||
//+------------------------------------------------------------------+
| |||
void OnTick()
| |||
{
| |||
Print(__FUNCTION__);
| |||
}
| |||
| |||
//+------------------------------------------------------------------+
| |||
//| Handler of timer events in indicator/expert |
| |||
//+------------------------------------------------------------------+
| |||
void OnTimer()
| |||
{
| |||
Print(__FUNCTION__);
| |||
}
| |||
| |||
//+------------------------------------------------------------------+
| |||
//| Handler for trading events in expert adviser |
| |||
//+------------------------------------------------------------------+
| |||
void OnTrade()
| |||
{
| |||
Print(__FUNCTION__);
| |||
}
| |||
| |||
//+------------------------------------------------------------------+
| |||
//| Handler for trading events (with details) in expert adviser |
| |||
//+------------------------------------------------------------------+
| |||
void OnTradeTransaction(
| |||
const MqlTradeTransaction &trans,
| |||
const MqlTradeRequest &request,
| |||
const MqlTradeResult &result)
| |||
{
| |||
Print(__FUNCTION__);
| |||
}
| |||
| |||
//+------------------------------------------------------------------+
| |||
//| Handler of market book events in indicator/expert |
| |||
//+------------------------------------------------------------------+
| |||
void OnBookEvent(const string& symbol)
| |||
{
| |||
Print(__FUNCTION__);
| |||
}
| |||
| |||
//+------------------------------------------------------------------+
| |||
//| Handler of chart events in indicator/expert |
| |||
//+------------------------------------------------------------------+
| |||
void OnChartEvent(
| |||
const int id,
| |||
const long &lparam,
| |||
const double &dparam,
| |||
const string &sparam)
| |||
{
| |||
Print(__FUNCTION__);
| |||
}
| |||
| |||
//+------------------------------------------------------------------+
| |||
//| Stub of event handler for [re]calculation of indicator (form #1) |
| |||
//| NB: enable '#define _OnCalculate1 OnCalculate' to use as handler |
| |||
//+------------------------------------------------------------------+
| |||
int _OnCalculate1(
| |||
const int rates_total,
| |||
const int prev_calculated,
| |||
const int begin,
| |||
const double &price[])
| |||
{
| |||
Print(__FUNCTION__);
| |||
return 0;
| |||
}
| |||
| |||
//+------------------------------------------------------------------+
| |||
//| Stub of event handler for [re]calculation of indicator (form #2) |
| |||
//| NB: enable '#define _OnCalculate1 OnCalculate' to use as handler |
| |||
//+------------------------------------------------------------------+
| |||
int _OnCalculate2(
| |||
const int rates_total,
| |||
const int prev_calculated,
| |||
const datetime &time[],
| |||
const double &open[],
| |||
const double &high[],
| |||
const double &low[],
| |||
const double &close[],
| |||
const long &tick_volume[],
| |||
const long &volume[],
| |||
const int &spread[])
| |||
{
| |||
Print(__FUNCTION__);
| |||
return 0;
| |||
}
| |||
| |||
//+------------------------------------------------------------------+
| |||
//| Handler of after-testing event for expert adviser |
| |||
//| (another tester-related events exist but ommitted here) |
| |||
//+------------------------------------------------------------------+
| |||
double OnTester()
| |||
{
| |||
Print(__FUNCTION__);
| |||
return 0;
| |||
}
| |||
| |||
//+------------------------------------------------------------------+
|