447 lines
26 KiB
Plaintext
447 lines
26 KiB
Plaintext
#property copyright "Copyright 2011-2021, Level Up Software"
|
|
|
|
static bool IS_TESTING = (bool)MQLInfoInteger(MQL_TESTER);
|
|
|
|
enum ENUM_BOOL
|
|
{
|
|
#ifdef P_RENKO_BR
|
|
BFalse = 0, // Não
|
|
BTrue = 1, // Sim
|
|
#else
|
|
BFalse = 0, // No
|
|
BTrue = 1, // Yes
|
|
#endif
|
|
};
|
|
|
|
enum ENUM_MA_METHOD_EXT
|
|
{
|
|
#ifdef P_RENKO_BR
|
|
_MODE_SMA = 0, // Simples
|
|
_MODE_EMA, // Exponencial
|
|
_MODE_SMMA, // Suavizada
|
|
_MODE_LWMA, // Ponderada
|
|
_VWAP_TICKVOL = 997, // VWMA (tick volume)
|
|
_VWAP_REALVOL = 998, // VWMA (real volume)
|
|
_LINEAR_REGRESSION = 999, // Linear regression
|
|
#else
|
|
_MODE_SMA = 0, // Simple
|
|
_MODE_EMA, // Exponential
|
|
_MODE_SMMA, // Smoothed
|
|
_MODE_LWMA, // Linear-weighted
|
|
_VWAP_TICKVOL = 997, // Volume-weighted (tick volume)
|
|
_VWAP_REALVOL = 998, // Volume-weighted (real volume)
|
|
_LINEAR_REGRESSION = 999, // Linear regression
|
|
#endif
|
|
};
|
|
|
|
enum ENUM_CHANNEL_TYPE
|
|
{
|
|
#ifdef AMP_VERSION
|
|
|
|
_None = 0, // No
|
|
_Keltner_Channel = 4, // Yes
|
|
|
|
#else
|
|
|
|
#ifdef P_RENKO_BR
|
|
_None = 0, // Nenhum
|
|
_Donchian_Channel = 1, // Canais de Donchian
|
|
_Bollinger_Bands = 2, // Bandas de Bollinger
|
|
_SuperTrend = 3, // Super Trend
|
|
_Keltner_Channel = 4, // Canais de Keltner
|
|
#else
|
|
_None = 0, // None
|
|
_Donchian_Channel = 1, // Donchian Channel
|
|
_Bollinger_Bands = 2, // Bollinger Bands
|
|
_SuperTrend = 3, // Super Trend
|
|
_Keltner_Channel = 4, // Keltner Channel
|
|
#endif
|
|
|
|
#endif // AMP_VERSION
|
|
};
|
|
|
|
enum ENUM_TICK_PRICE_TYPE
|
|
{
|
|
tickBid, // Bid price
|
|
tickAsk, // Ask price
|
|
tickLast, // Last price
|
|
};
|
|
|
|
enum ENUM_PIVOT_POINTS
|
|
{
|
|
#ifdef P_RENKO_BR
|
|
ppNone = 0, // Nenhum
|
|
ppPrevHLC, // HLC Dia Anterior
|
|
ppClassic, // Clássico
|
|
ppClassicPrevHLC, // Clássico + HLC Dia Anterior
|
|
ppFibo, // Fibonacci
|
|
ppFiboPrevHLC, // Fibonacci + HLC Dia Anterior
|
|
#else
|
|
ppNone = 0, // None
|
|
ppPrevHLC, // Previous day HLC
|
|
ppClassic, // Classic
|
|
ppClassicPrevHLC, // Classic + Prev HLC
|
|
ppFibo, // Fibonacci
|
|
ppFiboPrevHLC, // Fibonacci + Prev HLC
|
|
#endif
|
|
};
|
|
|
|
enum ENUM_PIVOT_TYPE
|
|
{
|
|
#ifdef P_RENKO_BR
|
|
ppCalcNone = 0, // Nenhum
|
|
ppHLC3 = 1, // (H+L+C) / 3
|
|
ppOHLC4 = 2, // (O+H+L+C) / 4
|
|
#else
|
|
ppCalcNone = 0, // None
|
|
ppHLC3 = 1, // (H+L+C) / 3
|
|
ppOHLC4 = 2, // (O+H+L+C) / 4
|
|
#endif
|
|
};
|
|
|
|
enum ENUM_BAR_SIZE_CALC_MODE
|
|
{
|
|
BAR_SIZE_ABSOLUTE_TICKS = 0, // Ticks
|
|
BAR_SIZE_ABSOLUTE_PIPS, // Pips
|
|
BAR_SIZE_ABSOLUTE_POINTS, // Points
|
|
BAR_SIZE_ATR_PERCENT, // ATR %
|
|
BAR_SIZE_PERCENT, // %
|
|
};
|
|
|
|
enum ENUM_ALERT_TYPE
|
|
{
|
|
ALERT_NEW_BAR_BULL = 0,
|
|
ALERT_NEW_BAR_BEAR,
|
|
ALERT_MA_CROSS_BULL,
|
|
ALERT_MA_CROSS_BEAR,
|
|
};
|
|
|
|
enum ENUM_MA_LINE_TYPE
|
|
{
|
|
#ifdef P_RENKO_BR
|
|
MA_NONE = DRAW_NONE, // Não Mostrar
|
|
MA_LINE = DRAW_LINE, // Linha
|
|
MA_DOTS = DRAW_ARROW, // Pontilhado
|
|
#else
|
|
MA_NONE = DRAW_NONE, // Don't show
|
|
MA_LINE = DRAW_LINE, // Line
|
|
MA_DOTS = DRAW_ARROW, // Dots
|
|
#endif
|
|
};
|
|
|
|
enum ENUM_CHANNEL_LABEL_DISP
|
|
{
|
|
LABEL_NONE, // None
|
|
LABEL_HIGH_LOW, // High & Low
|
|
LABEL_HIGH_MID_LOW, // High, Mid & Low
|
|
};
|
|
|
|
enum ENUM_CHART_INFO
|
|
{
|
|
CHART_INFO_NONE = 0, // None
|
|
};
|
|
|
|
enum ENUM_VOLUME_CHART_CALCULATION
|
|
{
|
|
VOLUME_CHART_USE_VOLUME, // Volume chart
|
|
VOLUME_CHART_USE_TICKS, // Tick chart
|
|
};
|
|
|
|
enum ENUM_ALERT_WHEN
|
|
{
|
|
#ifdef P_RENKO_BR
|
|
ALERT_WHEN_None = 0, // Nenhum
|
|
ALERT_WHEN_NewBar, // Nova barra
|
|
ALERT_WHEN_Reversal, // Barra de reversão
|
|
ALERT_WHEN_NewBullishReversal, // Barra de reversão de alta
|
|
ALERT_WHEN_NewBearishReversal, // Barra de reversão de baixa
|
|
ALERT_WHEN_MaCross, // Cruzamento Médias MA1 e MA2
|
|
ALERT_WHEN_NewBarReversal, // Nova barra & Barra de Reversão
|
|
ALERT_WHEN_NewBarMaCross, // Nova barra & Cruzamento Médias
|
|
ALERT_WHEN_ReversalMaCross,// Barra de Reversão & Cruzamento Médias
|
|
ALERT_WHEN_All, // Nova Barra & Barra de Reversão & Cruzamento Médias
|
|
#else
|
|
ALERT_WHEN_None = 0, // None
|
|
ALERT_WHEN_NewBar, // New bar
|
|
ALERT_WHEN_Reversal, // Reversal bar
|
|
ALERT_WHEN_NewBullishReversal, // Bullish reversal bar
|
|
ALERT_WHEN_NewBearishReversal, // Bearish reversal bar
|
|
ALERT_WHEN_MaCross, // MA1 & MA2 crossover
|
|
ALERT_WHEN_NewBarReversal, // New bar & Reversal bar
|
|
ALERT_WHEN_NewBarMaCross, // New bar & MA cross
|
|
ALERT_WHEN_ReversalMaCross,// Reversal bar & MA cross
|
|
ALERT_WHEN_All, // New bar & reversal bar & MA cross
|
|
#endif
|
|
};
|
|
|
|
enum ENUM_ALERT_NOTIFY_TYPE
|
|
{
|
|
#ifdef P_RENKO_BR
|
|
ALERT_NOTIFY_TYPE_None = 0, // Nenhum
|
|
ALERT_NOTIFY_TYPE_Msg, // Mostrar com box de alerta
|
|
ALERT_NOTIFY_TYPE_Sound, // Tocar som
|
|
ALERT_NOTIFY_TYPE_Push, // Enviar Notificação Push
|
|
ALERT_NOTIFY_TYPE_MsgSound, // Mostrar alerta & Tocar som
|
|
ALERT_NOTIFY_TYPE_SoundPush, // Tocar som & Enviar notificação push
|
|
ALERT_NOTIFY_TYPE_MsgPush, // Mostrar alerta & Enviar notificação push
|
|
ALERT_NOTIFY_TYPE_All, // Mostrar alerta & Tocar som & Enviar notificação push
|
|
#else
|
|
ALERT_NOTIFY_TYPE_None = 0, // None
|
|
ALERT_NOTIFY_TYPE_Msg, // Show in alert box
|
|
ALERT_NOTIFY_TYPE_Sound, // Play sound
|
|
ALERT_NOTIFY_TYPE_Push, // Send push notification
|
|
ALERT_NOTIFY_TYPE_MsgSound, // Show alert & Sound
|
|
ALERT_NOTIFY_TYPE_SoundPush, // Play sound & Push notify
|
|
ALERT_NOTIFY_TYPE_MsgPush, // Show alert & Push notify
|
|
ALERT_NOTIFY_TYPE_All, // Alert & Sound & Push notify
|
|
#endif
|
|
};
|
|
|
|
//
|
|
// Settigns used by CustomBarProcessor class for alert & info purposes
|
|
//
|
|
|
|
struct ALERT_INFO_SETTINGS
|
|
{
|
|
string TradingSessionTime;
|
|
color OffMarketColor;
|
|
|
|
double TopBottomPaddingPercentage;
|
|
ENUM_PIVOT_POINTS showPivots;
|
|
ENUM_PIVOT_TYPE pivotPointCalculationType;
|
|
ENUM_BOOL showNextBarLevels;
|
|
ENUM_BOOL showCurrentBarOpenTime;
|
|
|
|
color Rcolor;
|
|
color Pcolor;
|
|
color Scolor;
|
|
color PDHColor;
|
|
color PDLColor;
|
|
color PDCColor;
|
|
color HighThresholdIndicatorColor;
|
|
color LowThresholdIndicatorColor;
|
|
color CounterColor;
|
|
color MA1PriceLabelColor;
|
|
color MA2PriceLabelColor;
|
|
color MA3PriceLabelColor;
|
|
color MA4PriceLabelColor;
|
|
color ChannelHighPriceLabelColor;
|
|
color ChannelMidPriceLabelColor;
|
|
color ChannelLowPriceLabelColor;
|
|
color InfoTextColor;
|
|
|
|
ENUM_BOOL NewBarAlert;
|
|
ENUM_BOOL ReversalBarAlert;
|
|
ENUM_BOOL BullishReversalAlert;
|
|
ENUM_BOOL BearishReversalAlert;
|
|
ENUM_BOOL MaCrossAlert;
|
|
ENUM_BOOL UseAlertWindow;
|
|
ENUM_BOOL UseSound;
|
|
ENUM_BOOL UsePushNotifications;
|
|
string SoundFileBull;
|
|
string SoundFileBear;
|
|
|
|
ENUM_BOOL DisplayAsBarChart;
|
|
};
|
|
|
|
//
|
|
// Settgins used for custom symbol chart
|
|
//
|
|
|
|
struct CUSTOM_SYMBOL_SETTINGS
|
|
{
|
|
string CustomChartName;
|
|
string ApplyTemplate;
|
|
bool ForBacktesting;
|
|
bool ForceFasterRefresh;
|
|
bool ShowTradeLevels;
|
|
};
|
|
|
|
//
|
|
// Settings used for on chart indicators
|
|
//
|
|
|
|
struct CHART_INDICATOR_SETTINGS
|
|
{
|
|
//ENUM_BOOL MA1on;
|
|
ENUM_MA_LINE_TYPE MA1lineType;
|
|
int MA1period;
|
|
ENUM_MA_METHOD_EXT MA1method;
|
|
ENUM_APPLIED_PRICE MA1applyTo;
|
|
int MA1shift;
|
|
ENUM_BOOL MA1priceLabel;
|
|
|
|
//ENUM_BOOL MA2on;
|
|
ENUM_MA_LINE_TYPE MA2lineType;
|
|
int MA2period;
|
|
ENUM_MA_METHOD_EXT MA2method;
|
|
ENUM_APPLIED_PRICE MA2applyTo;
|
|
int MA2shift;
|
|
ENUM_BOOL MA2priceLabel;
|
|
|
|
//ENUM_BOOL MA3on;
|
|
ENUM_MA_LINE_TYPE MA3lineType;
|
|
int MA3period;
|
|
ENUM_MA_METHOD_EXT MA3method;
|
|
ENUM_APPLIED_PRICE MA3applyTo;
|
|
int MA3shift;
|
|
ENUM_BOOL MA3priceLabel;
|
|
|
|
//ENUM_BOOL MA4on;
|
|
ENUM_MA_LINE_TYPE MA4lineType;
|
|
int MA4period;
|
|
ENUM_MA_METHOD_EXT MA4method;
|
|
ENUM_APPLIED_PRICE MA4applyTo;
|
|
int MA4shift;
|
|
ENUM_BOOL MA4priceLabel;
|
|
|
|
ENUM_CHANNEL_TYPE ShowChannel;
|
|
ENUM_APPLIED_PRICE ChannelAppliedPrice;
|
|
int ChannelPeriod;
|
|
int ChannelAtrPeriod;
|
|
double ChannelMultiplier;
|
|
double ChannelBandsDeviations;
|
|
//ENUM_BOOL ChannelPriceLabel;
|
|
//ENUM_BOOL ChannelMidPriceLabel;
|
|
ENUM_CHANNEL_LABEL_DISP ChannelPriceLabels;
|
|
|
|
ENUM_BOOL UsedInEA;
|
|
ENUM_BOOL ShiftObj;
|
|
};
|
|
|
|
#ifdef P_RENKO_BOT
|
|
#define P_RENKO_BR
|
|
#endif
|
|
|
|
#ifdef P_RENKO_BR
|
|
enum ENUM_CHART_SIZE
|
|
{
|
|
_1R = 1, //1R (Renko)
|
|
_2R, //2R (Renko)
|
|
_3R, //3R (Renko)
|
|
_4R, //4R (Renko)
|
|
_5R, //5R (Renko)
|
|
_6R, //6R (Renko)
|
|
_7R, //7R (Renko)
|
|
_8R, //8R (Renko)
|
|
_9R, //9R (Renko)
|
|
_10R, //10R (Renko)
|
|
_11R, //11R (Renko)
|
|
_12R, //12R (Renko)
|
|
_13R, //13R (Renko)
|
|
_14R, //14R (Renko)
|
|
_15R, //15R (Renko)
|
|
_16R, //16R (Renko)
|
|
_17R, //17R (Renko)
|
|
_18R, //18R (Renko)
|
|
_19R, //19R (Renko)
|
|
_20R, //20R (Renko)
|
|
_21R, //21R (Renko)
|
|
_22R, //22R (Renko)
|
|
_23R, //23R (Renko)
|
|
_24R, //24R (Renko)
|
|
_25R, //25R (Renko)
|
|
_26R, //26R (Renko)
|
|
_27R, //27R (Renko)
|
|
_28R, //28R (Renko)
|
|
_29R, //29R (Renko)
|
|
_30R, //30R (Renko)
|
|
_31R, //31R (Renko)
|
|
_32R, //32R (Renko)
|
|
_33R, //33R (Renko)
|
|
_34R, //34R (Renko)
|
|
_35R, //35R (Renko)
|
|
_36R, //36R (Renko)
|
|
_37R, //37R (Renko)
|
|
_38R, //38R (Renko)
|
|
_39R, //39R (Renko)
|
|
_40R, //40R (Renko)
|
|
_41R, //41R (Renko)
|
|
_42R, //42R (Renko)
|
|
_43R, //43R (Renko)
|
|
_44R, //44R (Renko)
|
|
_45R, //45R (Renko)
|
|
_46R, //46R (Renko)
|
|
_47R, //47R (Renko)
|
|
_48R, //48R (Renko)
|
|
_49R, //49R (Renko)
|
|
_50R, //50R (Renko)
|
|
_1P, //1P (Preço)
|
|
_2P, //2P (Preço)
|
|
_3P, //3P (Preço)
|
|
_4P, //4P (Preço)
|
|
_5P, //5P (Preço)
|
|
_6P, //6P (Preço)
|
|
_7P, //7P (Preço)
|
|
_8P, //8P (Preço)
|
|
_9P, //9P (Preço)
|
|
_10P, //10P (Preço)
|
|
_11P, //11P (Preço)
|
|
_12P, //12P (Preço)
|
|
_13P, //13P (Preço)
|
|
_14P, //14P (Preço)
|
|
_15P, //15P (Preço)
|
|
_16P, //16P (Preço)
|
|
_17P, //17P (Preço)
|
|
_18P, //18P (Preço)
|
|
_19P, //19P (Preço)
|
|
_20P, //20P (Preço)
|
|
_21P, //21P (Preço)
|
|
_22P, //22P (Preço)
|
|
_23P, //23P (Preço)
|
|
_24P, //24P (Preço)
|
|
_25P, //25P (Preço)
|
|
_26P, //26P (Preço)
|
|
_27P, //27P (Preço)
|
|
_28P, //28P (Preço)
|
|
_29P, //29P (Preço)
|
|
_30P, //30P (Preço)
|
|
_31P, //31P (Preço)
|
|
_32P, //32P (Preço)
|
|
_33P, //33P (Preço)
|
|
_34P, //34P (Preço)
|
|
_35P, //35P (Preço)
|
|
_36P, //36P (Preço)
|
|
_37P, //37P (Preço)
|
|
_38P, //38P (Preço)
|
|
_39P, //39P (Preço)
|
|
_40P, //40P (Preço)
|
|
_41P, //41P (Preço)
|
|
_42P, //42P (Preço)
|
|
_43P, //43P (Preço)
|
|
_44P, //44P (Preço)
|
|
_45P, //45P (Preço)
|
|
_46P, //46P (Preço)
|
|
_47P, //47P (Preço)
|
|
_48P, //48P (Preço)
|
|
_49P, //49P (Preço)
|
|
_50P, //50P (Preço)
|
|
};
|
|
#endif
|
|
|
|
#ifdef P_RENKO_BOT
|
|
#undef P_RENKO_BR
|
|
#endif
|
|
|
|
enum ENUM_CUSTOM_BAR_TYPE
|
|
{
|
|
cbtCustom = 0, // No
|
|
cbtRenko, // Renko
|
|
cbtMedianRenko, // Median Renko
|
|
cbtPointO, // PointO
|
|
cbtTurboRenko075, // Turbo Renko
|
|
cbtHybridRenko075, // Hybrid Renko
|
|
};
|
|
|
|
enum ENUM_INTERVAL
|
|
{
|
|
INTERVAL_SECONDS = 0, // Seconds
|
|
INTERVAL_MINUTES = 1, // Minutes
|
|
INTERVAL_HOURS = 2, // Hours
|
|
INTERVAL_DAYS = 3, // Days
|
|
INTERVAL_WEEKS = 4, // Weeks
|
|
INTERVAL_MONTHS = 5, // Months
|
|
};
|
|
|
|
const long _INTERVAL_MULT[6] = {1,60,3600,86400,604800,2592000};
|
|
const string _INTERVALS[6] = {"sec","min","hrs","day","week","month"}; |