Fred, The problem you're describing is because the BarsSince array returns Null values before the first True in the array you're testing. If you convert them back to True values, then your statements should work:
Mask = BarsSince(Sell) >= 5 AND BarsSince(Cover) >= 5; Mask = IIf(IsNull(Mask), True, Mask); // Convert Nulls to Trues Buy = Buy AND Mask; Short = Short AND Mask; Now the Mask array will start off with all True values before the first Sell or Cover signal, allowing earlier Buy and Short signals to remain. GP --- In [email protected], Ed Middleton <[EMAIL PROTECTED]> wrote: > > Herman, > > Actually I think you meant to type: > > Buy = Buy AND BarsSince(Sell)>=5 AND BarsSince(Cover) >=5; > > similarily, > > Short = Short AND BarsSince(Sell)>=5 AND BarsSince(Cover) >=5; > > In my head this should only allow a "Buy" (or "Short") 5 bars after the last trade exit. > > Now the problem with this approach is that there cannot be a Sell Or Cover without a trade (A Buy or Short)first being put on by definition. You cannot end a trade without first putting on a trade. In the above, you cannot put on a trade until 5 days after a Sell or Cover. So when you run this code, no trades are initiated. > > If there was a way of initiating the code with a Sell and Cover signal on Bar "0" then I'd assume that on Bar 5 that the conditions in the Buy and Short code at the top would be satisfied. I don't know how to intiate the code so that it starts with a sell and cover signal. > > I've tried: Sell = Cover = 1 > > I've tried in my if loop, > If (i == 0) > { > sell(i) = 1; > cover(i) = 1; > } > > Neither has worked. > > Am I missing something in your logic? > > thanks, > > Fred > > ----- Original Message ----- > From: Herman > To: Ed Middleton > Sent: Friday, June 29, 2007 5:31 AM > Subject: Re: [amibroker] Entry Time Delay > > > > > > > > Your system here... > > > > > Sell = Sell AND BarsSince(Sell) >= 5; > > > > > herman > > > > > Thursday, June 28, 2007, 9:36:11 PM, you wrote: > > > > > > > > Ok now really frustrated. Nothing seems to be working. > > > > Here's what I want to do: > > Wait 5 bars after a sell or cover before buying or shorting again. You would think this was simple but as you can see below it is causing me some trouble. Any help would be appreciated. > > > > thx, > > > > Fred > > > > ----- Original Message ----- > > From: Ed Middleton > > To: [email protected] > > Sent: Thursday, June 28, 2007 2:37 PM > > Subject: Re: [amibroker] Entry Time Delay > > > > > Ok, I've found the problem. BarsSince(Sell) and BarsSince(Cover) never = anything because there is not Sells or Covers to get a value from and thus no buys or shorts. Somehow I need to be able to allow the first buy or Short to occur then everything will be ok. > > > > Any suggestions? > > > > thx, > > > > ----- Original Message ----- > > From: Ed Middleton > > To: [email protected] > > Sent: Thursday, June 28, 2007 11:48 AM > > Subject: Re: [amibroker] Entry Time Delay > > > > > Also tried: > > BarsSinceExit = Min(BarsSince(Sell),BarsSince(Cover)); > > Added to Buy and Short lines: > > AND (BarsSinceExit > 0); > > This should have gotten me in on the next 5 minute bar. No luck with this procedure either. I'm missing something in my programming logic. > > > > > > ----- Original Message ----- > > From: jjj_98 > > To: [email protected] > > Sent: Thursday, June 28, 2007 11:04 AM > > Subject: [amibroker] Entry Time Delay > > > > > After exiting a trade I want to wait 5 minutes before re-entering a > > trade so here's what code I've tried but it does not seem to be > > making a difference in the next entry. Do you see any problems? > > > > > //Initialize last trade exit times > > > > > LastSellTime = LastCoverTime = 000000; > > > > > // Calculates Amount of time since last exit > > > > > TimeSinceLastTrade = Min((TimeNum() - LastSellTime),(TimeNum() - > > LastCoverTime)); > > > > > // I added this to my BUY and SHORT instructions so that the time to > > re-enter the next trade must be greater than 5 minutes. > > > > > AND (TimeSinceLastTrade > 000500); > > > > > //In my logic added the following to get the time of the Last Sell > > and Last Cover > > > > > if(Sell[i] == 1) > > { > > LastSellTime = TimeNum(); > > } > > > > > if(Cover[i] == 1) > > { > > LastCoverTime = TimeNum(); > > } > > > > > --------------------------------- > > Choose the right car based on your needs. Check out Yahoo! Autos new Car Finder tool. > > --------------------------------- > > Get the Yahoo! toolbar and be alerted to new email wherever you're surfing. > > > > > > > --------------------------------- > > Boardwalk for $500? In 2007? Ha! > > Play Monopoly Here and Now (it's updated for today's economy) at Yahoo! Games. > > > > #ygrp-mlmsg { FONT-SIZE: small; FONT-FAMILY: arial,helvetica,clean,sans-serif}#ygrp-mlmsg TABLE { }#ygrp-mlmsg SELECT { FONT: 99% arial,helvetica,clean,sans-serif}INPUT { FONT: 99% arial,helvetica,clean,sans-serif}TEXTAREA { FONT: 99% arial,helvetica,clean,sans-serif}#ygrp-mlmsg PRE { FONT: 100% monospace}CODE { FONT: 100% monospace}#ygrp-mlmsg * { LINE-HEIGHT: 1.22em}#ygrp-text { FONT-FAMILY: Georgia}#ygrp-text P { MARGIN: 0px 0px 1em}#ygrp-tpmsgs { CLEAR: both; FONT-FAMILY: Arial}#ygrp-vitnav { FONT-SIZE: 77%; MARGIN: 0px; PADDING-TOP: 10px; FONT-FAMILY: Verdana}#ygrp-vitnav A { PADDING-RIGHT: 1px; PADDING-LEFT: 1px; PADDING-BOTTOM: 0px; PADDING-TOP: 0px}#ygrp-actbar { CLEAR: both; MARGIN: 25px 0px; COLOR: #666; WHITE-SPACE: nowrap; TEXT-ALIGN: right}#ygrp-actbar .left { FLOAT: left; WHITE-SPACE: nowrap}..bld { FONT-WEIGHT: bold}#ygrp-grft { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 77%; PADDING-BOTTOM: 15px; PADDING-TOP: 15px; FONT-FAMILY: > Verdana}#ygrp-ft { PADDING-RIGHT: 0px; BORDER-TOP: #666 1px solid; PADDING-LEFT: 0px; FONT-SIZE: 77%; PADDING-BOTTOM: 5px; PADDING-TOP: 5px; FONT-FAMILY: verdana}#ygrp-mlmsg #logo { PADDING-BOTTOM: 10px}#ygrp-vital { PADDING-RIGHT: 0px; PADDING-LEFT: 8px; MARGIN-BOTTOM: 20px; PADDING-BOTTOM: 8px; PADDING-TOP: 2px; BACKGROUND-COLOR: #e0ecee}#ygrp-vital #vithd { FONT-WEIGHT: bold; FONT-SIZE: 77%; TEXT-TRANSFORM: uppercase; COLOR: #333; FONT-FAMILY: Verdana}#ygrp-vital UL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 2px 0px; PADDING-TOP: 0px}#ygrp-vital UL LI { CLEAR: both; BORDER-RIGHT: #e0ecee 1px solid; BORDER-TOP: #e0ecee 1px solid; BORDER-LEFT: #e0ecee 1px solid; BORDER-BOTTOM: #e0ecee 1px solid; LIST-STYLE-TYPE: none}#ygrp-vital UL LI .ct { PADDING-RIGHT: 0.5em; FONT-WEIGHT: bold; FLOAT: right; WIDTH: 2em; COLOR: #ff7900; TEXT-ALIGN: right}#ygrp-vital UL LI .cat { FONT-WEIGHT: bold}#ygrp-vital A { TEXT-DECORATION: none}#ygrp-vital A:hover { > TEXT-DECORATION: underline}#ygrp-sponsor #hd { FONT-SIZE: 77%; COLOR: #999}#ygrp-sponsor #ov { PADDING-RIGHT: 13px; PADDING-LEFT: 13px; MARGIN-BOTTOM: 20px; PADDING-BOTTOM: 6px; PADDING-TOP: 6px; BACKGROUND-COLOR: #e0ecee}#ygrp-sponsor #ov UL { PADDING-RIGHT: 0px; PADDING-LEFT: 8px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px}#ygrp-sponsor #ov LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 77%; PADDING-BOTTOM: 6px; PADDING-TOP: 6px; LIST-STYLE-TYPE: square}#ygrp-sponsor #ov LI A { FONT-SIZE: 130%; TEXT-DECORATION: none}#ygrp-sponsor #nc { PADDING-RIGHT: 8px; PADDING-LEFT: 8px; MARGIN-BOTTOM: 20px; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; BACKGROUND-COLOR: #eee}#ygrp-sponsor .ad { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 8px; PADDING-TOP: 8px}#ygrp-sponsor .ad #hd1 { FONT-WEIGHT: bold; FONT-SIZE: 100%; COLOR: #628c2a; LINE-HEIGHT: 122%; FONT-FAMILY: Arial}#ygrp-sponsor .ad A { TEXT-DECORATION: none}#ygrp-sponsor .ad A:hover { TEXT-DECORATION: > underline}#ygrp-sponsor .ad P { MARGIN: 0px}o { FONT-SIZE: 0px}..MsoNormal { MARGIN: 0px}#ygrp-text TT { FONT-SIZE: 120%}BLOCKQUOTE { MARGIN: 0px 0px 0px 4px}..replbq { } > > --------------------------------- > Building a website is a piece of cake. > Yahoo! Small Business gives you all the tools to get online. >
