Can somebody clean up this code? - futures io
futures io futures trading



Can somebody clean up this code?


Discussion in EasyLanguage Programming

Updated
      Top Posters
    1. looks_one olobay with 4 posts (0 thanks)
    2. looks_two StratOpt with 4 posts (0 thanks)
    3. looks_3 Quick Summary with 1 posts (0 thanks)
    4. looks_4 Big Mike with 1 posts (0 thanks)
    1. trending_up 2,056 views
    2. thumb_up 1 thanks given
    3. group 2 followers
    1. forum 10 posts
    2. attach_file 2 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
 

Can somebody clean up this code?

(login for full post details)
  #1 (permalink)
Montreal
 
Experience: Intermediate
Platform: MultiCharts
Broker: IB Canada/Rithmic
Trading: CL
 
Posts: 343 since Jul 2011
Thanks: 372 given, 481 received

Hi,

This code works but it is very sloppy. Can some EasyLanguage genius polish this up and code it properly? Right now it only plots when the end time has come. Also it's super slow when plot TodayOnly is false. It's supposed to look like this:




Thanks.

 
Code
Inputs: StartTime(0830), 
	 EndTime(0915), 
	 yHigh(93.09), 
	 yLow(90.96), 
	 yClose(92.96),
	 A_Val(.08),
	 C_Val(.13),
	 yHighLow_Color(darkgray),
	 yHighLow_Style(3),
	 yHighLow_LineSize(2),
	 yClose_Color(darkred),
	 yCLose_Style(3),
	 yClose_LineSize(2),
	 IB_Color(Red), 
	 IB_Style(2),  
	 IB_LineSize(0),
	 A_Color(Red), 
	 A_Style(2),  
	 A_LineSize(0),
	 C_Color(Cyan), 
	 C_Style(3),  
	 C_LineSize(1),
	 PP_Color(yellow), 
	 PP_Style(2),  
	 PP_LineSize(1),
	 Font_Name("Arial"),
	 Font_Size(9),
	 Text_Offset(60),
	 TodayOnly(True);

vars:  DPP(0), PV(0), PVR(0),
	HighDay(0), 
	LowDay(0),
	RangeToday(0), 
	LineId1(-1), 
	LineId2(-1), 
	LineId3(-1), 
	LineId4(-1), 
	LineId5(-1), 
	LineId6(-1), 
	LineId7(-1), 
	LineId8(-1), 
	LineId9(-1), 
	LineId10(-1),
	LineId11(-1), 
	LineId12(-1), 
	ID1(-1), 
	ID2(-1), 
	ID3(-1), 
	ID4(-1), 
	ID5(-1), 
	ID6(-1), 
	ID7(-1), 
	ID8(-1), 
	ID9(-1), 
	ID10(-1),
	ID11(-1),
	ID12(-1),
	ID1Text(-1),
	ID2Text(-1),
	ID3Text(-1),
	ID4Text(-1),
	ID5Text(-1),
	ID6Text(-1),
	ID7Text(-1),
	ID8Text(-1),
	ID9Text(-1),
	ID10Text(-1),
	ID11Text(-1),
	ID12Text(-1);
	
If Date <> Date[1] Then Begin   	// Initialize vars at max of ranges 
	HighDay = 0;
	LowDay = 99999;
End; 
 
If Time >= StartTime and Time <= EndTime Then Begin 
	// Get the high and low from the start time to end time 
	If H > HighDay Then HighDay = H; 
	If L < LowDay Then LowDay = L; 
End; 
 
