Code Example
{
Indicator : sfi_pivot_gartley
Description : Draw the Gartley pattern
}
Inputs:
Length(50),
Strength(5),
BullColor(Green),
BearColor(Red),
F1(0.618);
Variables:
PivotCount(0),
Gartley(0),
Width(1),
Drawn(False);
Arrays:
PivotMap[50, 4](0),
Pattern[5, 4](0),
SavedPattern[5, 4](0);
{Find Pivots}
PivotCount = sff_pivot_pivotmap(Length, 50, PivotMap);
{Gartley}
Gartley = sff_pivot_gartley(PivotCount, PivotMap, Strength, Pattern, F1);
If Gartley <> 0 Then Begin
If sff_pattern_samepattern(Gartley, Pattern, SavedPattern) = False Then Begin
If Gartley > 0 Then
Drawn = sff_util_drawpattern(Gartley, Pattern, BullColor, Width, "G")
Else
Drawn = sff_util_drawpattern(Gartley, Pattern, BearColor, Width, "G");
Condition1 = sff_util_copypattern(Gartley, Pattern, SavedPattern);
End;
End;
{
Function : sff_pivot_gartley
Description : Identify a Gartley Pattern
}
Inputs:
Pivots(NumericSimple),
PM[MaxSize1, MaxSize2](NumericArrayRef),
Strength(NumericSimple),
Pattern[MaxSize3, MaxSize4](NumericArrayRef),
F1(NumericSimple);
Variables:
PatternPivots(4),
p1(0),
p2(0),
p3(0),
p4(0),
v1(0.0),
v2(0.0),
v3(0.0),
v4(0.0),
s1(0.0),
s2(0.0),
s3(0.0),
s4(0.0),
s5(0.0);
sff_pivot_gartley = 0;
If Pivots >= PatternPivots and Strength >= 1 Then Begin
{Bullish Gartley}
p2 = sff_pivot_pivothigh(Pivots, PM, 0, Pivots-1, Strength);
p1 = sff_pivot_pivotlow(Pivots, PM, 0, Pivots-1, Strength);
If p2 >= 0 and p1 >= 0 and
p2 < p1 Then Begin
v2 = High[PM[p2, 0]];
v1 = Low[PM[p1, 0]];
p3 = sff_pivot_pivotlow(Pivots, PM, 0, p2-1, Strength);
If p3 >= 0 and v2 > v1 Then Begin
v3 = Low[PM[p3, 0]];
p4 = sff_pivot_pivothigh(Pivots, PM, 0, p3-1, Strength);
If p4 >= 0 and v3 > v1 and v3 < v2 Then Begin
v4 = High[PM[p4, 0]];
If v4 > v3 and v4 < v2 Then Begin
s1 = v2 - v1;
s2 = v2 - v3;
s3 = v4 - v3;
s4 = v4 - Close;
s5 = v2 - Close;
If s2 < s1 and s3 < s2 and s4 > s2 and s5 >= F1 * s1 and
Low > v1 and Close < v3 Then Begin
Pattern[1, 0] = PM[p1, 0];
Pattern[1, 1] = PM[p1, 1];
Pattern[1, 2] = PM[p1, 2];
Pattern[1, 3] = PM[p1, 3];
Pattern[2, 0] = PM[p2, 0];
Pattern[2, 1] = PM[p2, 1];
Pattern[2, 2] = PM[p2, 2];
Pattern[2, 3] = PM[p2, 3];
Pattern[3, 0] = PM[p3, 0];
Pattern[3, 1] = PM[p3, 1];
Pattern[3, 2] = PM[p3, 2];
Pattern[3, 3] = PM[p3, 3];
Pattern[4, 0] = PM[p4, 0];
Pattern[4, 1] = PM[p4, 1];
Pattern[4, 2] = PM[p4, 2];
Pattern[4, 3] = PM[p4, 3];
sff_pivot_gartley = PatternPivots;
End;
End;
End;
End;
End;
{Bearish Gartley}
p1 = sff_pivot_pivothigh(Pivots, PM, 0, Pivots-1, Strength);
p2 = sff_pivot_pivotlow(Pivots, PM, 0, Pivots-1, Strength);
If p1 >= 0 and p2 >= 0 and
p2 < p1 Then Begin
v1 = High[PM[p1, 0]];
v2 = Low[PM[p2, 0]];
p3 = sff_pivot_pivothigh(Pivots, PM, 0, p2-1, Strength);
If p3 >= 0 and v1 > v2 Then Begin
v3 = High[PM[p3, 0]];
p4 = sff_pivot_pivotlow(Pivots, PM, 0, p3-1, Strength);
If p4 >= 0 and v3 < v1 and v3 > v2 Then Begin
v4 = Low[PM[p4, 0]];
If v4 < v3 and v4 > v2 Then Begin
s1 = v1 - v2;
s2 = v3 - v2;
s3 = v3 - v4;
s4 = Close - v4;
s5 = Close - v2;
If s2 < s1 and s3 < s2 and s4 > s2 and s5 >= F1 * s1 and
High < v1 and Close > v3 Then Begin
Pattern[1, 0] = PM[p1, 0];
Pattern[1, 1] = PM[p1, 1];
Pattern[1, 2] = PM[p1, 2];
Pattern[1, 3] = PM[p1, 3];
Pattern[2, 0] = PM[p2, 0];
Pattern[2, 1] = PM[p2, 1];
Pattern[2, 2] = PM[p2, 2];
Pattern[2, 3] = PM[p2, 3];
Pattern[3, 0] = PM[p3, 0];
Pattern[3, 1] = PM[p3, 1];
Pattern[3, 2] = PM[p3, 2];
Pattern[3, 3] = PM[p3, 3];
Pattern[4, 0] = PM[p4, 0];
Pattern[4, 1] = PM[p4, 1];
Pattern[4, 2] = PM[p4, 2];
Pattern[4, 3] = PM[p4, 3];
sff_pivot_gartley = -PatternPivots;
End;
End;
End;
End;
End;
End;
List of Source Files
sff_calendar_bizdaymonth.txt sff_calendar_bizdayweek.txt sff_calendar_christmas.txt sff_calendar_daynumber.txt sff_calendar_dayofweek.txt sff_calendar_daysremain.txt sff_calendar_easter.txt sff_calendar_firstkday.txt sff_calendar_gdate2rdate.txt sff_calendar_gleapyear.txt sff_calendar_goodfriday.txt sff_calendar_gsubtract.txt sff_calendar_independence.txt sff_calendar_kdayafter.txt sff_calendar_kdaybefore.txt sff_calendar_kdaynearest.txt sff_calendar_kdayonafter.txt sff_calendar_kdayonbefore.txt sff_calendar_labor.txt sff_calendar_lastkday.txt sff_calendar_martinlutherking.txt sff_calendar_memorial.txt sff_calendar_nearestevent.txt sff_calendar_nearestholiday.txt sff_calendar_newyear.txt sff_calendar_nthbday.txt sff_calendar_nthkday.txt sff_calendar_presidents.txt sff_calendar_rdate2gdate.txt sff_calendar_rdate2gyear.txt sff_calendar_setevents.txt sff_calendar_setholidays.txt sff_calendar_tdate2rdate.txt sff_calendar_thanksgiving.txt sff_candle_doji.txt sff_candle_hammer.txt sff_candle_harami.txt sff_candle_invertedhammer.txt sff_float_floatchannelhigh.txt sff_float_floatchannellow.txt sff_float_getfloat.txt sff_float_getfloatbar.txt sff_pattern_180.txt sff_pattern_cobra.txt sff_pattern_compareroc.txt sff_pattern_doublebottom.txt sff_pattern_doubletop.txt sff_pattern_gannpulldown.txt sff_pattern_gannpullup.txt sff_pattern_gapsignaldown.txt sff_pattern_gapsignalup.txt sff_pattern_hookdown.txt sff_pattern_hookup.txt sff_pattern_keyreversaldown.txt sff_pattern_keyreversalup.txt sff_pattern_nexus.txt sff_pattern_onaverage.txt sff_pattern_outsidekeyreversaldown.txt sff_pattern_outsidekeyreversalup.txt sff_pattern_outsidereversaldown.txt sff_pattern_outsidereversalup.txt sff_pattern_pullback.txt sff_pattern_rectangular.txt sff_pattern_retracedown.txt sff_pattern_retraceup.txt sff_pattern_reversaldown.txt sff_pattern_reversalup.txt sff_pattern_samepattern.txt sff_pattern_sequentialbuy.txt sff_pattern_sequentialsell.txt sff_pattern_signaldown.txt sff_pattern_signalup.txt sff_pattern_snapbackdown.txt sff_pattern_snapbackup.txt sff_pattern_spring.txt sff_pattern_tablebottom.txt sff_pattern_tabletop.txt sff_pattern_tail.txt sff_pattern_testhigh.txt sff_pattern_testlow.txt sff_pattern_trendbar.txt sff_pattern_triplebottom.txt sff_pattern_tripletop.txt sff_pattern_upthrust.txt sff_pattern_vhigh.txt sff_pattern_vlow.txt sff_pattern_wedge.txt sff_pattern_xmadown.txt sff_pattern_xmaup.txt sff_pivot_butterfly.txt sff_pivot_expansionwave.txt sff_pivot_fibcluster.txt sff_pivot_gartley.txt sff_pivot_highlowindex.txt sff_pivot_pivothigh.txt sff_pivot_pivotlow.txt sff_pivot_pivotmap.txt sff_pivot_projectedwave.txt sff_pivot_symmetricpivot.txt sff_range_congestion.txt sff_range_insidebar.txt sff_range_insideday2.txt sff_range_insidedaynarrowrange.txt sff_range_narrowestrange.txt sff_range_narrowrange.txt sff_range_outsidebar.txt sff_range_rangepct.txt sff_range_rangeratio.txt sff_range_rpzone.txt sff_range_volatility.txt sff_range_volatilitypercentage.txt sff_range_widestrange.txt sff_trade_getshares.txt sff_trade_plotentrytargets.txt sff_trade_plotexittargets.txt sff_util_copypattern.txt sff_util_dec2binary.txt sff_util_drawktl.txt sff_util_drawpaintbar.txt sff_util_drawpattern.txt sff_util_exportts2r.txt sff_util_logstats.txt sff_util_logtrades.txt sff_util_marketbits.txt sff_util_tag2string.txt sfi_calendar_show.txt sfi_chart_nlinebreak.txt sfi_float_floatbars.txt sfi_float_floatbox.txt sfi_float_floatchannel.txt sfi_float_floatpercentage.txt sfi_float_floatturnover.txt sfi_marketmodel.txt sfi_pairs_spread.txt sfi_pattern_compareroc.txt sfi_pattern_doublebottom.txt sfi_pattern_doublebottomtest.txt sfi_pattern_doubletop.txt sfi_pattern_doubletoptest.txt sfi_pattern_rectangle.txt sfi_pattern_show.txt sfi_pattern_tables_show.txt sfi_pattern_triangle.txt sfi_pattern_tripletop.txt sfi_pattern_wedge.txt sfi_pivot_allpivotpatterns.txt sfi_pivot_butterfly.txt sfi_pivot_expansionwave.txt sfi_pivot_fibcluster.txt sfi_pivot_gartley.txt sfi_pivot_pivotmap.txt sfi_pivot_projectedwave.txt sfi_pivot_symmetricpivot.txt sfi_range_atr.txt sfi_range_congestion.txt sfi_range_historicalvolatility.txt sfi_range_hvratio.txt sfi_range_ktl.txt sfi_range_levels.txt sfi_range_rangeratio.txt sfi_range_zones.txt sfi_util_recordprices.txt sfp_candle_doji.txt sfp_pattern_180.txt sfp_pattern_keyreversaldown.txt sfp_pattern_keyreversalup.txt sfp_pattern_tail.txt sfp_pattern_trend.txt sfp_pattern_vhighzone.txt sfp_pattern_vlowzone.txt sfp_pattern_xmadown.txt sfp_pattern_xmaup.txt sfp_pivots_show.txt sfp_range_id2.txt sfp_range_insidedaynarrowrange.txt sfp_range_narrowestrange.txt sfp_range_narrowrange2.txt sfp_range_narrowrangepercent.txt sfs_float.txt sfs_kitchensink.txt sfs_openrangebreakout.txt sfs_pairs.txt sfs_pattern_multiple.txt sfs_pattern_narrowrange.txt sfs_pattern_rectangle.txt sfs_pattern_v.txt sfs_range_levels.txt sfs_sentiment.txt sfs_trade_closetrademanager.txt sfs_trade_fixedtrademanager.txt sfs_trade_trademanager.txt