I am creating a Class for Candle Patterns, where in another Class CiMA is variable.
NEED help
1) is this is correct way of passing parameters of CiMA to CCandlePattern ?
2) how to rectify 'CiMA' - pointer to this function type is not supported yet ... highlighted in the code
Thanks in advance
NOTE: I have just realized that it could be an issue as the CiMA Indicator was not initialized !!!
//+----------------------------------------------------------------------------------------------------------+//| CLASS: Module of Candle Patterns//+----------------------------------------------------------------------------------------------------------+class FxCCandlePattern
{
private:
//--- Variables for Parametersstring m_Symbol;
ENUM_TIMEFRAMES m_TimeFrame;
int m_BarCount;
int m_MAPeriod;
int m_Shift;
ENUM_MA_METHOD m_MAAvgMethod;
ENUM_APPLIED_PRICE m_AppliedPrice;
protected:
//--- methods, used for check of the candlestick pattern formationdouble m_MA[];
MqlRates m_Rates[];
bool Get_MA(void);
bool Get_MqlRates(void); // Gets history data of MqlRates structure//--- Class Instances and IndicatorsFxCiMA CiMA(void); // Class is defined with parametric constructor, so use of (void) is correct here ?//--- methods for Internal calculationsdouble candle_AvgBody(int index);
double candle_MidPoint(int index);
double candle_MidOpenClose(int index);
double candle_CloseAvg(int index);
//--- methods for checking of candlestick patternsbool bearish_ThreeBlackCrows(void);
bool bullish_ThreeWhiteSoldiers(void);
bool bearish_DarkCloudCover(void);
bool bullish_PiercingLine(void);
bool bullish_MorningDoji(void);
bool bearish_EveningDoji(void);
bool bearish_Engulfing(void);
bool bullish_Engulfing(void);
bool bearish_EveningStar(void);
bool bullish_MorningStar(void);
bool bullish_Hammer(void);
bool bearish_HangingMan(void);
bool bearish_Harami(void);
bool bullish_Harami(void);
bool bearish_MeetingLines(void);
bool bullish_MeetingLines(void);
public:
//--- Parametric Constructor and Destructor
FxCCandlePattern(string pSymbol,ENUM_TIMEFRAMES pTimeFrame,int pMAPeriod);
~FxCCandlePattern(void);
//--- method for checking of a certain candlestick patternbool Check_CandlePattern(enum_CANDLE_PATTERNS CandlePattern);
//--- methods for checking of bullish / bearish candlestick patternbool Check_AllBullish(void);
bool Check_AllBearish(void);
}; // END Of creating CLASS 'FxCCandlePattern'//+----------------------------------------------------------------------------------------------------------+//| METHOD: FxCCandlePattern()//| APPLICATION: 'parametric constructor' method with parameters passed into the Class//+----------------------------------------------------------------------------------------------------------+
FxCCandlePattern::FxCCandlePattern(string pSymbol,ENUM_TIMEFRAMES pTimeFrame,int pMAPeriod)
{
m_Symbol = pSymbol;
m_TimeFrame = pTimeFrame;
m_BarCount = 10;
m_MAPeriod = pMAPeriod;
m_Shift = 0;
m_MAAvgMethod = MODE_SMA;
m_AppliedPrice = PRICE_CLOSE;
FxCiMA CiMA(m_Symbol,m_TimeFrame,m_MAPeriod,m_Shift,m_MAAvgMethod,m_AppliedPrice); // Is this correct way to pass parameters to an Instance within another class ?
} // END Of Constructor method()...//+----------------------------------------------------------------------------------------------------------+//| METHOD: FxCCandlePattern()//| APPLICATION: 'parametric constructor' method with parameters passed into the Class//+----------------------------------------------------------------------------------------------------------+
FxCCandlePattern::~FxCCandlePattern(void)
{
//---
} // END Of Destructor method()...//+----------------------------------------------------------------------------------------------------------+//| METHOD: Get_MA(void)//| APPLICATION: To get MA Prices//+----------------------------------------------------------------------------------------------------------+bool FxCCandlePattern::Get_MA(void)
{
ArrayResize(m_MA,m_BarCount);
ArraySetAsSeries(m_MA,true);
CiMA.Get_iMA(0,m_BarCount,m_MA); // <-- "." open parenthesis required + pointer to this function type not supported yet + "." object required//---return(true);
} // END Of Get_MA()//+----------------------------------------------------------------------------------------------------------+//| METHOD: Get_MqlRates(void)//| APPLICATION: Gets history data of MqlRates structure of a specified symbol-period in specified quantity//| into the rates_array array.//+----------------------------------------------------------------------------------------------------------+bool FxCCandlePattern::Get_MqlRates(void)
{
ArrayResize(m_Rates,m_BarCount+1);
ArraySetAsSeries(m_Rates,true);
ResetLastError();
int copied = CopyRates(m_Symbol,m_TimeFrame,0,m_BarCount,m_Rates);
if(copied < 0)
{
Print(__FUNCTION__,": Error copying MqlRates Error Code ",GetLastError());
return(false);
}
//---return(true);
} // END Of Get_MA()
Dear Forum Members
I am creating a Class for Candle Patterns, where in another Class CiMA is variable.
NEED help
1) is this is correct way of passing parameters of CiMA to CCandlePattern ?
2) how to rectify 'CiMA' - pointer to this function type is not supported yet ... highlighted in the code
Thanks in advance
NOTE: I have just realized that it could be an issue as the CiMA Indicator was not initialized !!!