If Time >= EndTime Then Begin 
	RangeToday = HighDay - LowDay;
	
	// Draw the OR High line
	If TodayOnly and LineId1 <> -1 and LineId1 <> ID1 Then TL_Delete(LineId1); 
	If TodayOnly and LineId1 <> -1 and LineId1 <> ID1 Then Text_Delete(LineId1); 
	If TodayOnly then LineId1 = ID1;
	ID1 = TL_New(Date, StartTime, HighDay, Date, Time, HighDay); 
	//If TodayOnly then Value1 = TL_SetExtRight(ID1, True); 	 
	TL_SetEnd(ID1, Date, Time + Text_Offset, HighDay); 
	TL_SetColor(ID1, IB_Color);
	TL_SetStyle(ID1, IB_Style); 
	TL_SetSize(ID1, IB_LineSize); 
	ID1Text = Text_New(Date, Time + Text_Offset, HighDay, "OR  High"); 
	Text_SetStyle(ID1Text, 0, 1);	
	Text_SetColor(ID1Text, IB_Color); 
	Text_SetFontName(ID1Text, Font_Name); 
	Text_SetSize(ID1Text, Font_Size);
	Text_SetLocation(ID1Text, Date, Time + Text_Offset, HighDay);
 
	// Draw the OR Low Line
	If TodayOnly and LineId2 <> -1 and LineId2 <> ID2 Then TL_Delete(LineId2);
	If TodayOnly and LineId2 <> -1 and LineId2 <> ID2 Then Text_Delete(LineId2); 
	If TodayOnly Then LineId2 = Id2; 
	ID2 = TL_New(Date, StartTime, LowDay, Date, Time, LowDay);
	//If TodayOnly then Value1 = TL_SetExtRight(ID2, True); 
	TL_SetEnd(ID2, Date, Time + Text_Offset, LowDay);
	TL_SetColor(ID2, IB_Color); 
	TL_SetStyle(ID2, IB_Style); 
	TL_SetSize(ID2, IB_LineSize); 
	ID2Text = Text_New(Date, Time + Text_Offset, LowDay, "OR  Low");
	Text_SetStyle(ID2Text, 0, 1);	
	Text_SetColor(ID2Text, IB_Color); 
	Text_SetFontName(ID2Text, Font_Name);
	Text_SetSize(ID2Text, Font_Size);
	Text_SetLocation(ID2Text, Date, Time + Text_Offset, LowDay);	
	
	//Draw A Up Line
	If TodayOnly and LineId3 <> -1 and LineId3 <> ID3 Then TL_Delete(LineId3); 
	If TodayOnly and LineId3 <> -1 and LineId3 <> ID3 Then Text_Delete(LineId3);
	If TodayOnly then LineId3 = ID3;
	ID3 = TL_New(Date, StartTime, HighDay + A_Val, Date, Time, HighDay + A_Val); 
	//If TodayOnly then Value1 = TL_SetExtRight(ID3, True); 	 
	TL_SetEnd(ID3, Date, Time + Text_Offset, HighDay + A_Val);
	TL_SetColor(ID3, A_Color); 
	TL_SetStyle(ID3, A_Style); 
	TL_SetSize(ID3, A_LineSize);
	ID3Text = Text_New(Date, Time + Text_Offset, HighDay + A_Val, "A  Up");
	Text_SetStyle(ID3Text, 0, 1);	
	Text_SetColor(ID3Text, IB_Color); 
	Text_SetFontName(ID3Text, Font_Name);
	Text_SetSize(ID3Text, Font_Size);
	Text_SetLocation(ID3Text, Date, Time + Text_Offset, HighDay + A_Val); 
	
	// Draw A Down Line
	If TodayOnly and LineId4 <> -1 and LineId4 <> ID4 Then TL_Delete(LineId4); 
	If TodayOnly and LineId4 <> -1 and LineId4 <> ID4 Then Text_Delete(LineId4); 
	If TodayOnly Then LineId4 = Id4; 
	ID4 = TL_New(Date, StartTime, LowDay - A_Val, Date, Time, LowDay - A_Val); 
	//If TodayOnly then Value1 = TL_SetExtRight(ID4, True); 
	TL_SetEnd(ID4, Date, Time + Text_Offset, LowDay - A_Val);
	TL_SetColor(ID4, A_Color); 
	TL_SetStyle(ID4, A_Style); 
	TL_SetSize(ID4, A_LineSize); 
	ID4Text = Text_New(Date, Time + Text_Offset, LowDay - A_Val, "A  Down");
	Text_SetStyle(ID4Text, 0, 1);	
	Text_SetColor(ID4Text, IB_Color);
	Text_SetFontName(ID4Text, Font_Name); 
	Text_SetSize(ID4Text, Font_Size);
	Text_SetLocation(ID4Text, Date, Time + Text_Offset, LowDay - A_Val);
	
	//Draw C Up Line
	If TodayOnly and LineId5 <> -1 and LineId5 <> ID5 Then TL_Delete(LineId5); 
	If TodayOnly and LineId5 <> -1 and LineId5 <> ID5 Then Text_Delete(LineId5);
	If TodayOnly then LineId5 = ID5;
	ID5 = TL_New(Date, StartTime, HighDay + C_Val, Date, Time, HighDay + C_Val); 
	//If TodayOnly then Value1 = TL_SetExtRight(ID5, True); 	 
	TL_SetEnd(ID5, Date, Time + Text_Offset, HighDay + C_Val);
	TL_SetColor(ID5, C_Color); 
	TL_SetStyle(ID5, C_Style); 
	TL_SetSize(ID5, C_LineSize);
	ID5Text = Text_New(Date, Time + Text_Offset, HighDay + C_Val, "C  Up");
	Text_SetStyle(ID5Text, 0, 1);	
	Text_SetColor(ID5Text, C_Color); 
	Text_SetFontName(ID5Text, Font_Name);	
	Text_SetSize(ID5Text, Font_Size);
	Text_SetLocation(ID5Text, Date, Time + Text_Offset, HighDay + C_Val);

	// Draw C Down Line
	If TodayOnly and LineId6 <> -1 and LineId6 <> ID6 Then TL_Delete(LineId6);
	If TodayOnly and LineId6 <> -1 and LineId6 <> ID6 Then Text_Delete(LineId6);  
	If TodayOnly Then LineId6 = Id6; 
	ID6 = TL_New(Date, StartTime, LowDay - C_Val, Date, Time, LowDay - C_Val); 
	//If TodayOnly then Value1 = TL_SetExtRight(ID6, True); 
	TL_SetEnd(ID6, Date, Time + Text_Offset, LowDay - C_Val);
	TL_SetColor(ID6, C_Color); 
	TL_SetStyle(ID6, C_Style); 
	TL_SetSize(ID6, C_LineSize);
	ID6Text = Text_New(Date, Time + Text_Offset, LowDay - C_Val, "C  Down");
	Text_SetStyle(ID6Text, 0, 1);	
	Text_SetColor(ID6Text, C_Color); 
	Text_SetFontName(ID6Text, Font_Name);
	Text_SetSize(ID6Text, Font_Size);
	Text_SetLocation(ID6Text, Date, Time + Text_Offset, LowDay - C_Val);	

