This Code Uses A Loop To Calculate Buy/Sell Levels Based on Current Position

Instead of doing this:

if currentshares = LTT then begin 
 buy("B-20A.5") LTT shares next bar highest(h,20)[BB] + (0.5*N) or higher; 
 buy("B-20A 1") LTT shares next bar highest(h,20)[BB] + (1.0*N) or higher; 
 buy("B-20A1.5") LTT shares next bar highest(h,20)[BB]+ (1.5*N) or higher; 
 end; 
 if currentshares = LTT * 2 then begin 
 buy("B-20B 1") LTT shares next bar highest(h,20)[BB] + (1.0*N) or higher; 
 buy("B-20B1.5") LTT shares next bar highest(h,20)[BB] + (1.5*N) or higher; 
 end; 
 if currentshares = LTT * 3 then 
 buy("B-20C1.5") LTT shares next bar highest(h,20)[BB] + (1.5*N) or higher; 
end;

Just do this:

for iCnt = 0 to 3
begin
	if lastTradeLoser then
	begin
		if mp <> -1 and currentContracts = iCnt * lotSize then
		begin
			buyPrice = hh20 + iCnt * N/2;
		end;		
	end;
end;
if lastTradeLoser then
begin
	if currentContracts < 4 * lotsize then Buy ("Turtle20Buy") lotSize contracts next bar at buyPrice stop;
end;

Instead of having multiple buy orders at different levels -simply change your buy levels using the for-next loop and issue just one order. Only problem is you can only issue one buy order per bar. Whereas the former approach will place multiple orders for the next bar. Usually this will not cause a problem unless your buy/sell levels are very close. The use of the for-next loop is up to one's own programming style. I like the for-next loop.


Discover more from George Pruitt

Subscribe to get the latest posts sent to your email.

Leave a Reply