95 lines
5 KiB
MQL5
95 lines
5 KiB
MQL5
|
|
|
|
input int CandleRange = 100;
|
|
|
|
// FUNCTION CHECK FOR NEW CANDLES
|
|
|
|
bool CheckfornewCandle (int CandleNumber)
|
|
{
|
|
|
|
static int LastCandleNumber;
|
|
|
|
bool IsNewCandle= false;
|
|
|
|
if (CandleNumber>LastCandleNumber)
|
|
{
|
|
|
|
IsNewCandle = true;
|
|
|
|
LastCandleNumber = CandleNumber;
|
|
|
|
Print("-----New Candle-----",
|
|
"\nLastOpenTime: ",iTime(_Symbol,PERIOD_CURRENT,1),
|
|
"\nLastOpen: ",iOpen(_Symbol,PERIOD_CURRENT,1),
|
|
"\nLastClose: ",iClose(_Symbol,PERIOD_CURRENT,1));
|
|
|
|
|
|
}
|
|
return IsNewCandle;
|
|
|
|
}
|
|
|
|
|
|
|
|
void OnTick()
|
|
{
|
|
|
|
// CHECK FOR NEW CANDLES
|
|
|
|
int CandleNumber = Bars(_Symbol,_Period);
|
|
|
|
bool NewCandleAppeared;
|
|
|
|
NewCandleAppeared = CheckfornewCandle(CandleNumber);
|
|
|
|
if (NewCandleAppeared)
|
|
{
|
|
|
|
//INITIALIZE CANDLE CLOSE ARRAY
|
|
|
|
double CandleClose[];
|
|
|
|
ArraySetAsSeries(CandleClose, true);
|
|
|
|
int CandleCloseSize = ArraySize(CandleClose);
|
|
|
|
CopyClose(_Symbol, PERIOD_CURRENT, 0, CandleRange, CandleClose);
|
|
|
|
Print("Last Candle Closing Value: ",CandleClose[0]);
|
|
|
|
|
|
//INITIALIZE AND FILL CANDLE DIFFERENCE TO LAST ARRAY
|
|
|
|
double CandleDifferenceToLast[];
|
|
|
|
ArrayResize(CandleDifferenceToLast,CandleCloseSize);
|
|
|
|
//ArraySetAsSeries(CandleDifferenceToLast, true);
|
|
|
|
int CandleDifferenceSize = ArraySize(CandleDifferenceToLast);
|
|
|
|
for (int i = 1; i < CandleCloseSize + 1; i++)
|
|
{
|
|
|
|
double LastClose = CandleClose[i-1];
|
|
|
|
Print("LastClose: ",LastClose);
|
|
double SndLastclose = CandleClose[i];
|
|
|
|
Print("LastClose: ",SndLastclose);
|
|
double CandleDifference = SndLastclose - LastClose;
|
|
|
|
Print("CandleDifference: ",CandleDifference);
|
|
CandleDifferenceToLast[i] = CandleDifference;
|
|
|
|
//CandleDifferenceToLast[i] = CandleClose[i] - CandleClose[i+1];
|
|
|
|
}
|
|
|
|
Print("Last Candle Difference to 2.Last: ",CandleDifferenceToLast[0]);
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|