DPP = (yHigh + yLow + yClose ) /3; //Daily Pivot Point

	//Draw Daily Pivot Point Line
	If TodayOnly and LineId7 <> -1 and LineId7 <> ID7 Then TL_Delete(LineId7); 
	If TodayOnly and LineId7 <> -1 and LineId7 <> ID7 Then Text_Delete(LineId7); 
	If TodayOnly then LineId7 = ID7; 
	ID7 = TL_New(Date, StartTime, DPP, Date, Time, DPP); 
	//If TodayOnly then Value1 = TL_SetExtRight(ID7, True); 	 
	TL_SetEnd(ID7, Date, Time + Text_Offset, DPP);
	TL_SetColor(ID7, PP_Color); 
	TL_SetStyle(ID7, PP_Style); 
	TL_SetSize(ID7, PP_LineSize);
	ID7Text = Text_New(Date, Time + Text_Offset, DPP, "DPP");
	Text_SetStyle(ID7Text, 0, 1);	
	Text_SetColor(ID7Text, PP_Color); 
	Text_SetFontName(ID7Text, Font_Name);
	Text_SetSize(ID7Text, Font_Size);
	Text_SetLocation(ID7Text, Date, Time + Text_Offset, DPP);

PV = (yHigh + yLow) /2;
PVR = (DPP - PV); //Pivot Range Value

	//Draw Pivot Range High Line
	If TodayOnly and LineId8 <> -1 and LineId8 <> ID8 Then TL_Delete(LineId8);
	If TodayOnly and LineId8 <> -1 and LineId8 <> ID8 Then Text_Delete(LineId8); 
	If TodayOnly then LineId8 = ID8; 
	ID8 = TL_New(Date, StartTime, DPP + PVR, Date, Time, DPP + PVR); 
	//If TodayOnly then Value1 = TL_SetExtRight(ID8, True); 	 
	TL_SetEnd(ID8, Date, Time + Text_Offset, DPP + PVR);
	TL_SetColor(ID8, PP_Color); 
	TL_SetStyle(ID8, PP_Style); 
	TL_SetSize(ID8, PP_LineSize);
	ID8Text= Text_New(Date, Time + Text_Offset, DPP + PVR, "PVR  High");
	Text_SetStyle(ID8Text, 0, 1);	
	Text_SetColor(ID8Text, PP_Color); 
	Text_SetFontName(ID8Text, Font_Name);
	Text_SetSize(ID8Text, Font_Size);
	Text_SetLocation(ID8Text, Date, Time + Text_Offset, DPP + PVR);
	
	//Draw Pivot Range Low Line
	If TodayOnly and LineId9 <> -1 and LineId9 <> ID9 Then TL_Delete(LineId9);
	If TodayOnly and LineId9 <> -1 and LineId9 <> ID9 Then Text_Delete(LineId9); 
	If TodayOnly then LineId9 = ID9; 
	ID9 = TL_New(Date, StartTime, DPP - PVR, Date, Time, DPP - PVR); 
	//If TodayOnly then Value1 = TL_SetExtRight(ID9, True); 	 
	TL_SetEnd(ID9, Date, Time + Text_Offset, DPP - PVR);
	TL_SetColor(ID9, PP_Color); 
	TL_SetStyle(ID9, PP_Style); 
	TL_SetSize(ID9, PP_LineSize);
	ID9Text= Text_New(Date, Time + Text_Offset, DPP - PVR, "PVR  Low");
	Text_SetStyle(ID9Text, 0, 1);	
	Text_SetColor(ID9Text, PP_Color); 
	Text_SetFontName(ID9Text, Font_Name);
	Text_SetSize(ID9Text, Font_Size);
	Text_SetLocation(ID9Text, Date, Time + Text_Offset, DPP - PVR);
	
	//Draw yHigh Line
	If TodayOnly and LineId10 <> -1 and LineId10 <> ID10 Then TL_Delete(LineId10); 
	If TodayOnly and LineId10 <> -1 and LineId10 <> ID10 Then Text_Delete(LineId10); 
	If TodayOnly then LineId10 = ID10; 
	ID10 = TL_New(Date, StartTime, yHigh, Date, Time, yHigh); 
	//If TodayOnly then Value1 = TL_SetExtRight(ID10, True); 	 
	TL_SetEnd(ID10, Date, Time + Text_Offset, yHigh);
	TL_SetColor(ID10, yHighLow_Color); 
	TL_SetStyle(ID10, yHighLow_Style); 
	TL_SetSize(ID10, yHighLow_LineSize);
	ID10Text= Text_New(Date, Time + Text_Offset, yHigh, "Y  High");
	Text_SetStyle(ID10Text, 0, 1);	
	Text_SetColor(ID10Text, yHighLow_Color);
	Text_SetFontName(ID10Text, Font_Name);
	Text_SetSize(ID10Text, Font_Size);
	Text_SetLocation(ID10Text, Date, Time + Text_Offset, yHigh);
	
	//Draw yLow Line
	If TodayOnly and LineId11 <> -1 and LineId11 <> ID11 Then TL_Delete(LineId11); 
	If TodayOnly and LineId11 <> -1 and LineId11 <> ID11 Then Text_Delete(LineId11); 
	If TodayOnly then LineId11 = ID11; 
	ID11 = TL_New(Date, StartTime, yLow, Date, Time, yLow); 
	//If TodayOnly then Value1 = TL_SetExtRight(ID11, True); 	 
	TL_SetEnd(ID11, Date, Time + Text_Offset, yLow);
	TL_SetColor(ID11, yHighLow_Color); 
	TL_SetStyle(ID11, yHighLow_Style); 
	TL_SetSize(ID11, yHighLow_LineSize);
	ID11Text= Text_New(Date, Time + Text_Offset, yLow, "Y  Low");
	Text_SetStyle(ID11Text, 0, 1);	
	Text_SetColor(ID11Text, yHighLow_Color);
	Text_SetFontName(ID11Text, Font_Name);
	Text_SetSize(ID11Text, Font_Size);
	Text_SetLocation(ID11Text, Date, Time + Text_Offset, yLow);
	
	//Draw yClose Line
	If TodayOnly and LineId12 <> -1 and LineId12 <> ID12 Then TL_Delete(LineId12); 
	If TodayOnly and LineId12 <> -1 and LineId12 <> ID12 Then Text_Delete(LineId12); 
	If TodayOnly then LineId12 = ID12;
	ID12 = TL_New(Date, StartTime, yClose, Date, Time, yClose); 
	//If TodayOnly then Value1 = TL_SetExtRight(ID12, True); 	 
	TL_SetEnd(ID12, Date, Time + Text_Offset, yClose);
	TL_SetColor(ID12, yClose_Color); 
	TL_SetStyle(ID12, yClose_Style); 
	TL_SetSize(ID12, yClose_LineSize);
	ID12Text= Text_New(Date, Time + Text_Offset, yClose, "Y  Close");
	Text_SetStyle(ID12Text, 0, 1);	
	Text_SetColor(ID12Text, yClose_Color);
	Text_SetFontName(ID12Text, Font_Name);
	Text_SetSize(ID12Text, Font_Size);
	Text_SetLocation(ID12Text, Date, Time + Text_Offset, yClose);

