Registered User Joined: 1/14/2006 Posts: 436

Bruce
Would you please code the following algorithm.
Thank you ... Dan
++++++++++++++
BarCount = number of 1 minute bars beginning at start of trading day
Set Plot(1)=0 for 1st 1 minute bar
If plot(currentbar1) <> 0, Plot(barcount) = Plot(Barcount 1) (ie, freeze all future plot values at 1st nonzero value)
a) If 2nd one minute bar is engulfing candle of 1st one minute bar & any one of 15 subsequent bars breaks the top of the 2nd one minute bar, then set Plot = 1 + Barcount/100.
b) If 2nd one minute bar is engulfing candle of 1st one minute bar & any one of 15 subsequent bars breaks the bottom of the 2nd one minute bar, then set plot= 1  Barcount/100.
c) Otherwise Plot = 0.
d) If barcount > 15, stop algorithm (do not analyze or waste CPU Power), set Plot=Plot(15)
+++++++++++


Worden Trainer
Joined: 10/7/2004 Posts: 65,138

I am not quite sure I am properly following the logic of the described indicator, but maybe something similar to the following?
'******************************************************************
'*** StockFinder RealCode Indicator  Version 5.0 www.worden.com
'*** Copy and paste this header and code into StockFinder *********
'*** Indicator:New Code
'******************************************************************
Static BarCount As Single
Static Bar2High As Single
Static Bar2Low As Single
Static Output As Single
If isFirstBar Then
BarCount = Single.NaN
Bar2High = Single.NaN
Bar2Low = Single.NaN
Output = Single.NaN
Else If Price.DateValue.Day <> Price.DateValue(1).Day Then
BarCount = 1
Bar2High = Single.NaN
Bar2Low = Single.NaN
Output = 0
Else
BarCount += 1
End If
If BarCount = 2 Then
If Price.High > Price.High(1) AndAlso _
Price.Low < Price.Low(1) Then
Bar2High = Price.High
Bar2Low = Price.Low
End If
End If
If BarCount <= 15 Then
If Price.High > Bar2High Then
Output = 1 + BarCount / 100
Bar2High = Single.NaN
Bar2Low = Single.NaN
Else If Price.Low < Bar2Low Then
Output = 1  BarCount / 100
Bar2High = Single.NaN
Bar2Low = Single.NaN
End If
If BarCount = 15 Then
Output = 15
Bar2High = Single.NaN
Bar2Low = Single.NaN
End If
End If
Plot = Output
Bruce Personal Criteria Formulas TC2000 Support Articles


Registered User Joined: 1/14/2006 Posts: 436

Bruce
Thanks for your rapid response. I see I need to modify the algorithm.
a) 1st minute bar is a gap up or gap down from yesterday's close AND
b) 2nd 1 minute bar is engulfing candle of 1st one minute bar, ie, high(2) > high(1) AND low(2) < low(2) < low(1) AND
c) IF a AND b are true, analyze 3rd through 15th bar
IF High(n) > High(2) AND 1st bar was gap up, THEN PLOT = 1+bar/100 else
IF Low(n) < Low(2) and 1st bar was gap down, THEN PLOT = 1bar/100
d) If a AND b AND c not true, PLOT=0.
e) After bar 15, Freeze PLOT at value of 1st bar when a AND b AND c are true, otherwise PLOT = 0.
Thanks again for your patience. Dan


Registered User Joined: 1/14/2006 Posts: 436

Sorry
line b should read
b) 2nd 1 minute bar is engulfing candle of 1st one minute bar, ie, high(2) > high(1) AND low(2) < low(1) AND


Worden Trainer
Joined: 10/7/2004 Posts: 65,138

Does the low need to be above the close for the gap up or the high below the close for the gap down or do you need to have the open not equal to the close?
Bruce Personal Criteria Formulas TC2000 Support Articles


Registered User Joined: 1/14/2006 Posts: 436

Bruce
On the first bar, I just need to know if the gap is up or down compared to yesterdays close, there has to be a gap between yesterdays close and the low on gap up (or high on gap down) of the first bar.
On the second bar, it has to be an engulfing candle.
On subsequent bars, the high (or low) is ONLY compared to the second bar high (or low).
Thanks.. Dan


Worden Trainer
Joined: 10/7/2004 Posts: 65,138

Please try the following RealCode Condition.
'******************************************************************
'*** StockFinder RealCode Indicator  Version 5.0 www.worden.com
'*** Copy and paste this header and code into StockFinder *********
'*** Indicator:New Code
'******************************************************************
Static BarCount As Single
Static Bar2High As Single
Static Bar2Low As Single
Static Output As Single
BarCount += 1
If isFirstBar Then
BarCount = Single.NaN
Bar2High = Single.NaN
Bar2Low = Single.NaN
Output = Single.NaN
Else If Price.DateValue.Day <> Price.DateValue(1).Day Then
If (Price.Low > Price.Close(1) OrElse _
Price.High < Price.Close(1)) Then
BarCount = 1
Else
BarCount = Single.NaN
End If
Bar2High = Single.NaN
Bar2Low = Single.NaN
Output = 0
Else If BarCount = 2 Then
If Price.High > Price.High(1) AndAlso _
Price.Low < Price.Low(1) Then
Bar2High = Price.High
Bar2Low = Price.Low
End If
Else If BarCount <= 15 Then
If Price.High > Bar2High Then
Output = 1 + BarCount / 100
Bar2High = Single.NaN
Bar2Low = Single.NaN
Else If Price.Low < Bar2Low Then
Output = 1  BarCount / 100
Bar2High = Single.NaN
Bar2Low = Single.NaN
End If
If BarCount = 15 Then
Bar2High = Single.NaN
Bar2Low = Single.NaN
End If
End If
Plot = Output
Bruce Personal Criteria Formulas TC2000 Support Articles


