Question about programming for multiple data sets - futures io
futures io futures trading

Question about programming for multiple data sets

Discussion in EasyLanguage Programming

    1. trending_up 930 views
    2. thumb_up 3 thanks given
    3. group 3 followers
    1. forum 5 posts
    2. attach_file 0 attachments

Welcome to futures io: the largest futures trading community on the planet, with well over 125,000 members
  • Genuine reviews from real traders, not fake reviews from stealth vendors
  • Quality education from leading professional traders
  • We are a friendly, helpful, and positive community
  • We do not tolerate rude behavior, trolling, or vendors advertising in posts
  • We are here to help, just let us know what you need
You'll need to register in order to view the content of the threads and start contributing to our community.  It's free and simple.

-- Big Mike, Site Administrator

(If you already have an account, login at the top of the page)

Search this Thread

Question about programming for multiple data sets

(login for full post details)
  #1 (permalink)
Port St. Lucie, FL
Posts: 30 since Jul 2016
Thanks: 21 given, 17 received

Hello everyone,

I am just getting into programming for multiple data sets. My question is this. When I have a rather complicated indicator to calculate with 2 data sets; Is there a way I can copy my original code (For one data set) and paste it in below, and create a command for the newly pasted code to refer to data 2 only?

I have figured out have to program with 2 data sets for simple things like a moving average, but there must be an easier way to do it for a indicator with lengthy code like this.

Any help would be greatly appreciated.

See the attached code for an example. I would like to plot the results from data sets 1 and 2 on my main price chart.

Thanks in advance for your time and have a great day,



//hh=higher high, ll=lower low
var: hh(False),ll(False),lh(False),hl(False);
var: ClsDwn(False),ClsUp(False);
var: Peak1(False),Peak2(False),Peak3(False),Peak4(False),Peak5(False),Peak6(False);
var: Bttm1(False),Bttm2(False),Bttm3(False),Bttm4(False),Bttm5(False),Bttm6(False);
var: Peak(False),Bttm(False);
var: CrrntHi(H),CrrntLw(L),PriorPeakPrice(H),PriorBttmPrice(L);
var: NoPriorPk(False),NoPriorBttm(False);
var: HL_Price(False),LH_Price(False);
var: NewRzstnceExt(-1), OldRzstnceExt(-1), OldSupport(-1), OldExtSpprt(-1);
var: OldRzstnceBegPrice(h), OldSprtBegPrice(L), OldHiExtBegPrice(H), OldBegPrice2(H);
var: NewRzstnceBegTime(t), NewRzstnceExtBegTime(t), NewLowExtBegTime(t), NewSpprtBegTime(t);
var: NewRzstnceBegDate(D), NewSpprtBegDate(D), NewRzstnceExtBegDate(D), NewLowExtBegDate(D);
var: NewRzstnce(-1), OldRzstnce(-1), NewSpprt(-1);
var: NewSupportExt(-1);


Peak1=ClsUp[1] and ClsDwn;
Peak2=lh[1] = False and ClsDwn;
Peak3=lh[1] = False and lh;
Peak4=ClsUp[1] and lh;
Peak5=hh[1] and hh = False;
Peak6=hh and ClsUp = False;

Bttm1=ClsDwn[1] and ClsUp;
Bttm2=hl[1] = False and ClsUp;
Bttm3=hl[1] = False and hl;
Bttm4=ClsDwn[1] and hl;
Bttm5=ll[1] and ll = False;
Bttm6=ll and ClsDwn = False;

Peak=(Peak1 or Peak2 or Peak3 or Peak4 or Peak5);
Bttm=(Bttm1 or Bttm2 or Bttm3 or Bttm4 or Bttm5);

NoPriorPk=Peak[1] = false;
NoPriorBttm=Bttm[1] = false;

if Peak6 and NoPriorPk then
CrrntHi = H
else If Peak and NoPriorPk then
CrrntHi = H[1];

if Bttm6 and NoPriorBttm then
CrrntLw=L else If Bttm and NoPriorBttm then
CrrntLw = L[1];

plot1(CrrntHi, "Current High"); // Set to points so that the price of the line shows up on the axis
plot2(CrrntLw, "Current Low");

if CrrntHi <> CrrntHi[1] then PriorPeakPrice = CrrntHi[1];
if CrrntLw <> CrrntLw[1] then PriorBttmPrice = CrrntLw[1];

{-- Starts a new Resistance Line, then ends the old Resistance Trend line if a new peak signal fires ---}
If Peak and NoPriorPk Then

OldRzstnce = NewRzstnce;

If Peak6 and NoPriorPk then
NewRzstnce = tl_new(d[1], t[1], H, d, t, H)
NewRzstnce = tl_new(d[1], t[1], H[1], d, t, H[1]);

Value1 = TL_SetExtRight(NewRzstnce, True);
Value2 = TL_SetSize(NewRzstnce, 2);
Value3 = TL_SetColor(NewRzstnce, Blue);

If OldRzstnce <> -1 Then
NewRzstnceBegDate = TL_GetBeginDate(NewRzstnce);
NewRzstnceBegTime = TL_GetBeginTime(NewRzstnce);
OldRzstnceBegPrice = TL_GetBeginVal(OldRzstnce);
Value4 = TL_SetExtRight(OldRzstnce, False); //Stop extending the original line to the right.
Value5 = TL_SetEnd(OldRzstnce, NewRzstnceBegDate, NewRzstnceBegTime, OldRzstnceBegPrice);

{-- Starts a new trendline if a new bottom signal fires ---}
If Bttm and NoPriorBttm Then
OldSupport = NewSpprt;