end;

Started this thread Reply With Quote

Can you help answer these questions
from other members on futures io?
Automatic pattern research with NT
Elite Algorithmic NinjaTrader Trading
Indicators for pair trading MES and M2K
Platforms and Indicators
Work with historical tcks data on MUltichart NET PowerLa …
MultiCharts
If ES tracks SPX, why do support/resistance, Level 2, vo …
Emini and Emicro Index
Reading A set of Trading Signals
EasyLanguage Programming
 
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)
AR Kansas
 
 
Posts: 13 since Dec 2013
Thanks: 0 given, 7 received


Text_SetFontName ??
Text_SetSize ??

These are not normal TS Reserved words up through build 25 of 9.1

Also, it is super helpful to programmers to have a project outline of what the indicator is required to do.

Reply With Quote
 
(login for full post details)
  #4 (permalink)
Montreal
 
Experience: Intermediate
Platform: MultiCharts
Broker: IB Canada/Rithmic
Trading: CL
 
Posts: 343 since Jul 2011
Thanks: 372 given, 481 received

It's for MultiCharts instead of Tradestation. The indicator is supposed to plot the opening range for a desired span of time which can be input in the input section of the indicator.

Then it's supposed to plot two more lines at a desired value above and below the opening range, also indicated in the input section of the indicator.

