NexusFi: Find Your Edge


Home Menu

 





Question about programming for multiple data sets


Discussion in EasyLanguage Programming

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




 
Search this Thread
  #1 (permalink)
Donovan2580
Port St. Lucie, FL
 
Posts: 36 since Jul 2016
Thanks Given: 22
Thanks Received: 37

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,

Donovan









______________________________________________




//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);

hh=h>h[1];
ll=l<l[1];
lh=h<h[1];
hl=l>l[1];
ClsDwn=c<o;
ClsUp=c>o;

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
Begin

OldRzstnce = NewRzstnce;

If Peak6 and NoPriorPk then
NewRzstnce = tl_new(d[1], t[1], H, d, t, H)
Else
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
Begin
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);
End;
End;

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

If Bttm6 and NoPriorBttm then
NewSpprt = tl_new(d[1], t[1], L, d, t, L)
Else
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
Begin
NewSpprtBegDate = TL_GetBeginDate(NewSpprt);
NewSpprtBegTime = TL_GetBeginTime(NewSpprt);
OldSprtBegPrice = TL_GetBeginVal(OldSupport);
Value9 = TL_SetExtRight(OldSupport, False);
Value10 = TL_SetEnd(OldSupport, NewSpprtBegDate, NewSpprtBegTime, OldSprtBegPrice);
End;

End;

{-- Extends the old Resistance trendline if a new peak signal fires ---}
If Peak and NoPriorPk and H <= CrrntHi[1] Then
Begin
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
Begin
NewRzstnceExtBegDate = TL_GetBeginDate(NewRzstnceExt);
NewRzstnceExtBegTime = TL_GetBeginTime(NewRzstnceExt);
OldHiExtBegPrice = TL_GetBeginVal(OldRzstnceExt);
Value14 = TL_SetExtRight(OldRzstnceExt, False);
Value15 = TL_SetEnd(OldRzstnceExt, NewRzstnceExtBegDate, NewRzstnceExtBegTime, OldHiExtBegPrice);
End;

End;

{-- Extends the old support line if a new bttm signal fires ---}
If Bttm and NoPriorBttm and L >= CrrntLw[1] Then
Begin
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
Begin
NewLowExtBegDate = TL_GetBeginDate(NewSupportExt);
NewLowExtBegTime = TL_GetBeginTime(NewSupportExt);
OldBegPrice2 = TL_GetBeginVal(OldExtSpprt);
Value19 = TL_SetExtRight(OldExtSpprt, False);
Value20 = TL_SetEnd(OldExtSpprt, NewLowExtBegDate, NewLowExtBegTime, OldBegPrice2);
End;

End;


Reply With Quote

Can you help answer these questions
from other members on NexusFi?
Trump Media to sell instant access to market-moving soci …
Traders Hideout
Datafeed for Atas
Platforms and Indicators
EA
Platforms and Indicators
requesting .nrd replay files from 2026 spy and qqq
The Elite Circle
My Rant with AMP Futures
Trading Reviews and Vendors
 
Best Threads (Most Thanked)
in the last 7 days on NexusFi
Mes vs MNQ
6 thanks
NexusFi site changelog and issues/problem reporting
5 thanks
BERN ALGOS algo trading journal
3 thanks
Johnnys Journal
2 thanks
TopStep Trader disappointment
2 thanks
  #3 (permalink)
 ABCTG   is a Vendor
 
Posts: 2,448 since Apr 2013
Thanks Given: 494
Thanks Received: 1,643


Donovan,

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


Regards,

ABCTG


Follow me on X Reply With Quote
Thanked by:
  #4 (permalink)
Donovan2580
Port St. Lucie, FL
 
Posts: 36 since Jul 2016
Thanks Given: 22
Thanks Received: 37

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,

Donovan


Reply With Quote
Thanked by:
  #5 (permalink)
 ABCTG   is a Vendor
 
Posts: 2,448 since Apr 2013
Thanks Given: 494
Thanks Received: 1,643

Donovan,

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.
https://uploads.tradestation.com:443/uploads/EasyLanguage-Essentials.pdf

Regards,

ABCTG


Follow me on X Reply With Quote
Thanked by:
  #6 (permalink)
Donovan2580
Port St. Lucie, FL
 
Posts: 36 since Jul 2016
Thanks Given: 22
Thanks Received: 37

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


Reply With Quote




Last Updated on June 19, 2019


© 2026 NexusFi®, s.a., All Rights Reserved.
Av Ricardo J. Alfaro, Century Tower, Panama City, Panama, Ph: +507 833-9432 (Panama and Intl), +1 888-312-3001 (USA and Canada)
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.
About Us - Contact Us - Site Rules, Acceptable Use, and Terms and Conditions - Downloads - Top
no new posts