Registered User Joined: 1/14/2006 Posts: 436

Bruce
The formula seems to work for gapups, but 1) it does not identify any actual gapdowns, and 2) misidentifies some gapups as gapdowns, e.g., NFLX today >> plot = 1.03.
The idea is to find gapups with subsequent bars that break to the upside (long trades), and gapdowns, with subsequent bars that break to the downside (short trades).
Thanks...Dan


Worden Trainer
Joined: 10/7/2004 Posts: 65,138

The RealCode was just checking for a gap in either direction instead of requiring a gap up for high(n) > high(2) and a gap down for lov(n) < low(2).
Please provide more than just a single example next time if this RealCode isn't doing what you want.
'******************************************************************
'*** StockFinder RealCode Indicator  Version 5.0 www.worden.com
'*** Copy and paste this header and code into StockFinder *********
'*** Indicator:New Code
'******************************************************************
Static BarCount As Single
Static Bar2High As Single
Static Bar2Low As Single
Static Output As Single
BarCount += 1
If isFirstBar Then
BarCount = Single.NaN
Bar2High = Single.NaN
Bar2Low = Single.NaN
Output = Single.NaN
Else If Price.DateValue.Day <> Price.DateValue(1).Day Then
If (Price.Low > Price.Close(1) OrElse _
Price.High < Price.Close(1)) Then
BarCount = 1
Else
BarCount = Single.NaN
End If
Bar2High = Single.NaN
Bar2Low = Single.NaN
Output = 0
Else If BarCount = 2 Then
If Price.High > Price.High(1) AndAlso _
Price.Low(1) > Price.Low Then
If Price.Low(1) > Price.Close(2) Then
Bar2High = Price.High
Else If Price.High(1) < Price.Close(2) Then
Bar2Low = Price.Low
End If
End If
Else If BarCount <= 15 Then
If Price.High > Bar2High Then
Output = 1 + BarCount / 100
Bar2High = Single.NaN
Bar2Low = Single.NaN
Else If Price.Low < Bar2Low Then
Output = 1  BarCount / 100
Bar2High = Single.NaN
Bar2Low = Single.NaN
End If
If BarCount = 15 Then
Bar2High = Single.NaN
Bar2Low = Single.NaN
End If
End If
Plot = Output
Bruce Personal Criteria Formulas TC2000 Support Articles


Registered User Joined: 1/14/2006 Posts: 436

Bruce
1. Something is still incorrect. Out of 6300 optionable stocks today, only 3 show as gapdowns: CSBR, ASSG, and NLY. However, none of them are gapdowns.
2. Is it possible to speed up the algorithm so that only the first bar is analyzed for stocks with no gapup or gapdown? Simply set Plot = 0 to for these, and it is not necessary to look at bars two through 15. Since a vast majority of stocks are not gapups or gapdowns, that should speed up the algorithm significantly.
Thanks .. have a great weekend.
Dan


Worden Trainer
Joined: 10/7/2004 Posts: 65,138

According to the definition you provided, "On the first bar, I just need to know if the gap is up or down compared to yesterdays close, there has to be a gap between yesterdays close and the low on gap up (or high on gap down) of the first bar.", CSBR and NLY are gap downs (ASSG does not exist).
CSBR: C1: 11.74 H: 11.70
NLY: C1: 10.13, H: 10.10
'******************************************************************
'*** StockFinder RealCode Indicator  Version 5.0 www.worden.com
'*** Copy and paste this header and code into StockFinder *********
'*** Indicator:New Code
'******************************************************************
Static BarCount As Integer
Static Bar2High As Single
Static Bar2Low As Single
Static Output As Single
Static GapUp As Boolean
Static GapDown As Boolean
Static Engulfing As Boolean
BarCount += 1
If isFirstBar Then
Output = Single.NaN
GapDown = False
GapUp = False
Engulfing = False
Else If Price.DateValue.Day <> Price.DateValue(1).Day Then
If Price.Low > Price.Close(1) Then
GapUp = True
BarCount = 1
Else If Price.High < Price.Close(1) Then
GapDown = True
BarCount = 1
End If
Output = 0
Else If BarCount = 2 AndAlso _
(GapUp = True OrElse _
GapDown = True) Then
If Price.High > Price.High(1) AndAlso _
Price.Low(1) > Price.Low Then
Engulfing = True
If GapUp = True Then
Bar2High = Price.High
Else If GapDown = True Then
Bar2Low = Price.Low
End If
Else
GapUp = False
GapDown = False
End If
Else If Engulfing = True Then
If GapUp = True AndAlso _
Price.High > Bar2High Then
Output = 1 + BarCount / 100
Bar2High = Single.NaN
GapUp = False
Engulfing = False
Else If GapDown = True AndAlso _
Price.Low < Bar2Low Then
Output = 1  BarCount / 100
Bar2Low = Single.NaN
GapDown = False
Engulfing = False
Else If BarCount = 15 Then
Bar2High = Single.NaN
Bar2Low = Single.NaN
GapUp = False
GapDown = False
Engulfing = False
End If
End If
Plot = Output
Bruce Personal Criteria Formulas TC2000 Support Articles


Registered User Joined: 1/14/2006 Posts: 436

Bruce  thank you  Dan


Worden Trainer
Joined: 10/7/2004 Posts: 65,138

You're welcome.
Bruce Personal Criteria Formulas TC2000 Support Articles


Guest1 