Then it's supposed to plot another 2 lines at a different desired value above and below the opening range, again indicated in the input section.

Finally, using the previous days high, low and close, it's supposed to plot 3 pivot lines, the daily pivot, the pivot high and the pivot low.

The other inputs are just for formatting of the lines and text. The indicator basically plots Mark Fisher's ACD method.

Started this thread Reply With Quote
 
(login for full post details)
  #5 (permalink)
AR Kansas
 
 
Posts: 13 since Dec 2013
Thanks: 0 given, 7 received

I am new here so not sure why it is that people post into the TradeStation forum for code for MultiCharts when there is a MultiCharts section ?

I know that code can port, but unless a person has both TradeStation and MultiCharts, which I do, then they would be of limited usage to only code that can port and then the programmer wouldn't be able to check and verify the results of their code sets

Note to those who use TradeStation:
You can change font sizes and types by using the new Font class within TradeStation

Reply With Quote
 
(login for full post details)
  #6 (permalink)
Montreal
 
Experience: Intermediate
Platform: MultiCharts
Broker: IB Canada/Rithmic
Trading: CL
 
Posts: 343 since Jul 2011
Thanks: 372 given, 481 received

MultiCharts users post here because when you click on the link with the arrow, you end up here. I only have MC.


Started this thread Reply With Quote
 
