[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [amibroker] Re: Coloring the chart in accordance with the trend



PureBytes Links

Trading Reference Links

David, thanks.. I'm going to look carefully into it.
In the meantime, I've added and changed a couple of things and - at 
least just for the sake of charting, and especially on a weekly chart - 
the results are decent.

Thank you again.


percent	= Param("Percent move", 1, 0.5, 10, 0.5);
marg	= Param("Threshold % Margin", 1, 0, 3, 0.1);
lastTrough1 = Trough(C, percent, 1);
lastPeak1   = Peak(C, percent, 1);
barsSinceTrough1 = TroughBars(C, percent, 1);
barsSincePeak1	 = PeakBars(C, percent, 1);


Color[0] = colorLightGrey;

for(i = 1; i < BarCount; i++)
{

	if(barsSinceTrough1[i] > barsSincePeak1[i])  // breakdown
	{
		if(C[i] < (1 - marg/100)*lastTrough1[i])
			color[i] = colorRed;
		else
			color[i] = color[i-1];			
	}


	if(barsSinceTrough1[i] < barsSincePeak1[i])  // breakout
	{
		if(C[i] > (1 + marg/100)*lastPeak1[i])
			color[i] = colorBlue;
		else
			color[i] = color[i-1];
	}

}


Plot(C, Name(), color, styleBar);




dbw451 wrote:
> Oops, I forgot the trend change rule about a new high or low.  The up 
> trend and down trend variables that I offered just need an additional 
> filter to check for new highs and lows:
> 
>  
> 
> bUpTrend = C > dSwingHighValue AND BarsSince(bHH) > BarsSince(bHL) AND 
> BarsSince(bLL) >
> BarsSince(bHH) AND BarsSince(bLH) > BarsSince(bHH);
>  
> bDnTrend = C < dSwingLowValue AND BarsSince(bLL) > BarsSince(bLH) AND 
> BarsSince(bHH) >
> BarsSince(bLL) AND BarsSince(bHL) > BarsSince(bLL);
> 
>  
> 
> Your second problem is a tough issue for which I don?t have a good 
> solution.  I?ve tried many variations of variable zig percentages using 
> ATR multiples, swing lengths, etc. and have not found a good way reduce 
> false highs and lows produced in a range.  As a trade filter, I?ll look 
> at the swing lengths and require the action swings to be a multiple 
> (i.e. 1.5x to 2.0x) longer than the reaction swing length.  If the 
> action and reaction swing length differences are smaller than the 
> multiple, I assume the market is ranging.  This approach means I don?t 
> trigger a trend trade until the 3^rd wave and I miss the trend trade for 
> the first wave of a trend change (which is usually the largest).  In 
> other words, I?ll trade the first pullback of a new trend confirmed by 
> swing length differences being larger than my multiple.
> 
>  
> 
> Your code framework looks fine as long as you realize (which I?m sure 
> you do) that the Zig indicator (i.e. Peak/Trough) look into the future, 
> so values compared against them should not be used in a trading system.  
> I?m pretty sure PowerSwings has a lot of logic behind it to determine 
> the trend changes.  I?ve not figured out a good approach.  Writing code 
> for the left hand side of the chart is never easy because usually there 
> is a lot of visual interpretation that?s tough to codify.  I?m open to 
> any ideas on this topic.  With ideas, I might be able to offer 
> suggestions on how to code.
> 
>  
> 
> Regards,
> 
>  
> 
> David
> 
> ------------------------------------------------------------------------
> 
> *From:* amibroker@xxxxxxxxxxxxxxx [mailto:amibroker@xxxxxxxxxxxxxxx] *On 
> Behalf Of *jppt0k
> *Sent:* 02/19/2007 12:12 PM
> *To:* amibroker@xxxxxxxxxxxxxxx
> *Subject:* [amibroker] Re: Coloring the chart in accordance with the trend
> 
>  
> 
> Hi David,
> 
> thank you very much for your help.
> 
> In fact I did see the code posted by Eric Tangen and tried to modify it 
> but I've not been able to get what I'm after.
> 
> I've tried your modifications too but - unless I did something wrong - 
> they don't give exactly the classical trend definition.
> 
> I have at least two problems. The first is to define a new trend. It 
> should start (an uptrend, for example) when - while being in downtrend - 
> it makes a new high and from then on it should keep doing higher highs 
> and higher lows.
> 
> The second problem is to avoid calling a new trend when the market moves 
> sideway but the prices make incosequential highs and lows.
> 
> I've not been able to reach any good framework beside the two steps 
> below and the definition of the two latest highs and lows with which 
> trying to apply the classical rules. I've tried to add other steps but 
> it seems I miss the very programming competence to reach any result.
> 
> percent = Param("Percent move", 3, 0.5, 10, 0.5);
> lastTrough1 = Trough(L, percent, 1);
> lastTrough2 = Trough(L, percent, 2);
> lastPeak1 = Peak(H, percent, 1);
> lastPeak2 = Peak(H, percent, 2);
> barsSinceTrough1 = TroughBars(L, percent, 1);
> barsSinceTrough2 = TroughBars(L, percent, 2);
> barsSincePeak1 = PeakBars(H, percent, 1);
> barsSincePeak2 = PeakBars(H, percent, 2);
> 
> for(i = 1; i < BarCount; i++)
> {
> 
> if(barsSinceTrough1[i] > barsSincePeak1[i]) // breakdown
> {
> if(C[i] < lastTrough1[i])
> color[i] = colorRed;
> }
> 
> if(barsSinceTrough1[i] < barsSincePeak1[i]) // breakout
> {
> if(C[i] > lastPeak1[i])
> color[i] = colorBlue;
> }
> 
> }
> 
> Plot(C, Name(), color, styleBar);
> 
> --- In amibroker@xxxxxxxxxxxxxxx <mailto:amibroker%40yahoogroups.com>, 
> "dbw451" <dbw451@xxx> wrote:
>>
>>  The Peak and Trough function use the Zig indicator, so the peaks and 
> valleys
>>  are determined once price moves a predefined amount based on a percentage
>>  specified. Eric Tangen posted some nice code that does something similar
>>  you want with the caveat the color change does not change until the 
> peak or
>>  valley is identified and it doesn't look at HHs and LLs:
>>
>>
>>
>>  http://www.amibroker.com/library/detail.php?id=353 
> <http://www.amibroker.com/library/detail.php?id=353>
>>  <http://www.amibroker.com/library/detail.php?id=353&hilite=ZIG 
> <http://www.amibroker.com/library/detail.php?id=353&hilite=ZIG>> &hilite=ZIG
>>
>>
>>
>>  If you really want HHs and LLs to determine colors, you can use this 
> code as
>>  your base. The code identifies the peaks and valleys (PivotLow and
>>  PivotHigh variables) and where the peaks and troughs are valid (Buy_Valid
>>  and Sell_Valid variables) You can use ValueWhen to get the Low and High
>>  values at the pivots:
>>
>>
>>
>>  dSwingLowValue = ValueWhen(PivotLow, L, 1)
>>
>>  dSwingHighValue = ValueWhen(PivotHigh, H, 1)
>>
>>
>>
>>  Then you can determine your HHs and LLs:
>>
>>
>>
>>  bHH = dSwingHighValue > Ref(dSwingHighValue,-1);
>>
>>  bLH = (Ref(dSwingHighValue,-1) > dSwingHighValue) OR (PivotHigh AND
>>  dSwingHighValue == Ref(dSwingHighValue,-1));
>>
>>  bLL = dSwingLowValue < Ref(dSwingLowValue,-1);
>>
>>  bHL = (Ref(dSwingLowValue,-1) < dSwingLowValue) OR (PivotLow AND
>>  dSwingLowValue == Ref(dSwingLowValue,-1));
>>
>>  .
>>
>>  Then you would determine your uptrend / downtrend:
>>
>>
>>
>>  bUpTrend = BarsSince(bHH) > BarsSince(bHL) AND BarsSince(bLL) >
>>  BarsSince(bHH) AND BarsSince(bLH) > BarsSince(bHH);
>>
>>  bDnTrend = BarsSince(bLL) > BarsSince(bLH) AND BarsSince(bHH) >
>>  BarsSince(bLL) AND BarsSince(bHL) > BarsSince(bLL);
>>
>>
>>
>>  Finally, you would update Tangen's BarColor formula with the up trend and
>>  down trend variables:
>>
>>
>>
>>  BarColors =
>>
>>  IIf(BarsSince(Buy_Valid) < BarsSince(Sell_Valid)
>>
>>  AND BarsSince(Buy_Valid)!=0 AND bUpTrend, colorGreen,
>>
>>  IIf(BarsSince(Sell_Valid) < BarsSince(Buy_Valid)
>>
>>  AND BarsSince(Sell_Valid)!=0 AND bDnTrend, colorRed, colorBlue));
>>
>>
>>
>>  This should work, however I personally do not use trend coloring like 
> this.
>>  I actually prefer Tangen's coloring scheme because when trends are defined
>>  by HHs and LLs, too many price bars are in a trend-less mode (blue 
> color in
>>  this case).
>>
>>
>>
>>  Hope this helps.
>>
>>
>>
>>  Regards,
>>
>>
>>
>>  David
>>
>>
>>
>>  _____
>>
>>  From: amibroker@xxxxxxxxxxxxxxx <mailto:amibroker%40yahoogroups.com> 
> [mailto:amibroker@xxxxxxxxxxxxxxx <mailto:amibroker%40yahoogroups.com>] 
> On Behalf
>>  Of jppt0k
>>  Sent: 02/19/2007 10:06 AM
>>  To: Amibroker Group
>>  Subject: [amibroker] Coloring the chart in accordance with the trend
>>
>>
>>
>>  Hi all,
>>
>>  I'm trying every way to color a chart in accordance with the usual
>>  definition of trend (uptrend with higher highs and higher lows and
>>  downtrend with lower lows and lower highs) but cannot come up with
>>  anything that works as it should.
>>
>>  The idea is to obtain a chart similar to those of PowerSwings, such as
>>  the one attached.
>>
>>  I'm using the Trough and Peak functions but have reached a degree of
>>  convolutedness and confusion that I'm sure to stand now at the
>>  I-absolutely-need-help point.
>>
>>  Is there someone that has worked on a similar project or knows a way to
>>  do it?
>>
>>  Thanks in advance.
>>
>>  j
>>
> 
> 



Please note that this group is for discussion between users only.

To get support from AmiBroker please send an e-mail directly to 
SUPPORT {at} amibroker.com

For NEW RELEASE ANNOUNCEMENTS and other news always check DEVLOG:
http://www.amibroker.com/devlog/

For other support material please check also:
http://www.amibroker.com/support.html
 
Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/amibroker/

<*> Your email settings:
    Individual Email | Traditional

<*> To change settings online go to:
    http://groups.yahoo.com/group/amibroker/join
    (Yahoo! ID required)

<*> To change settings via email:
    mailto:amibroker-digest@xxxxxxxxxxxxxxx 
    mailto:amibroker-fullfeatured@xxxxxxxxxxxxxxx

<*> To unsubscribe from this group, send an email to:
    amibroker-unsubscribe@xxxxxxxxxxxxxxx

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/
 


-- 
No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.5.441 / Virus Database: 268.18.3/693 - Release Date: 2/19/2007 5:01 PM