Compare commits

...

6 Commits

Author SHA1 Message Date
Artur a73e2c0713 Updated for compatibility with ver 3.11 2020-09-29 11:26:32 +02:00
9nix6 3175f594f1 Update README.md 2020-05-21 20:48:41 +02:00
Artur 5327473eaf Updated for RangeBars ver. 3.04 2020-03-17 23:34:45 +01:00
unknown 8035947476 Updated for RangeBars ver. 3.03 2020-03-11 17:04:08 +01:00
unknown acba19e38f Updated for RangeBars ver. 3.02 2020-02-25 18:25:11 +01:00
unknown 0d51499dcf Updated for RangeBars ver. 3.01 2020-02-23 23:23:36 +01:00
16 changed files with 62 additions and 17 deletions
+12 -2
View File
@@ -26,13 +26,18 @@ input int InpRSIPeriod = 14; // RSI period
// Example shown below // Example shown below
// //
RangeBars rangeBars(MQLInfoInteger((int)MQL5_TESTING) ? false : true); RangeBars *rangeBars = NULL;
//+------------------------------------------------------------------+ //+------------------------------------------------------------------+
//| Expert initialization function | //| Expert initialization function |
//+------------------------------------------------------------------+ //+------------------------------------------------------------------+
int OnInit() int OnInit()
{ {
if(rangeBars == NULL)
{
rangeBars = new RangeBars(MQLInfoInteger((int)MQL5_TESTING) ? false : true);
}
rangeBars.Init(); rangeBars.Init();
if(rangeBars.GetHandle() == INVALID_HANDLE) if(rangeBars.GetHandle() == INVALID_HANDLE)
return(INIT_FAILED); return(INIT_FAILED);
@@ -48,7 +53,12 @@ int OnInit()
//+------------------------------------------------------------------+ //+------------------------------------------------------------------+
void OnDeinit(const int reason) void OnDeinit(const int reason)
{ {
rangeBars.Deinit(); if(rangeBars != NULL)
{
rangeBars.Deinit();
delete rangeBars;
rangeBars = NULL;
}
// //
// your custom code goes here... // your custom code goes here...
+25 -5
View File
@@ -8,6 +8,7 @@
// Helper functions for placing market orders. // Helper functions for placing market orders.
// //
#define DEVELOPER_VERSION
#include <AZ-INVEST/SDK/TradeFunctions.mqh> #include <AZ-INVEST/SDK/TradeFunctions.mqh>
// //
@@ -52,14 +53,19 @@ ulong currentTicket;
// Example shown below // Example shown below
// //
RangeBars rangeBars(MQLInfoInteger((int)MQL5_TESTING) ? false : true); RangeBars *rangeBars = NULL;
CMarketOrder * marketOrder; CMarketOrder *marketOrder = NULL;
//+------------------------------------------------------------------+ //+------------------------------------------------------------------+
//| Expert initialization function | //| Expert initialization function |
//+------------------------------------------------------------------+ //+------------------------------------------------------------------+
int OnInit() int OnInit()
{ {
if(rangeBars == NULL)
{
rangeBars = new RangeBars(MQLInfoInteger((int)MQL5_TESTING) ? false : true);
}
rangeBars.Init(); rangeBars.Init();
if(rangeBars.GetHandle() == INVALID_HANDLE) if(rangeBars.GetHandle() == INVALID_HANDLE)
return(INIT_FAILED); return(INIT_FAILED);
@@ -79,8 +85,12 @@ int OnInit()
params.busyTimeout_ms = InpBusyTimeout_ms; params.busyTimeout_ms = InpBusyTimeout_ms;
params.requoteTimeout_ms = InpRequoteTimeout_ms; params.requoteTimeout_ms = InpRequoteTimeout_ms;
} }
marketOrder = new CMarketOrder(params);
if(marketOrder == NULL)
{
marketOrder = new CMarketOrder(params);
}
return(INIT_SUCCEEDED); return(INIT_SUCCEEDED);
} }
//+------------------------------------------------------------------+ //+------------------------------------------------------------------+
@@ -88,7 +98,16 @@ int OnInit()
//+------------------------------------------------------------------+ //+------------------------------------------------------------------+
void OnDeinit(const int reason) void OnDeinit(const int reason)
{ {
rangeBars.Deinit(); //
// delete RanegBars class
//
if(rangeBars != NULL)
{
rangeBars.Deinit();
delete rangeBars;
rangeBars = NULL;
}
// //
// delete MarketOrder class // delete MarketOrder class
@@ -97,6 +116,7 @@ void OnDeinit(const int reason)
if(marketOrder != NULL) if(marketOrder != NULL)
{ {
delete marketOrder; delete marketOrder;
marketOrder = NULL;
} }
} }
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+2 -1
View File
@@ -10,7 +10,8 @@ double NormalizeLots(string symbol, double InputLots)
{ {
double lotsMin = SymbolInfoDouble(symbol,SYMBOL_VOLUME_MIN); double lotsMin = SymbolInfoDouble(symbol,SYMBOL_VOLUME_MIN);
double lotsMax = SymbolInfoDouble(symbol,SYMBOL_VOLUME_MAX); double lotsMax = SymbolInfoDouble(symbol,SYMBOL_VOLUME_MAX);
int lotsDigits = (int) - MathLog10(SymbolInfoDouble(symbol, SYMBOL_VOLUME_STEP)); // int lotsDigits = (int) - MathLog10(SymbolInfoDouble(symbol, SYMBOL_VOLUME_STEP));
int lotsDigits = (int)MathAbs(MathLog10(SymbolInfoDouble(symbol, SYMBOL_VOLUME_STEP)));
if(InputLots < lotsMin) if(InputLots < lotsMin)
InputLots = lotsMin; InputLots = lotsMin;
@@ -12,7 +12,7 @@
#ifdef SHOW_INDICATOR_INPUTS #ifdef SHOW_INDICATOR_INPUTS
#ifdef MQL5_MARKET_DEMO // hardcoded values #ifdef MQL5_MARKET_DEMO // hardcoded values
int barSizeInTicks = 180; // Range bar size (in points) int barSizeInTicks = 180; // Range bar size (in ticks)
ENUM_BOOL atrEnabled = false; // Enable ATR based bar size calculation ENUM_BOOL atrEnabled = false; // Enable ATR based bar size calculation
ENUM_TIMEFRAMES atrTimeFrame = PERIOD_D1; // Use ATR period ENUM_TIMEFRAMES atrTimeFrame = PERIOD_D1; // Use ATR period
int atrPeriod = 14; // ATR period int atrPeriod = 14; // ATR period
@@ -23,7 +23,7 @@
#else // user defined settings #else // user defined settings
input int barSizeInTicks = 100; // Range bar size (in points) input int barSizeInTicks = 100; // Range bar size (in ticks)
input ENUM_BOOL atrEnabled = false; // Enable ATR based bar size calculation input ENUM_BOOL atrEnabled = false; // Enable ATR based bar size calculation
ENUM_TIMEFRAMES atrTimeFrame = PERIOD_D1; // Use ATR period ENUM_TIMEFRAMES atrTimeFrame = PERIOD_D1; // Use ATR period
input int atrPeriod = 14; // ATR period input int atrPeriod = 14; // ATR period
@@ -34,7 +34,7 @@
#endif #endif
#else // don't SHOW_INDICATOR_INPUTS #else // don't SHOW_INDICATOR_INPUTS
int barSizeInTicks = 180; // Range bar size (in points) int barSizeInTicks = 180; // Range bar size (in ticks)
ENUM_BOOL atrEnabled = false; // Enable ATR based bar size calculation ENUM_BOOL atrEnabled = false; // Enable ATR based bar size calculation
ENUM_TIMEFRAMES atrTimeFrame = PERIOD_D1; // Use ATR period ENUM_TIMEFRAMES atrTimeFrame = PERIOD_D1; // Use ATR period
int atrPeriod = 14; // ATR period int atrPeriod = 14; // ATR period
+6 -5
View File
@@ -194,7 +194,6 @@ int RangeBars::Init()
s.atrPercentage, s.atrPercentage,
s.showNumberOfDays, s.resetOpenOnNewTradingDay, s.showNumberOfDays, s.resetOpenOnNewTradingDay,
TradingSessionTime, TradingSessionTime,
TopBottomPaddingPercentage,
showPivots, showPivots,
pivotPointCalculationType, pivotPointCalculationType,
RColor, RColor,
@@ -203,11 +202,8 @@ int RangeBars::Init()
PDHColor, PDHColor,
PDLColor, PDLColor,
PDCColor, PDCColor,
showCurrentBarOpenTime,
AlertMeWhen, AlertMeWhen,
AlertNotificationType, AlertNotificationType,
SoundFileBull,
SoundFileBear,
cis.MA1on, cis.MA1on,
cis.MA1lineType, cis.MA1lineType,
cis.MA1period, cis.MA1period,
@@ -245,7 +241,12 @@ int RangeBars::Init()
cis.ChannelPriceLabel, cis.ChannelPriceLabel,
cis.ChannelMidPriceLabel, cis.ChannelMidPriceLabel,
true); // used in EA true); // used in EA
// DisplayAsBarChart & ShiftObj let at defaults // TopBottomPaddingPercentage,
// showCurrentBarOpenTime,
// SoundFileBull,
// SoundFileBear,
// DisplayAsBarChart
// ShiftObj; all letft at defaults
if(rangeBarsHandle == INVALID_HANDLE) if(rangeBarsHandle == INVALID_HANDLE)
{ {
+1
View File
@@ -6,6 +6,7 @@
#property copyright "2009-2017, MetaQuotes Software Corp." #property copyright "2009-2017, MetaQuotes Software Corp."
#property link "http://www.mql5.com" #property link "http://www.mql5.com"
#property description "Average True Range" #property description "Average True Range"
#property description "Adapted for use with TickChart by Artur Zas."
//--- indicator settings //--- indicator settings
#property indicator_separate_window #property indicator_separate_window
#property indicator_buffers 2 #property indicator_buffers 2
+1
View File
@@ -8,6 +8,7 @@
#property copyright "2009, MetaQuotes Software Corp." #property copyright "2009, MetaQuotes Software Corp."
#property link "http://www.mql5.com" #property link "http://www.mql5.com"
#property description "Commodity Channel Index" #property description "Commodity Channel Index"
#property description "Adapted for use with TickChart by Artur Zas."
#include <MovingAverages.mqh> #include <MovingAverages.mqh>
//--- //---
#property indicator_separate_window #property indicator_separate_window
@@ -6,6 +6,7 @@
#property copyright "2009-2017, MetaQuotes Software Corp." #property copyright "2009-2017, MetaQuotes Software Corp."
#property link "http://www.mql5.com" #property link "http://www.mql5.com"
#property description "Ichimoku Kinko Hyo" #property description "Ichimoku Kinko Hyo"
#property description "Adapted for use with TickChart by Artur Zas."
//--- indicator settings //--- indicator settings
#property indicator_chart_window #property indicator_chart_window
#property indicator_buffers 5 #property indicator_buffers 5
@@ -5,6 +5,7 @@
//+------------------------------------------------------------------+ //+------------------------------------------------------------------+
#property copyright "2009-2017, MetaQuotes Software Corp." #property copyright "2009-2017, MetaQuotes Software Corp."
#property link "http://www.mql5.com" #property link "http://www.mql5.com"
#property description "Adapted for use with TickChart by Artur Zas."
//--- indicator settings //--- indicator settings
#property indicator_chart_window #property indicator_chart_window
#property indicator_buffers 3 #property indicator_buffers 3
@@ -5,6 +5,7 @@
//+------------------------------------------------------------------+ //+------------------------------------------------------------------+
#property copyright "2009, MetaQuotes Software Corp." #property copyright "2009, MetaQuotes Software Corp."
#property link "http://www.mql5.com" #property link "http://www.mql5.com"
#property description "Adapted for use with TickChart by Artur Zas."
//--- indicator settings //--- indicator settings
#property indicator_separate_window #property indicator_separate_window
#property indicator_buffers 4 #property indicator_buffers 4
+4 -1
View File
@@ -19,7 +19,7 @@ enum ENUM_DISPLAY_FORMAT
DisplayFormat2, // 25.01 10:55 DisplayFormat2, // 25.01 10:55
}; };
input color InpTextColor = clrWhiteSmoke; // Font color input color InpTextColor = clrBlack; // Font color
input int InpFontSize = 9; // Font size input int InpFontSize = 9; // Font size
input int InpSpacing = 3; // Date/Time spacing factor input int InpSpacing = 3; // Date/Time spacing factor
input ENUM_DISPLAY_FORMAT InpDispFormat = DisplayFormat1; // Display format input ENUM_DISPLAY_FORMAT InpDispFormat = DisplayFormat1; // Display format
@@ -161,6 +161,9 @@ string NormalizeTime(datetime _dt)
string minute = (dt.min<10) ? ("0"+(string)dt.min) : (string)dt.min; string minute = (dt.min<10) ? ("0"+(string)dt.min) : (string)dt.min;
string hour = (dt.hour<10) ? ("0"+(string)dt.hour) : (string)dt.hour; string hour = (dt.hour<10) ? ("0"+(string)dt.hour) : (string)dt.hour;
if((dt.mon-1) < 0 || (dt.mon-1) > 11)
return "*";
if(InpDispFormat == DisplayFormat1) if(InpDispFormat == DisplayFormat1)
return ( "'"+(string)dt.day+" "+__months[dt.mon-1]+" "+hour+":"+minute ); return ( "'"+(string)dt.day+" "+__months[dt.mon-1]+" "+hour+":"+minute );
else else
+5
View File
@@ -22,3 +22,8 @@ All folders (Experts, Include & Indicators) & sub-folders should be placed in th
The RangeBars indicator for MT5 can be downloaded from https://www.mql5.com/en/market/product/16762 The RangeBars indicator for MT5 can be downloaded from https://www.mql5.com/en/market/product/16762
A version for MT4 is available from https://www.az-invest.eu/rangebars-plug-in-for-metatrader4 A version for MT4 is available from https://www.az-invest.eu/rangebars-plug-in-for-metatrader4
## Disclaimer:
All of the EAs and indicators presented in this repository are solely for educational and informational purposes and should not be regarded as advice or an invitation to trade.
Application of the techniques, ideas, and suggestions presented in the videos and files of this repository is done at the users sole discretion and risk.