(login for full post details)
  #7 (permalink)
AR Kansas
 
 
Posts: 13 since Dec 2013
Thanks: 0 given, 7 received

Ok so the forum pushes you to here as a hyperlink. Not sure why that would be other than the code porting ability, but it is what it is. I had another person requesting help and I provided some of my valuable time to write code that in the end the person couldn't use because they were actually needing it for MultiCharts. Outside of being of some help to some other person unassociated with the topic who is actually needing similar solution in EasyLanguage then it seems to be an inapproriate use of my time to provide any help at all here.

Reply With Quote
 
(login for full post details)
  #8 (permalink)
Site Administrator
Swing Trader
Data Scientist & DevOps
Manta, Ecuador
 
Experience: Advanced
Platform: My own custom solution
Trading: Emini Futures
 
Big Mike's Avatar
 
Posts: 49,785 since Jun 2009
Thanks: 32,313 given, 97,574 received


StratOpt View Post
Ok so the forum pushes you to here as a hyperlink. Not sure why that would be other than the code porting ability, but it is what it is. I had another person requesting help and I provided some of my valuable time to write code that in the end the person couldn't use because they were actually needing it for MultiCharts. Outside of being of some help to some other person unassociated with the topic who is actually needing similar solution in EasyLanguage then it seems to be an inapproriate use of my time to provide any help at all here.

Because we don't need two EasyLanguage forums. EasyLanguage is TradeStation's so it falls under their name on the forum.

Look at the persons profile which is to the left of their post. It will clearly say what platform they are using.

Mike

We're here to help -- just ask

For the best trading education, watch our webinars
Searching for trading reviews? Review this list

Follow us on Twitter, YouTube, and Facebook

Support our community as an Elite Member:
https://futures.io/elite/
Follow me on Twitter Visit my futures io Trade Journal Reply With Quote
 
(login for full post details)
  #9 (permalink)
AR Kansas
 
 
Posts: 13 since Dec 2013
Thanks: 0 given, 7 received

I suppose that I don't consider MultiCharts language as EasyLanguage is the confusion. I treat the two platforms as separate from one another.

Reply With Quote
 
(login for full post details)
  #10 (permalink)
Montreal
 
Experience: Intermediate
Platform: MultiCharts
Broker: IB Canada/Rithmic
Trading: CL
 
Posts: 343 since Jul 2011
Thanks: 372 given, 481 received


Can anybody help?

Started this thread Reply With Quote
 
(login for full post details)
  #11 (permalink)
Colorado
 
Experience: Advanced
Platform: MultiCharts
Broker: IB & Iqfeed
Trading: ES , CL
 
sptrader's Avatar
 
Posts: 543 since Apr 2010
Thanks: 1,094 given, 696 received


olobay View Post
Can anybody help?

********************************************************************
I think this will give you a start anyway, nice clean efficient code for the opening range.. (or search the downloads section for "opening Range"..)


https://futures.io/local_links.php?catid=9&sort=d&filter=o&pp=1000

Reply With Quote
The following user says Thank You to sptrader for this post:


futures io Trading Community Platforms and Indicators EasyLanguage Programming > Can somebody clean up this code?


Last Updated on January 11, 2014


Upcoming Webinars and Events
 

NinjaTrader Indicator Challenge!

Ongoing
 

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

March
 

Importance of Finding Your Own Way w/Adam Grimes

Elite only
 

Journal Challenge w/Jigsaw

April
     



Copyright © 2021 by futures io, s.a., Av Ricardo J. Alfaro, Century Tower, Panama, +507 833-9432, info@futures.io
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