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