back start next
[start] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [35] [36] [37] [38] [39] [40] [41] [42] [43] [44] [45] [46] [47] [48] [49] [ 50 ] [51] [52] [53] [54]
50 If FloatValue > 0.0 Then Begin While TcrtalVolume < FloatValue and Bailndex < MaxBarsBack Begin TatalVolume = TotalVolume + Volume[BarIndex]; Bailndex = Barlndex + i; End; End; End; AcmeCetFloatBars = Barlndex; AcmeGetShares ftcneCetShaies: Calculate the number of shares based en risk model RiskModel = 1. Equal Value Units Model RiskModel = 2, Percent Risk Model RiskModel = 3. Percent Volatility Model **«»,*♦*************♦*****************•+♦*♦*. Inputs: Equity(Nuineric), RiskModel(Numeric). RiskPercent(Numeric), RiskUnits(Numeric); Variables: MinimumShares(200), RiskShares(O), ERP(O.o), Length(20); ERP = Equity * RiskPercent / lOO; If RiskModel - 1 and Close > 0 Then RiskShares = MaxList(MiniinumShares. 100 • IntPortion(Equity / (lOO * Close))); If RiskModel = 2 and RiskUnits > 0 Then RiskShares = MaxList(MiniinumShares, 100 * IntPortion(ERP / (100 * RiskUnits))); If RiskModel = 3 and Volatility(Length) > 0 Then RiskShares MaxList(HinimumShares, 100 * IntPortion(ERP / (100 * Volatility(Length)))); AcmeGetShares = RiskShares; AcmeHarami: Search for the extended Harami Pattern Variables: RPLimit(0.45), RRLimit(0.60), Haramil(False), Harami2(False). Haramis(False); AcmeHarami = 0; If Range[l] > 0 and Range[2l > 0 and Range[3] > 0 Then Begin Conditionl = Low >= Low[l] and High <= High[l]; Condition2 = Close > Open; Conditions = AcmeRangePercent(Close, l)[l] <= RPLimit and AcmeRangePercent(Open, l)[l] >= (l - RPLimit); Condition4 = (Range / Range[l]} <= RRLimit; Haramil = Conditionl and Condition2 and Conditions and Condition4; Conditionl = Low >= Low[2l and High <= High[2]; Condition2 = Low[l] >= Low[2] and High[l] <= High[2]; Conditions = Close > Open; Condition4 = AcmeRangePercent(Close, l)[2] <= RPLimit and AcmeRangePercent(Open, l)[2l >= (l - RPLimit); Conditions = (Range / Range[2]) <= RRLimit; Harami2 = Conditionl and Condition2 and Conditions and Condition* and Conditions; Conditionl = Low >= Low[3] and High <= High[3]; Condition2 = Low[l] >= Low[3] and High[l] <= H:h[3]; Low[2] >= Low[3] and High[2] <= High[3]; Conditions Condition4 = Close Conditions Open; it(Close, 1)[3] <= RPLimit and AcmeRangePercent (Open, 1)[ ] >= (l - RPLimit); Condition6 = (Range / Range[3]) <= RRLimit; Haramis = Conditionl and Condition2 and Conditions and Condition4 and Conditions and Condition6; If Haramil or Harami2 or Haramis Then AcmeHarami l; Condition] - Low > Low[l) and High < HIfi; Condilion2 CloM < 0pm; Curalilionl Afin>«.in-PiMnl<()>.-ii. Itmitill...... Aii**.nii4-IVM.-nl(l 1..-. , l)l (I Krihiill). f.HHlil mil.] {K.iii,;,- / l) hi.......I.
Haramil = Conditioni and Condition2 and Conditions and ConditionA; Conditioni Condition! Conditions Condition4 Low >= Low[2] and High <= High[2]; Low[l] >= Low[2] and High[l] <= High[2]; Close < Open; AcmeRangePercent(Open, l)[2] <= RPLimit and AcmeRangePercent(Close. 1)[2] >= (1 - RPLimit); Conditions = (Range / Range[2]) <= RRLimit; Harami2 = Conditioni and Condition! and Conditions and Condition4 and Conditions; Conditioni = Low >= Low[S] and High <= High[3]; Condition2 = Low[l] >= Low[S] and High[l] <= High[s]; Conditions = Low[2] >= Low[S] and High[2] High[s]; Condition4 = Close < Open; Conditions = AcmeRangePercent(Open, l)[S] <= RPLimit and AcmeRangePercent(Close, 1)[S] >= (1 - RPLimit); Condition6 = (Range / Range[S]) <= RRLimit; HaramiS = Conditioni and Condition! and Conditions and ConditionA and Conditions and Condition6; If Haramil or Harami! or HaramiS Then AcmeHarami = !; End; AcmeHighLowlndex Function AcmeHighLowlndex: Calculate the High Low Index Inputs: Price(Numeric), Length(Numeric); AcmeHighLowlndex = 0; If Price[l] >= Highest(Price, Length - l)[2] and Price < Price[l] Then AcmeHighLowlndex = 1 Else If Price[l] <= Lowest(Price, Length - l)[2] and Price > Pricefl] Then AcmeHighLowlndex = 2; AcmeHook: Search for a Hook Pattern Inputs: Length(Numeric), Percent(Numeric); AcmeHook = O; If AcmeRetraceUp(Length)[l] and Low < Low[l] and AcmeRangePercent(Close, l) >= (l - Percent) Then AcmeHook = l; If AcmeRetraceDown(Length)[1] and High > High[l] and AcmeRangePercent(Close, 1) <= Percent Then AcmeHook = 2; AcmelnsideDay2 Function AcmeInsideDay2 = False; If Low > Low[l] and High < High[l] and Low[l] > Low[2] and High[l] < High[2] Then AcmelnsideDay! = True; AcmelnsidePayNR Function AcmelnsideDayNR: Find an inside day / narrow range bar 4 « « 4-4 « * 4 «!) + * 4 * 4< * * ***** « * >! f *** >! A******* 4-** * * * >44:*44*4-44<44-*4**4444"*444 . bar *4«*4t+*«***«X444*J Inputs: Rang<.-L<--nKMi(¹im<>iiL), lii<li>y(N.imcii. ); Aiiiir-lMMili-li.iv¹ l.il-.c-.
If Range < Lowest(Range, RangeLength - l)[Index + l] and Low > Low[l] and High < Hihll] Then AcmelnsideDayNR = True; AcmeLogTrades Function AcmeLogTrades: Log trades to a file for import into a spreadsheet Inputs: LoggingOn(TrueFalse), LogFileName(5tring), SystemlD(String); Variables: ADXLength(14), Length(30). TradeStringC"); AcmeLogTrades = False; If LoggingOn and Category = 2 Then Begin {Log Closed Positions} If BarsSinceExit(l) = i Then Begin TradeString = CetSymbolWame + + NufnTo5tr(EntryDate(l), 0) + + NuniToStr(EntryPrice(l), 3) + "," + NuntToStr(ExitDate(l), 0) + + NufnToStr(ExitPrice(l), 3) + "," + NufnToStr(PositionProfit(l), 3) + + NufnTo5tr(ADX(ADXLength)[BarsSinceEntry(l)], 0) + "," + NufnToStr(Volatility(Length)[BarsSinceEntry(l)], 2) + + NunrToStr(AcmeVolatility(Length)fBarsSinceEntiy(l)], 3) + "," + SystemID + NewLine; FileAppend(LogFileName, TradeString); End; {Log Open Positions) If LastBarOnChart and CurrentEntries > 0 Then Begin TradeString = CetSymbolName + + NumToStr(EntryDate(O), 0) + "," + NumToStr(EntryPrice(0), ) + "." + NumToStr (Date, 0) + + NumToStr(Close, 3) + + NumToStr(OpenPositionProfit, 3) + + NumToStr(ADX(ADXLength)[BarsSinceEntry(o)l, O) + "," + NumToStr(Volatility(Length)[Bar5Sincrlrtry(o), 2) "," ♦ N.imTnSlr(A(i4.-Vol.ililily(lrni.th)h.nv4iiui-h(liy(0), 0 i "." 1 .v-hiiiin I Ni-wl ill.-; I ili-Atiii-iiil{hi>;l (lc-ri.inir, h.tili-M i 114,), End; AcmeLogTrades = True; End; AcmeNarrowRange AcmeNarrowRange: Is the specified bar a narrow range bar? Inputs: RangeLength(Numeric), Index(Numeric); AcmeNarrowRange = False; If Range < Lowest(Range, RangeLength - l)[Index + l] Then AcmeNarrowRange = True; AcmeOnAverage AcmeOnAverage: Is the current bar sitting on the movir average? Inputs: Length(Numeric); Variables: MA(O.O); AcmeOnAverage = False; HA = Average(Close, Length); If HA >= Low and HA <= High Then AcmeOnAverage = True; AcmePullback: Search for a Cann Pullback Patlrtri InfiuK: 11 1 iiril(mii[....... ). hii)-.lh(niim<-rii );
[start] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [35] [36] [37] [38] [39] [40] [41] [42] [43] [44] [45] [46] [47] [48] [49] [ 50 ] [51] [52] [53] [54]
|