# Backtest n days before month end or after month begins

283

Hi all,

could you help me with this approach, i need to code a signal that opens a trade n days before the end of the month or n first days of new month. Could you help my with pseudocode please?.

Best.

16105

coiler: , i need to code a signal that opens a trade n days before the end of the month or n first days of new month. Could you help my with pseudocode please?.
1. You have only three choices: Search for it, learn to code it, or pay someone. We're not going to code it FOR you. We are willing to HELP you when you post your attempt (using SRC) and the nature of your problem.
2. First n days of new month is easy TimeDay(when) <= n
3. Last n is slightly harder
```enum eMonth {JANUARY=1, FEBRUARY, MARCH, APRIL, MAY, JUNE, JULY, AUGUST,
SEPTEMBER, OCTOBER, NOVEMBER, DECEMBER };
int   DaysOfMonth(datetime when){
// Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
static int     dpm[] =  {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
eMonth         mo = TimeMonth(when);
return dpm[mo - JANUARY] + (mo != FEBRUARY ? 0 : (int)IsLeapYear(when) );
}
bool  IsLeapYear(dateime when){
int year = TimeYear(when); return year%4==0 && (year%100!=0 || year%400==0);}
:
if(DaysOfMonth(when) - TimeDay(when) > n)```
From my code
Moderator
33504

WHRoeder:
1. You have only three choices: Search for it, learn to code it, or pay someone. We're not going to code it FOR you. We are willing to HELP you when you post your attempt (using SRC) and the nature of your problem.
2. First n days of new month is easy TimeDay(when) <= n
3. Last n is slightly harderFrom my code
Can you explain why you are still coding on 80 columns in 2015 ?
16105

 angevoyageur: Can you explain why you are still coding on 80 columns in 2015 ? Are your books one column but two feet wide? No because that is unreadable. They are 6 inches, sometimes two columns, so you can read it easily. So should be your code. I'm not going to go scrolling (or moving my eyes) back and forth trying to read it.
Moderator
33504

WHRoeder:
 angevoyageur: Can you explain why you are still coding on 80 columns in 2015 ? Are your books one column but two feet wide? No because that is unreadable. They are 6 inches, sometimes two columns, so you can read it easily. So should be your code. I'm not going to go scrolling (or moving my eyes) back and forth trying to read it.

Are you coding in columns ?

I don't code on a book, I code on a computer, any screen can easily contains 130 characters on a line and still being perfectly readable (on  my 13 inches and with my glasses).

Anyway that's all a matter of taste, personally I always find your code unreadable, being so compact.

Fortunately, this does not stop me from learning. No offense.

```enum eMonth
{
JANUARY=1,FEBRUARY,MARCH,APRIL,MAY,JUNE,JULY,AUGUST,SEPTEMBER,OCTOBER,NOVEMBER,DECEMBER
};

int DaysOfMonth(datetime when)
{
// Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
static int     dpm[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
eMonth         mo    = TimeMonth(when);
//---
return(dpm[mo - JANUARY] + (mo != FEBRUARY ? 0 : (int)IsLeapYear(when) ));
}

bool IsLeapYear(dateime when)
{
int year=TimeYear(when);
//---
return(year%4==0 && (year%100!=0 || year%400==0));
}
:
if(DaysOfMonth(when)-TimeDay(when)>n)
```
16105

angevoyageur:

Are you coding in columns?

I don't code on a book, I code on a computer, any screen can easily contains 130 characters on a line and still being perfectly readable (on  my 13 inches and with my glasses).

Anyway that's all a matter of taste, personally I always find your code unreadable, being so compact.

Fortunately, this does not stop me from learning. No offence.

 Yes ```int      pips2points;                  // slippage  3 pips  3=points 30=points double   pips2dbl;                     // Stoploss 15 pips  0.0015   0.00150 int      digits_pips;                  // DoubleToStr(dbl/pips2dbl, digits_pips) ``` Your eMonth is only 102 characters wide, if you add proper English spacing yet this post is already becoming unreadable (depending on browser/font size.)Also, since we must adapt to non-English (ur) and English (Correct brackets/bracers) I just extend that to sight impaired as well. ```   JANUARY=1, FEBRUARY, MARCH, APRIL, MAY, JUNE, JULY, AUGUST, SEPTEMBER, OCTOBER, NOVEMBER, DECEMBER ``` I find the current formatting looses paragraph information that white space should convey. ```void OnFirstTick(){     if(Digits % 2 == 1){   // DE30=1/JPY=3/EURUSD=5 forum.mql4.com/43064#515262             pips2dbl = Point*10;    pips2points = 10;    digits_pips = 1;    } else { pips2dbl = Point;       pips2points =  1;    digits_pips = 0;     }    // OrderSend(... Slippage_Pips * pips2points, Bid - StopLossPips * pips2dbl //---- These are adjusted for 5 digit brokers.                                                                                   mi_minlot   = MI(MODE_MINLOT); mi_minlot = MI(MODE_MINLOT); mi_maxlot = MI(MODE_MAXLOT); mi_lotstep = MI(MODE_LOTSTEP);                                                                               lotDigits = 0; double lotStep = mi_lotstep; while(lotStep - int(lotStep) > 1.E-8){ ++lotDights; lotStep *= 10.0; }                                                                               for(eTimeScale ts=TS_FIRST; ts < TS_COUNT; ++ts) if(IsTsOk(ts) ) DownloadHistory(ts); ``` Never stop learning. No offense taken.
Moderator
33504

WHRoeder:
 No offense taken.

Fixed. Thank you