If Bttm6 and NoPriorBttm then
NewSpprt = tl_new(d[1], t[1], L, d, t, L)
NewSpprt = tl_new(d[1], t[1], L[1], d, t, L[1]);

Value6 = TL_SetExtRight(NewSpprt, True);
Value7 = TL_SetSize(NewSpprt, 2);
Value8 = TL_SetColor(NewSpprt, magenta);

If OldSupport <> -1 Then
NewSpprtBegDate = TL_GetBeginDate(NewSpprt);
NewSpprtBegTime = TL_GetBeginTime(NewSpprt);
OldSprtBegPrice = TL_GetBeginVal(OldSupport);
Value9 = TL_SetExtRight(OldSupport, False);
Value10 = TL_SetEnd(OldSupport, NewSpprtBegDate, NewSpprtBegTime, OldSprtBegPrice);


{-- Extends the old Resistance trendline if a new peak signal fires ---}
If Peak and NoPriorPk and H <= CrrntHi[1] Then
OldRzstnceExt = NewRzstnceExt;
NewRzstnceExt = tl_new(d[1], t[1], OldRzstnceBegPrice, d, t, OldRzstnceBegPrice);

Value11 = TL_SetExtRight(NewRzstnceExt, True);
Value12 = TL_SetColor(NewRzstnceExt, Blue);
Value13 = Tl_setstyle(NewRzstnceExt, Tool_Dotted);

If OldRzstnceExt <> -1 Then
NewRzstnceExtBegDate = TL_GetBeginDate(NewRzstnceExt);
NewRzstnceExtBegTime = TL_GetBeginTime(NewRzstnceExt);
OldHiExtBegPrice = TL_GetBeginVal(OldRzstnceExt);
Value14 = TL_SetExtRight(OldRzstnceExt, False);
Value15 = TL_SetEnd(OldRzstnceExt, NewRzstnceExtBegDate, NewRzstnceExtBegTime, OldHiExtBegPrice);


{-- Extends the old support line if a new bttm signal fires ---}
If Bttm and NoPriorBttm and L >= CrrntLw[1] Then
OldExtSpprt = NewSupportExt;
NewSupportExt = tl_new(d[1], t[1], OldSprtBegPrice, d, t, OldSprtBegPrice);

Value16 = TL_SetExtRight(NewSupportExt, True);
Value17 = TL_SetColor(NewSupportExt, Magenta);
Value18 = Tl_setstyle(NewSupportExt, Tool_Dotted);

If OldExtSpprt <> -1 Then
NewLowExtBegDate = TL_GetBeginDate(NewSupportExt);
NewLowExtBegTime = TL_GetBeginTime(NewSupportExt);
OldBegPrice2 = TL_GetBeginVal(OldExtSpprt);
Value19 = TL_SetExtRight(OldExtSpprt, False);
Value20 = TL_SetEnd(OldExtSpprt, NewLowExtBegDate, NewLowExtBegTime, OldBegPrice2);


Reply With Quote

Can you help answer these questions
from other members on futures io?
MACD line not plotting after change of plot order
Help Needed: TOS Options Chain IV & IMPL MOVE Calcul …
Trading Reviews and Vendors
Cross border fund flows / fx correlations
Treasury Notes and Bonds
NT8 indicator to simulate a Funding Evaluation where to …
Best Threads (Most Thanked)
in the last 7 days on futures io
Selling Options on Futures?
109 thanks
Battlestations: Show us your trading desks!
108 thanks
Rank your Futures vs Stocks trading priority
55 thanks
Want your NinjaTrader indicator created, free?
27 thanks
Whats this confusion with margins?
21 thanks
(login for full post details)
  #3 (permalink)
Posts: 2,230 since Apr 2013
Thanks: 409 given, 1,471 received


one approach could be to turn your code into a function and compute the function on different data streams.
You can find examples on or in the official forum:



Follow me on Twitter Reply With Quote
The following user says Thank You to ABCTG for this post:
(login for full post details)
  #4 (permalink)
Port St. Lucie, FL
Posts: 30 since Jul 2016
Thanks: 21 given, 17 received

Hello ABCTG,

Thanks so much for taking the time to respond.

As soon as I read your reply, I knew that was exactly the answer I needed. While I currently do not know how to make a function; after doing some research that is certainly something I can learn (And should learn if I want to be a programmer).

Thanks much for the most succinct reply I have ever gotten in a forum!!

Have a great day,


Reply With Quote
The following user says Thank You to Donovan2580 for this post:
(login for full post details)
  #5 (permalink)
Posts: 2,230 since Apr 2013
Thanks: 409 given, 1,471 received


thank you for your feedback. If you haven't checked the free EasyLanguage Essentials PDF, yet, I would definitely recommend taking a look at it. It will teach you a lot of the basics.



Follow me on Twitter Reply With Quote
The following user says Thank You to ABCTG for this post:
(login for full post details)
  #6 (permalink)
Port St. Lucie, FL
Posts: 30 since Jul 2016
Thanks: 21 given, 17 received

Thanks a bunch - I just downloaded it and will check it out

Reply With Quote

futures io Trading Community Platforms and Indicators EasyLanguage Programming > Question about programming for multiple data sets

Last Updated on June 19, 2019

Upcoming Webinars and Events

NinjaTrader Indicator Challenge!


Battlestations! Show us your trading desk - $1,500 in prizes!


Importance of Finding Your Own Way w/Adam Grimes

Elite only

Journal Challenge w/Jigsaw


Copyright © 2021 by futures io, s.a., Av Ricardo J. Alfaro, Century Tower, Panama, +507 833-9432,
All information is for educational use only and is not investment advice.
There is a substantial risk of loss in trading commodity futures, stocks, options and foreign exchange products. Past performance is not indicative of future results.
no new posts