Pyramania Levels with 24-Hour Session – Free Code

Easing Into EasyLanguage-DayTrade Edition [On SALE Now thru November]

Get Your Copy Now!  On sale now for thru the end of November!

EZ-DT Pyramania is a strategy I introduced in the Day Trade Edition.  The logic is rather simple – pyramid as the market moves through multiple levels during the trading day. – buy, buy, buy, dump or buy, dump, short, short, short, dump.  The distance between the levels is constant.  In the book, I showed an algorithm with a total of 6 levels with 7 edges.

Pyramania of @ES.D

Here the market opens @ 9:30 and the levels are instantly plotted and trades are executed as the market moves through the levels located above the open tick.  Over the weekend, I had a reader ask how he could modify the code to plot the levels on the 24-hour @ES session.  In the day session, I used the change in the date as the trigger for the calculation and plotting of the levels.  Here is the day session version.

inputs:numSegments(6),numPlots(6);

arrays: segmentBounds[](0);

variables: j(0),loopCnt(0),segmentSize(0),avgRng(0);
once
Begin
Array_SetMaxIndex(segmentBounds, numSegments);
end;

if d <> d[1] Then // only works on the @ES.D or any .D session
begin
avgRng = average(range of data2,20);
segmentSize = avgRng/numSegments;
loopCnt = -1*numSegments/2;
for j = 0 to numSegments
begin
segmentBounds[j] = openD(0) + loopCnt * segmentSize;
loopCnt = loopCnt + 1;
end;
end;

//The following time constraint only works when all time stamps
//are less than the end of day time stamp
//This will not work when time = 1800 and endTime = 1700
if t < calcTime(sessionEndTime(0,1),-barInterval) Then
begin
if numPlots >= 1 then plot1(segmentBounds[0],"Level 0");
if numPlots >= 2 then plot2(segmentBounds[1],"Level 1");
if numPlots >= 3 then plot3(segmentBounds[2],"Level 2");
if numPlots >= 4 then plot4(segmentBounds[3],"Level 3");
if numPlots >= 5 then plot5(segmentBounds[4],"Level 4");
if numPlots >= 6 then plot6(segmentBounds[5],"Level 5");
if numPlots >= 7 then plot7(segmentBounds[6],"Level 6");
// plot8(segmentBounds[7],"Level 7");
// plot9(segmentBounds[8],"Level 8");
end;
Works great with @ES.D or any @**.D

I like this code because it exposes you to arrays, loops, and plotting multiple values.  You can fix this by modifying and adding some code.  I used the Trading Around Midnight blog post to get the code I needed to enable plotting around 0:00 hours.  Here is the updated code:

inputs:numSegments(6),numPlots(6);
arrays: segmentBounds[](0);
variables: j(0),loopCnt(0),segmentSize(0),avgRng(0),
startTime(0),endTime(0),endTimeOffset(0);

once
Begin
Array_SetMaxIndex(segmentBounds, numSegments);
end;

startTime = sessionStartTime(0,1);
endTime = sessionEndTime(0,1);
//let TS tell you when the market opens - remember the
//first time stamp is the open time + bar interval
if t = calcTime(sessionStartTime(0,1),barInterval) Then
begin
avgRng = average(range of data2,20);
segmentSize = avgRng/numSegments;
loopCnt = -1*numSegments/2;
for j = 0 to numSegments
begin
segmentBounds[j] = open + loopCnt * segmentSize;
loopCnt = loopCnt + 1;
end;
end;

// if startTime > endTime then you know you are dealing with
// timees that more than likely bridges midnight
// if time is greater then 1700 (end time) then you must
// subtract an offset so it makes sense - endTimeOffset
// play with the math and it will come to you
if startTime > endTime then
begin
endTimeOffset = 0;
if t >= startTime+barInterval and t<= 2359 then
endTimeOffSet = 2400-endTime;
end;
if t-endTimeOffSet < endTime Then
begin
if numPlots >= 1 then plot1(segmentBounds[0],"Level 0");
if numPlots >= 2 then plot2(segmentBounds[1],"Level 1");
if numPlots >= 3 then plot3(segmentBounds[2],"Level 2");
if numPlots >= 4 then plot4(segmentBounds[3],"Level 3");
if numPlots >= 5 then plot5(segmentBounds[4],"Level 4");
if numPlots >= 6 then plot6(segmentBounds[5],"Level 5");
if numPlots >= 7 then plot7(segmentBounds[6],"Level 6");
// plot8(segmentBounds[7],"Level 7");
// plot9(segmentBounds[8],"Level 8");
end;
Modification to plot data around midnight

Here I let TS tell me with the market opens and then use some simple math to make sure I can plot with the time is greater than and less than the end of day time.

Plots from 18:05 through midnight until 17:00 the next day.

Email me if you have the book and want to companion code to the strategy – georgeppruitt@gmail.com