NexusFi: Find Your Edge


Home Menu

 





Question about programming for multiple data sets


Discussion in EasyLanguage Programming

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




 
Search this Thread

Question about programming for multiple data sets

  #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?
REcommedations for programming help
Sierra Chart
NT7 Indicator Script Troubleshooting - Camarilla Pivots
NinjaTrader
Trade idea based off three indicators.
Traders Hideout
MC PL editor upgrade
MultiCharts
NexusFi Journal Challenge - May 2024
Feedback and Announcements
 
Best Threads (Most Thanked)
in the last 7 days on NexusFi
Spoo-nalysis ES e-mini futures S&P 500
45 thanks
Just another trading journal: PA, Wyckoff & Trends
31 thanks
Tao te Trade: way of the WLD
24 thanks
Bigger Wins or Fewer Losses?
23 thanks
GFIs1 1 DAX trade per day journal
22 thanks
  #3 (permalink)
 ABCTG   is a Vendor
 
Posts: 2,435 since Apr 2013
Thanks Given: 482
Thanks Received: 1,628


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 Twitter 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,435 since Apr 2013
Thanks Given: 482
Thanks Received: 1,628

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/uploads/EasyLanguage-Essentials.pdf

Regards,

ABCTG

Follow me on Twitter 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


© 2024 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 - Privacy Policy - Downloads - Top
no new posts