Welcome Guest, please sign in to participate in a discussion. | Search | Active Topics | |
Administration
Joined: 9/18/2004 Posts: 3,522
|
This quick run down of the new PriceData function will get you started before we get a chance to update the documentation.
What is it: A new function call to get pricing data for any symbol and/or timeframe
Why you would use it: Comparison vs another symbol or timeframe.
Basic Example: This example simply plots the QQQQ for the charts selected bar interval
'|******************************************************************
'|*** StockFinder RealCode Indicator - Version 4.9 www.worden.com
'|*** Copy and paste this header and code into StockFinder *********
'|*** Indicator:Simple Pricing Data
'|******************************************************************
Static customSymbol As PriceScripting
If isFirstBar Then
customSymbol = PriceData("QQQQ")
End If
plot = customSymbol.value
Dynamic Symbol (Set the symbol from the indicator editor): This example plots the close value for the selected symbol from the indicator editor (defaults to dj-30) for the charts selected bar interval.
'|******************************************************************
'|*** StockFinder RealCode Indicator - Version 4.9 www.worden.com
'|*** Copy and paste this header and code into StockFinder *********
'|*** Indicator:My Indicator
'|******************************************************************
'# sym = userinput.string = dj-30
Static customSymbol As PriceScripting
If isFirstBar Then
customSymbol = PriceData(sym)
End If
plot = customSymbol.value
Custom Bar Interval (5 Minute in example): This example expands upon the above and plots the 5 minute bar interval
'|******************************************************************
'|*** StockFinder RealCode Indicator - Version 4.9 www.worden.com
'|*** Copy and paste this header and code into StockFinder *********
'|*** Indicator:My Indicator
'|******************************************************************
'# sym = userinput.string = dj-30
Static customSymbol As PriceScripting
If isFirstBar Then
Dim tf As New MinuteTimeFrameProvider
tf.NumMins = 5
customSymbol = PriceData(sym, tf)
End If
plot = customSymbol.value
More Notes:
Each of these examples creates a PriceScripting object (defined as a static variable). The price scripting object is the same as the built in Price object, which allows you to call all the methods (netchange/percent change) and child calculations (AVG, STOC) that are available to price. Additionally, this object is interpolated for the current bar. This means the bars will match up when mixing bar intervals and when doing lookback operations.
Ken Gilb (Kuf) Chief Software Engineer - Worden Brothers Inc. Try/Catch - My RealCode Blog
|
|
Platinum Customer
Joined: 7/16/2009 Posts: 411
|
WOW !!! ...
Just tried it, and it's mind blowing !
IMO this is one of the best SF5 new features, if not the best one.
One quick question:
I used it to plot moving averages, using AVG() method. Is there a way to plot Bollinger bands ?
Thank you
|
|
Registered User Joined: 11/20/2004 Posts: 401
|
When I use the following code to create a real code indicator
'# sym = userinput.string = dj-30
Static customSymbol As PriceScripting
If isFirstBar Then
customSymbol = PriceData(sym)
End If
plot = customSymbol.value
everything on the chart and volume pane disappears when I click on apply. What am I doing wrong.
|
|
Registered User Joined: 11/20/2004 Posts: 401
|
Still blanks out price history and indicator plots if I use this code.
|
|
Administration
Joined: 9/30/2004 Posts: 9,187
|
Must be a bug. It's been reported to development.
|
|
Administration
Joined: 9/18/2004 Posts: 3,522
|
This has been fixed in 179.
Ken Gilb (Kuf) Chief Software Engineer - Worden Brothers Inc. Try/Catch - My RealCode Blog
|
|
Registered User Joined: 10/7/2004 Posts: 886
|
I'm still experiencing the problem in 178.
No vertical scale, not plots.
Only way to get plots back is closing SF and re-starting.
Bob
|
|
Administration
Joined: 9/18/2004 Posts: 3,522
|
Yes this has been fixed in 179. Can you tell me if you get this same behavior in 179?
Ken Gilb (Kuf) Chief Software Engineer - Worden Brothers Inc. Try/Catch - My RealCode Blog
|
|
Registered User Joined: 10/7/2004 Posts: 886
|
I tried the first example and it's working fine.
Bob
|
|
Registered User Joined: 10/7/2004 Posts: 886
|
The second two examples appear to be fine as well.
Bob
|
|
Registered User Joined: 11/20/2004 Posts: 401
|
I tried writing this in the Class tab with AutoLoop = False like this:
Sub New
AutoLoop = False
End Sub
Public Overrides function Plot() as System.Single
'******************************
'* Relative Strength To Index *
'******************************
'# sym = userinput.string = SP-500
Dim CustomSymbol As PriceScripting
For i As Integer = 0 To Price.Bar.Count - 1
If i = 1 Then
CustomSymbol = PriceData(sym)
End If
Dim RS As Single = Price.Bar.Value(i) / CustomSymbol.Bar.Value(i)
AddToOutput(Price.Bar.DateValue(i), RS)
Next
End Function
I get no plot however. What must I change to get it to work?
|
|
Registered User Joined: 12/31/2005 Posts: 2,499
|
This could be relly cool. Using autoloop=False and a string of multiple symbols one could compose a survey and then for each symbol plot using the survey value information. For example daily rank or correlation or whatever...
A very very rough sketch of the idea.....
Sub New
autoloop = False
End Sub
Public Overrides function Plot() as System.Single
'|******************************************************************
'|*** StockFinder RealCode Indicator - Version 4.9 www.worden.com
'|*** Copy and paste this header and code into StockFinder *********
'|*** Indicator:symbol list example
'|******************************************************************
'# symbolStrs = userinput.string = "IBM,INTC,HPQ"
Static symbols() as string
Dim sym As String
Static startedYet As Boolean
Static customSymbol As priceScripting
Static surveyInfo() as something
If Not startedYet Then
'
' compose the survey information once at the start
'
symbols = microsoft.visualbasic.split(symbolStrs, ",")
For Each sym In symbols
customSymbol = PriceData(sym)
showmessage("=>" & customsymbol.symbol & "<=" & " sym=" & sym & _
" count =" & customsymbol.count & _
" Open(1)=" & customsymbol.bar.openvalue(1))
For I As Integer = 0 To customsymbol.count - 1
'
' Do whatever survey composition and have it available for each symbol
'
...... customsymbol.bar.openvalue(i) .....
Next I
Next
startedYet = True
End If
'
' do normal autoloop= false plot processing here
' by adding references to the survey info composed above
' in the code below
'
For i As Integer = 0 To price.count -1
MyBase.AddToOutput(price.bar.datevalue(i), _
price.bar.OpenValue(i), _
price.bar.highValue(i), _
price.bar.lowvalue(i),
price.bar.value(i))
Next
end function
end class
A couple comments...
1. a minor bug: customSymbol.symboll returns an empty string
2. as some point it sure would be nice to have access to the watchlist symbols so passing in the symbol list could be replaced with referencing the watchlist symbols
|
|
Administration
Joined: 9/18/2004 Posts: 3,522
|
You could acheive number 2 by creating the survey calc in it's own indicator and then making a market index out of it. In fact that would be the preferrable method.
Ken Gilb (Kuf) Chief Software Engineer - Worden Brothers Inc. Try/Catch - My RealCode Blog
|
|
Gold Customer
Joined: 12/30/2004 Posts: 29
|
How do I get BackScanner to buy inside the signal bar? If my signal is based on the high or low of the previous bar how do I tell it to buy or sell at that price and have it trade 'inside' the signal bar?
|
|
Gold Customer
Joined: 12/30/2004 Posts: 29
|
How do I reference monthly or quarterly data from a daily or weekly chart?
|
|
Worden Trainer
Joined: 10/7/2004 Posts: 65,138
|
A trade in BackScanner can only be executed on the Open, High, Low, Close or midpoint of the bar specified in the BackScanner Rule. It is not possible to executue the trade at any other point in the bar.
The following RealCode demonstrates referencing Monthly Prices:
'|******************************************************************
'|*** StockFinder RealCode Indicator - Version 5.0 www.worden.com
'|*** Copy and paste this header and code into StockFinder *********
'|*** Indicator:Monthly Price
'|******************************************************************
Static customSymbol As PriceScripting
If isFirstBar Then
Dim tf As New MonthlyTimeFrameProvider
tf.NumMonths = 1
customSymbol = PriceData(CurrentSymbol, tf)
End If
OpenValue = customSymbol.Open
HighValue = customSymbol.High
LowValue = customSymbol.Low
Plot = customSymbol.Last
The following RealCode demonstrates referencing Quarterly Prices:
'|******************************************************************
'|*** StockFinder RealCode Indicator - Version 5.0 www.worden.com
'|*** Copy and paste this header and code into StockFinder *********
'|*** Indicator:Quarterly Price
'|******************************************************************
Static customSymbol As PriceScripting
If isFirstBar Then
Dim tf As New MonthlyTimeFrameProvider
tf.NumMonths = 3
customSymbol = PriceData(CurrentSymbol, tf)
End If
OpenValue = customSymbol.Open
HighValue = customSymbol.High
LowValue = customSymbol.Low
Plot = customSymbol.Last
-Bruce Personal Criteria Formulas TC2000 Support Articles
|
|
Registered User Joined: 5/5/2010 Posts: 185
|
How can i rewrite a price/volume indicator assumeing above code (dynamic symbol from Kuf) is valid, no timeframe?
|
|
Registered User Joined: 5/5/2010 Posts: 185
|
never mind.
|
|
Guest-1 |