logo
Welcome Guest! To enable all features please Login or Register.

Notification

Icon
Error

2 Pages12>
Options
Go to last post Go to first unread
chris3105  
#1 Posted : Thursday, November 17, 2005 2:29:01 PM(UTC)
chris3105

Rank: Advanced Member

Groups: Registered, Registered Users
Joined: 11/11/2005(UTC)
Posts: 37

I’m proud to present you a unique collection of Multitimeframe Functions for MetaStock.
Plots the Calendar Week on a chart (ISO Standard) 1) ExtFml( "TMW.CW”) Sample Indicator (copy in Indictor Builder) ExtFml( "TMW.CW”)
For the following Indicators Number is Open = 0 High = 1 Low = 2 Close = 3
2) Daily O,H,L,C for Intraday Charts ExtFml( "TMW.Daily",Number) 3) Weekly O,H,L,C for Intraday and Daily Charts ExtFml( "TMW.Weekly", Number) 4) Monthly O,H,L,C for Daily and Weekly Charts ExtFml( "TMW.Monthy", Number) Sample Indicator (copy in Indictor Builder), plot the weekly High, Low, Close and Open on a Intraday Chart O1:= ExtFml( "TMW.Daily",0) H1:= ExtFml( "TMW.Daily",1) L1:= ExtFml( "TMW.Daily",2) C1:= ExtFml( "TMW.Daily",3) O1;H1;L1;C1
5) Create Daily Data for a Data Array ExtFml( "TMW.DailyCreate", Number) 6) Create weekly Data for a Data Array ExtFml( "TMW.WeeklyCreate", Number) 7) Create monthly Data for a Data Array ExtFml( "TMW.MonthylyCreate", Number) Sample Indicator (copy in Indictor Builder), plots a weekly Close Chart on a Daily Chart (see Example S&P 500) ExtFml( "TMW.WeeklyCreate", 3) Hints: You can use Build in Indictors on these Indicators which accept a P Variable The number of bars load must be about 5 times higher on a weekly and 12 times higher on a monthly plot by plotting on daily Chart You can not use this Indicator in the Systemtester, because the Dates in a weekly plot are not the Originals.
If you want to use a weekly/daily/monthly Indicator in the Systemtester, want to create more complex Indictors or you want to see a constant value for the weekly Indicator in the daily Chart, you must use these Indicators: 8) Plots a daily DataArray from MonthlyCreate in a lower timeframe ExtFml( "TMW.DailyLocalize", Number) 9) Plots a weekly DataArray from MonthlyCreate in a lower timeframe ExtFml( "TMW. WeeklyLocalize", Number) 10) Plots a monthly DataArray from MonthlyCreate in a lower timeframe ExtFml( "TMW.MonthylyLocalize", Number) Sample 1: {Create Data for Weekly High, Low, Close) TDLow:=ExtFml( "TMW.WeeklyCreate", 2) ; TDHigh:=ExtFml( "TMW.WeeklyCreate", 1) ; TDClose:=ExtFml( "TMW.WeeklyCreate", 3) ; {Fill in the variables in the Stochastic formula} A:=100*(Mov(Mov((TDClose-LLV(TDLow,14)),3,E),3,E) / Mov(Mov((HHV(TDHigh,14) - LLV(TDLow,14)),3,E),3,E)); {Plot data} ExtFml( "TMW.WeeklyLocalize", a) Sample: {Create data for weekly High} TDHigh:=ExtFml( "TMW.WeeklyCreate",1); {Plot data} ExtFml( "TMW.WeeklyLocalize",TDHigh) Hint: This could also be done with the formula ExtFml( "TMW.Weekly",1)
The values of the Indicators (example weekly) are absolute identical to original MetaStock (Weekly) Charts. If these Indicators work correct, I’ll create Indicators with a flexible Timeframe, which multiplies a given Timeframe by a constant number. To use the functions unzip the File and put the DLL it in the folder C:\\...\\Equis\\MetaStock\\External Function DLLs If you have any questions, please put them in this thread. Any comments and suggestions are welcome. Chris
Marilyn  
#2 Posted : Thursday, November 17, 2005 4:32:59 PM(UTC)
Marilyn

Rank: Advanced Member

Groups: Registered, Registered Users, Subscribers
Joined: 9/10/2004(UTC)
Posts: 863
Location: Salt Lake City, UT

Thanks Chris... This is fab...
guara_riua  
#3 Posted : Thursday, November 17, 2005 5:14:23 PM(UTC)
guara_riua

Rank: Advanced Member

Groups: Registered, Registered Users
Joined: 4/24/2005(UTC)
Posts: 77
Location: Canada

Chris3105 Congratulations for these amazing and useful external functions. I am sure we will see a lot of contributions from traders that will use them. But for FOREX traders the IntraDay higher time frames are most important. Will you consider to add IntraDay support to this excellent DLL? (You have mentioned already a "Flexible Time Frame": I.E. to support time frames from 1min and up to 1/2/4 and 8 hrs.) Also will be extremely beneficial to be able to plot daily indicators into an IntraDay chart (i.e. 1/2/4 and 8 hrs) or, alternatively a higher IntraDay time frame indicator (i.e. 3x/4x/12x) into lower IntraDay time frame. I believe it shouldn't be very difficult to do it as long as the higher time frame function support Time Factor Multiplication parameter as an input to your function. Besides, most of the work is already done. I see also that the use of your external functions is very similar with the equivalent PP+ TdataCreate/TDataLocalize. I am not clear thou if your external functions are able to "Localize" the correct output from other DLL's: ====== Start Example Section =========== {Correct Sample} TDLow:=ExtFml( "TMW.WeeklyCreate", 2) ; TDHigh:=ExtFml( "TMW.WeeklyCreate", 1) ; MPWeekly:=(TDLow+TDHigh)/2; InstTrendWeekly:=ExtFml(ADSI.ITrend,MPWeekly); ExtFml("TMW.WeeklyLocalize",InstTrendWeekly); In the example above, the output of the InstTrendWeekly is computed each time and only once, for every weekly bar.
{Wrong Sample} TDLow:=ExtFml( "TMW.WeeklyCreate", 2) ; TDHigh:=ExtFml( "TMW.WeeklyCreate", 1) ; MPWeekly:=(TDLow+TDHigh)/2; a:=ExtFml("TMW.WeeklyLocalize",MPWeekly); InstTrendWeekly:=ExtFml(ADSI.ITrend,a); In this new example, the "InstTrendWeekly" output is computed for every single bar in the current time frame while using the data array from the higher time frame. The tricky part of the functions supporting higher time frame data array processing is to build correctly the new higher time frame Data Array and to process the indicator that is using it with a "slower clock", that is the current time frame clock (current chart bar by bar) a divided by the TimeFactor. Also, the output of this higher time frame indicator must be ploted only once for every single "TimeFactor" bars multiple (i.e every 4 bars for a TimeFactor=4) in the current time frame. In this way there will be no DataArray compression showing for the higher time frame indicator and the Date/Time correspondence between the current time frame and the higher time frame will be preserved for the same chart (the time scale is preserved). ======= End example section ============ I don't think I'll make a wrong assumption when I'll say that the Forex traders are looking at your DLL with a great hope. If you will decide to implement the IntraDay support for your DLL, you can test it with the test file I have posted before ("SineSumA1.CSV") that is a 1 min data array of 3 weighted sine waves (see my "PP+ Alert = ..." post). Anyway, I am encouraging you to test your functions with a pure mathematical stimulus at first. This way you can make sure there are not functional bugs, or you can see them before hand. The real life price data arrays may hide some functional bugs if used for testing in the development stage. Great work! And congratulations again for your dedication. Regards Guara
mstt  
#4 Posted : Thursday, November 17, 2005 5:46:01 PM(UTC)
mstt

Rank: Advanced Member

Groups: Registered, Registered Users, Subscribers
Joined: 7/25/2005(UTC)
Posts: 1,042

Was thanked: 57 time(s) in 54 post(s)
Chris Errors are reported when daily signals are plotted on daily charts and weekly signals are plotted on weekly charts, etc. <New Indicator> O1:=ExtFml("TMW.WeeklyLocalize",0); H1:=ExtFml("TMW.WeeklyLocalize",1); L1:=ExtFml("TMW.WeeklyLocalize",2); C1:=ExtFml("TMW.WeeklyLocalize",3); O1;H1;L1;C1; This plots 4 horizontal lines of 0, 1, 2, and 3 on a daily chart. <New Indicator> O1:=ExtFml("TMW.Weekly",0); H1:=ExtFml("TMW.Weekly",1); L1:=ExtFml("TMW.Weekly",2); C1:=ExtFml("TMW.Weekly",3); O1;H1;L1;C1; The first indicator plots future values for Monday to Thursday, which is interesting visually, and virtually impossible to do in MFL, but not particularly practical in terms of testing systems. My assumption was that the first example would give TRUE weekly values on EOD charts (on and after the Friday Bar). I'm not sure if I should be a little annoyed or very flattered that you seem to have picked up some ideas from the metastocktips website (and also Jose's metastocktools websitesite) and decided to improve upon them. First there was an equity indicator following in the footsteps of Trade Equity, and now, longer timeframe and compressed timeframe indicators. If these bring benefits for MetaStock users then I'm all for them, so keep up the good work, but the job is far from complete yet. Roy PS I haven't looked at your equity indicator yet, but I do want to give it the "once over" when I have time.
Jose  
#5 Posted : Friday, November 18, 2005 12:28:18 AM(UTC)
Jose

Rank: Advanced Member

Groups: Registered, Registered Users
Joined: 1/19/2005(UTC)
Posts: 1,065
Location: Koh Pha-Ngan, Earth

Was thanked: 2 time(s) in 2 post(s)
chris3105 wrote:
I’m proud to present you a unique collection of Multitimeframe Functions for MetaStock.
Any process that has already been coded in MetaStock Formula Language (MSFL), by definition cannot be considered unique. 5) Create Daily Data for a Data Array ExtFml( "TMW.DailyCreate", Number) 6) Create weekly Data for a Data Array ExtFml( "TMW.WeeklyCreate", Number) 7) Create monthly Data for a Data Array ExtFml( "TMW.MonthylyCreate", Number) These functions don't work in my copy of MetaStock Pro v8.01 [code:1:7d711fd212]Plots the Calendar Week on a chart (ISO Standard) 1) ExtFml( "TMW.CW")[/code:1:7d711fd212] This is plotting an erroneous week count in some years, e.g.: 2004: starts the week count at 2 instead of 1. 1996/2001/2002: counts the last week in that year as week 1, instead of 53 (some years have an additional partial week). 1998: starts the week count at 53, then lags behind 1 week for the rest of the year. Compare the DLL's plot to an accurate Week of Year counter indicator using plain MSFL.
TMW.Daily",Number) 3) Weekly O,H,L,C for Intraday and Daily Charts ExtFml( "TMW.Weekly", Number) 4) Monthly O,H,L,C for Daily and Weekly Charts ExtFml( "TMW.Monthy", Number)[/quote wrote:
These functions plot OHLC values before they actually become available. Using hindsight in this function means that these values will shift in real time, and will also produce unrealistic expectations when backtesting. Refer to the ZigZag function for more on dynamic/hindsight plots. Also compare the DLL's weekly function to an accurate Weekly OHLC using plain MSFL. This last point illustrates the danger in the inherent lack of transparency in external formulae - it's not easy to be sure that the function is not using hindsight in its internal process. jose '-)
chris3105  
#6 Posted : Friday, November 18, 2005 1:48:26 PM(UTC)
chris3105

Rank: Advanced Member

Groups: Registered, Registered Users
Joined: 11/11/2005(UTC)
Posts: 37

Hello, I’ve made some corrections in the DLL: The Calendar Week Counter is now correct (thanks to Jose), I just had a little byte offset problem. Restrictions (thanks to Roy): Daily Timeframe only allowed on Intraday (no Tick) Weekly Timeframe only allowed on Intraday (no Tick) and Daily Data Monthly Timeframe only allowed on Daily and Weekly Data Functions removed: DailyCreate (replaced by ArrayCreate) DailyLocalize (replaced by ArrayLocalize) WeeklyCreate (replaced by ArrayCreate) WeeklyLocalize (replaced by ArrayLocalize) MonthlyCreate (replaced by ArrayCreate) MonthlyLocalize (replaced by ArrayLocalize) Functions added ExtFml( "TMW.DOY") Plots the Calendar Day of the Year, no input required ExtFml( "TMW.ArrayCreate", Price Field 0(Open) 1(High) 2(Low) 3(Close), Timeframe: D(aily) W(eekly) M(onthly)) ExtFml( "TMW.ArrayLocalize", Data Array, Timeframe: D(aily) W(eekly) M(onthly)) Samples: {Calendar Day of the Year} ExtFml( "TMW.DOY") {9 Day Weekly Moving Average on a Daily Chart} TDClose:=ExtFml( "TMW.ArrayCreate",3,"w"); a:=Mov(TDClose,9,E); ExtFml( "TMW.ArrayLocalize",a,"w") {Weekly Stochastic on a Daily Chart) TDHigh:=ExtFml( "TMW.ArrayCreate", 1,"w") ; TDClose:=ExtFml( "TMW.ArrayCreate", 3,"w") ; TDLow:=ExtFml( "TMW.ArrayCreate", 2,"w") ; A:=100*(Mov(Mov((TDClose-LLV(TDLow,14)),3,E),3,E) / Mov(Mov((HHV(TDHigh,14) - LLV(TDLow,14)),3,E),3,E)); ExtFml( "TMW.ArrayLocalize", a,"w") {Weekly High on Daily Chart} TDClose:=ExtFml( "TMW.ArrayCreate",1,"w"); a:=Mov(TDClose,9,E); ExtFml( "TMW.ArrayLocalize",a,"w") {Weekly Close Line} ExtFml( "TMW.Weekly",3) All functions are tested on MS Pro 9.1 and MS Pro 8.01. Chris P.S: my answers to guara_riua, Roy and Jose in some minutes.
chris3105  
#7 Posted : Friday, November 18, 2005 4:20:32 PM(UTC)
chris3105

Rank: Advanced Member

Groups: Registered, Registered Users
Joined: 11/11/2005(UTC)
Posts: 37

@guara_riua. My current algorithms work this way (simple description): Example for lower time frame Daily und higher time frame weekly. I compress the lower time frame to the weekly time frame. This means, one Week is represented by only one Data Point. So, if you choose the Close data array, the weekly data array is only represented by one close data point. The plot on the chart is 100% identical to a line chart, but the corresponding dates are totally different, because it's plotted on a daily chart. One Daily bar = one Weekly data point. The localize functions works in the opposite way: Every bar on a daily chart has multiple identical weekly plots. One week (normally 5 bars) = one (identical) Weekly data point. My plan is to create a totally flexible multiple Timeframe Indicator, where you can enter any number. The lower time frame is multiplied by this value. So if you like, you can easily look at a 1min, a 37min and an 89 min chart in one window. I’m currently working on a concept, but it’s a little bit tricky. The creation is not the problem, but the localization is difficult, because on Intraday data there’s no clear reference point where to start or to stop, the holiday and weekend Problem, … Maybe for FOREX it’s no so tricky, if I start every trading week on Sunday 22:00 and ends it on Friday 23:00 and ignores all holidays. Maybe you have another idea or concept. By the way, the inspiration for these Indicators comes from PPP, which I've bought some years ago and like very much. @MSST, You should neither be annoyed or shattered. Not knowing me under my username means not, that I’m a MetaStock newbie. I use MS for more than 7 years and I think, there's not so much, I can’t realize with the common Formula language of MS. You (not personally) are well known to me and I sent many of my customers to your Internet Site and/or recommend reading your newsletter to them. I worked with “your” weekly Indictors and I spent a lot of time with the Trade Equity set and I like both tools very much. One reason for writing the Equity function and the weekly Indicators was that I spent uncountable hours on workshops to explain these Indictors to my customers. The reason for this is that the usage is too complicated for the “normal” user. “My” Equity function is fast and very simple to use, you enter some parameters in one Dialog and you can get a lot of System Information and a plot of the equity on a chart. The function is not ready, it’s a first try. Characteristic numbers can be added or removed, the layout can be changed. The only thing I need is the input of some users. If you want to have another output, other System characteristic numbers or anything else, you can tell me and I try to implement this. The DLL is a private project of my own and there’s no plan to sell or distribute the DLL in a commercial form. I don’t want to steel you any customer and as I told in another thread: I’ve no problems in sharing my code, if the equity function is ready. My only intention is to give MS users a simple method to get some information on a Trading System and a plot of the equity. If they need a sophisticated test of a System they shall you the Enhanced System tester, TradeSim or what ever they want. Okay? @Jose. Unique is the compressed Monthly/Weekly/Daily on a lower Timeframe, no other software I knew, has this feature. The Calendar function now is correct, thanks for the hint. Errors are human; please remember of your various versions of tools, which had in the first version some errors. The current plot of my Indictors has nothing to do with hindsight’s; they represent the actual value of the chosen higher Timeframe. If you look today at a Weekly Chart, you can not say, this is not a correct chart. But you’re right: Every signal on every Timeframe is only valid, after the bar has ended. In my next version I implement the ability to choose a delay, so when using the indictor in a System Test, it generates only a signal on the last day of the week. Chris
guara_riua  
#8 Posted : Friday, November 18, 2005 6:57:46 PM(UTC)
guara_riua

Rank: Advanced Member

Groups: Registered, Registered Users
Joined: 4/24/2005(UTC)
Posts: 77
Location: Canada

Chris3105 Thank you for the detailed response. However, you haven't speciffied if your DLL will support Higher Time Frame Indicators from MS or, alterantively, from other DLL's. A correct plot for a higher time frame indicator I believe it requires to compute/return its function's output from the higher time frame data array to the current time frame and only once for every N bars in the current time frame (where N is the Time Factor multiplier). PP+ is doing just that, but I don't know anything about the algorithm. I believe that is not even required to re-implement/re-calculate the indicators values in your DLL but to pass instead the price data array values from the higher time frame to the external DLL function that was called from the custom indicator in MS at a N times slower pace. (pls see the "Correct" and the "Wrong" examples from my previous reply). From this perspective, PP+ looks to work almost OK, but from some tests I've ran with TDataCreate/TDataLocalize looks there are some discontinuities for these functions output (see the file "PPP_TF_Plots.doc" from the "ADSI Users = Stimulus Files" post). (Looks there is a problem exactly with the "Localize" function because the biggest discontinuities are showing always between 00:44:00 AM and 1:34:00 AM on EACH Monday, every week!) I hope your implementation will be better than PP+ TDataCreate/TDataLocalize. Regarding FOREX trading week, it starts on Sunday@2:00PM and ends on Friday@ 5:00 PM. I wish you good luck, patience and success to finish this promising DLL. Regards Guara
Jose  
#9 Posted : Friday, November 18, 2005 10:06:33 PM(UTC)
Jose

Rank: Advanced Member

Groups: Registered, Registered Users
Joined: 1/19/2005(UTC)
Posts: 1,065
Location: Koh Pha-Ngan, Earth

Was thanked: 2 time(s) in 2 post(s)
chris3105 wrote:
Not knowing me under my username means not, that I’m a MetaStock newbie.
So, why hide your real name/details? [color=green:b17980dd67]The current plot of my Indictors has nothing to do with hindsight’s;[/color] Weekly values are plotted by this dll in retrospect on daily charts, before they become available in real-time (i.e. Friday's Close on previous Mon~Thu). This is process is called "hindsight". [color=green:b17980dd67]In my next version I implement the ability to choose a delay[/color] It would be better if there was no hindsight to delay in the first place. Overall, I think that this multi-timeframe external toolkit has a lot of potential, as long as you are prepared to support it. Don't be afraid to display some of your details (name/website) - it will add credibility to this useful tool. jose '-)
Patrick  
#10 Posted : Friday, November 18, 2005 10:47:57 PM(UTC)
Patrick

Rank: Advanced Member

Groups: Registered, Registered Users, Subscribers
Joined: 9/8/2004(UTC)
Posts: 2,266

Was thanked: 1 time(s) in 1 post(s)
Damn guys you are kinda picky ... :lol: Thanks Chris for you effort, I can't believe you are doing the work so fast :eek: ... Insomnia problems? :lol: :P Anyways great job and I hope to see more :D
chris3105  
#11 Posted : Monday, November 28, 2005 10:30:33 PM(UTC)
chris3105

Rank: Advanced Member

Groups: Registered, Registered Users
Joined: 11/11/2005(UTC)
Posts: 37

Hello. After some very hard days with MSX here's the newest version of Multiple Time functions. Changes: (old) ExtFml( "TMW.ArrayCreate", Price Field 0(Open) 1(High) 2(Low) 3(Close), Timeframe: D(aily) W(eekly) M(onthly)) (Modified) ExtFml( "TMW.ArrayCreate", Price Field 0(Open) 1(High) 2(Low) 3(Close), Timeframe: D(aily) W(eekly) M(onthly), 0=Current (dynamic) 1=Previous) Removed: ExtFml( "TMW.Daily",Number) (replaced by TMW.OHLC) ExtFml( "TMW.Weekly", Number) (replaced by TMW.OHLC) ExtFml( "TMW.Monthy", Number) (replaced by TMW.OHLC) (new) ExtFml( "TMW.OHLC", Price Field 0(Open) 1(High) 2(Low) 3(Close), Timeframe: D(aily) W(eekly) M(onthly), 0=Current (dynamic) 1=Previous) New Function ExtFml( "TMW.FlexCreate", Multiplier for Timeframe, 0=Open 1=High 2=Low 3=Close, Delay: 0=Dynamic, 1=Delay) Flex Creates allows you to multiply any Intraday (no ticks) or Daily Timeframe with a constant number. A Multiplier 10 on a 60 Min Bar creates a 600 Min bar, a Multiplier of 89 on a 2 Min Bar generates a 198 Min Bar. Samples: Daily High with delayed last bar ExtFml( "TMW.OHLC", 3, "d", 1) Weekly High with dynamic last bar ExtFml( "TMW.OHLC", 3, "w", 0) Flex Create with Multiyplier 10 on Close with delayed Last Bar ExtFml( "TMW.FlexCreate",5,3,1); Flex Create with Multiyplier 10 on High with dynamic Last Bar ExtFml( "TMW.FlexCreate",10,1,0); Array Localize Daily High delayed TD:=ExtFml( "TMW.ArrayCreate", 3, "d", 0); td Array Create Daily High dynamic TD2:=ExtFml( "TMW.ArrayCreate", 3, "d", 1); ExtFml( "TMW.ArrayLocalize", TD2, "d") Array Create Weekly High Dynamic last Bar TD:=ExtFml( "TMW.ArrayCreate", 1, "w", 0); ExtFml( "TMW.ArrayLocalize", TD, "w"); Array Localize Weekly High delayed TD2:=ExtFml( "TMW.ArrayCreate", 1, "w", 1); ExtFml( "TMW.ArrayLocalize", TD2, "w") This version works fine with MS Pro 9.1 and has great problems and crashes with 8.01. I don't know if this depends on the MS Version or a missing file, but I hope to solve the problem fast. The next version (I hope) has a localize function for FlexCreate and a better support/stable for other MS Versions. @Jose, I send you an email. @guara_riua, if my version is stable, I test the usage of higher Time Fame Indicators of MS and other DLL's. Have a lot of fun Chris
chris3105  
#12 Posted : Tuesday, November 29, 2005 2:07:58 PM(UTC)
chris3105

Rank: Advanced Member

Groups: Registered, Registered Users
Joined: 11/11/2005(UTC)
Posts: 37

Hello. I found a serious bug in the ArrayCreate function, so here's a fixed Version of the DLL which works fine on MS9.1 and MS 8.01. All older versions will be deleted. Chris
chris3105  
#13 Posted : Tuesday, December 6, 2005 6:14:16 PM(UTC)
chris3105

Rank: Advanced Member

Groups: Registered, Registered Users
Joined: 11/11/2005(UTC)
Posts: 37

Hello, here's the latest version and I say, the results are (on my PC) very great. To get these good results, I had to create the logic and algorithms for the Flex Function totally new. My frustration while testing these functions was unbelievable. New/modified functions: ExtFml( "TMW.FlexCreate", Data Array, Price Field 0(Open) 1(High) 2(Low) 3(Close), Multiplier for Timeframe, Delay: 0=Dynamic, 1=Delay) This function has four input Parameters: 1) Data Array: Open, High, Low, Close or a function 2) Price Field (Number) : 0 = Open, 1= High, 2= Low, 3 = Close 3) Multiplier for Timeframe (Number) 4) (Number) Last bar Dynamic = 0, Last bar Delay = 1 By using this function on Daily and Intraday (no Tick) Bar, the data are compressed by the factor Multiplier, by using the function on a Tick Chart, the Multiplier is a factor for minutes. Examples: Simple Close of a two Bar Close Create:=ExtFml( "TMW.FlexCreate", C, 3,2,0); Create 20 Bar exp. Moving Average of a two Bar Close Create:=ExtFml( "TMW.FlexCreate", C, 3,2,0); Mov(Create,20,E) ExtFml( "TMW.FlexLocalize", Flex Array, Multiplier for Timeframe) This function has two input Parameters: 1) Flex Array: Result of the TMW.FlexCreate 2) Multiplier: Must be exact the same value as in TMW.FlexCreate. Examples: Create and Plot a two Bar Close Create:=ExtFml( "TMW.FlexCreate", C, 3,2,0); Localize:= ExtFml( "TMW.FlexLocalize", Create, 2); Localize Use with external Function Create:=ExtFml( "TMW.FlexCreate", C, 3,2,0); Localize:=ExtFml( "TMW.FlexLocalize", Create, 2); ASI:=ExtFml( "ASI.sma", Localize, 9); ASI Restriction/Limits: You can create on a intraday/daily Char any period, where: (Intervall * Multiplier )< 2359 480 Minute High Bar on a 60 Minute Chart: ExtFml( "TMW.FlexCreate", H, 1,8,0); 87 Minute High Bar on a 1 Minute Chart: ExtFml( "TMW.FlexCreate", H, 1,87,0); If you want not the High of the High, but the Close of the High: ExtFml( "TMW.FlexCreate", H, 3,87,0); Due to many problems with various MS Versions, I currently do not check, if you use a correct (Intraday, Daily) or an incorrect Time Frame (Weekly, Monthly, …) The version is tested with MS 8.01, MS 9.1 Pro. Please enjoy, test and give me some feedback :D Chris P.S: The old version will be removed from soon
guara_riua  
#14 Posted : Friday, December 9, 2005 4:54:16 AM(UTC)
guara_riua

Rank: Advanced Member

Groups: Registered, Registered Users
Joined: 4/24/2005(UTC)
Posts: 77
Location: Canada

chris3105 wrote:
Use with external Function Create:=ExtFml( "TMW.FlexCreate", C, 3,2,0); Localize:=ExtFml( "TMW.FlexLocalize", Create, 2); ASI:=ExtFml( "ASI.sma", Localize, 9); ASI
Chris It's an amazing work you started here! I believe many traders will have a good use for it when it will reach its final form. I have tried only the Intraday "FlexCreate/FlexLocalize" functions and I believe there is still some work necessary to be done to correct its functionality. Here is what I mean: According to your example, the "Created" Data Array (which can be any input, as I read it) computes the "N" input values from the current time frame into a single equivalent higher time frame corresponding value, where "N" is the time factor multiplication integer. However, after "Localizing" this value, you are using it as an input into a CURRENT Time Frame Function! So the end result is a CURRENT Time Frame Indicator's computed value of a higher time frame Input Data Array. I checked this against the PP+ TDataCreate/TDataLocalize and your function output is looking very much like the current time frame indicator output, not like a higher time frame indicator output from TDataLocalize. I belive the reason is the fact that "FlexLocalize" function is not calculating the indicator's value IN THE HIGHER TIME FRAME. See the difference between your function call and the PP+ function call: --------------PP+ Example ---------------- Create:=ExtFml( "PowerPivot.TDataCreate", 3, 4); {where 3=Close, 4=Time Factor Multiplier} ASI:=ExtFml( "ASI.SMA", Create, 20); {here the ASI.SMA output is used as an input for the higher time frame equivalent value} Localize:=ExtFml( "PowerPivot.TDataLocalize", ASI, 4, 0); {where ASI=the indicator value IN The Higher Time Frame, 4= Time Factor Multiplier, 0=Shift in Bars} Localize; {this is the CORRECT higher time frame Indicator's value} ------------ End PP+ Example ------------- I belive the fix shouldn't be too difficult to implement. The only difference is that the Indicator (in this case "ASI.SMA" ) should use the higher time frame input and only then it should be "Localized". I wish you success to finish this very promising DLL. Congrats again. Guara
chris3105  
#15 Posted : Friday, December 9, 2005 8:41:48 AM(UTC)
chris3105

Rank: Advanced Member

Groups: Registered, Registered Users
Joined: 11/11/2005(UTC)
Posts: 37

@guara_riua, thanks for your comments, but maybe I explained the usage of my DLL incorrect or you usage of the functions are not ok :D See the chart for details -- PP Excample -- Create:=ExtFml( "PowerPivots.TDataCreate", 3, 4); {where 3=Close, 4=Time Factor Multiplier} ASI:=ExtFml( "ASI.SMA", Create, 20); {here the ASI.SMA output is used as an input for the higher time frame equivalent value} Localize:=ExtFml( "PowerPivots.TDataLocalize", ASI, 4, 0); {where ASI=the indicator value IN The Higher Time Frame, 4= Time Factor Multiplier, 0=Shift in Bars} Localize; {this is the CORRECT higher time frame Indicator's value} -- corresponding TMW Excample -- Create:=ExtFml( "TMW.FlexCreate", C, 3,4,0); ASI:=ExtFml( "ASI.sma", Create, 20); Localize:=ExtFml( "TMW.FlexLocalize", asi, 4); Localize As you see, the results a nearly the same. Chris
chris3105  
#16 Posted : Friday, December 9, 2005 11:00:37 AM(UTC)
chris3105

Rank: Advanced Member

Groups: Registered, Registered Users
Joined: 11/11/2005(UTC)
Posts: 37

@guara_riua, one addition to my previous post. The result of the TMW ASI Chart on a 10 Min Chart of Microsoft was 25.37045, the result of the PP Excample was 25.36695. To find out, which value is correct, we apply the ASI Indicator directly on the calculated higher Time Frame. In my excample I choose a 10 Min Chart of Microsoft, the TMW has a Multiplier of 4 ==> Original Chart has to be a 40 minute Chart. Now use the original MS Chart in a 40 Min display and create a new Indicator: ASI:=ExtFml( "ASI.SMA", C, 20); ASI You see: TMW calculation has exact the same value as the original Chart. And the best thing is, you can use a strategic delay with the TMW functions :D Hope, your glad now :wink: Chris
guara_riua  
#17 Posted : Friday, December 9, 2005 9:24:26 PM(UTC)
guara_riua

Rank: Advanced Member

Groups: Registered, Registered Users
Joined: 4/24/2005(UTC)
Posts: 77
Location: Canada

Chris Everything works fine now. I have followed exactly your exmaple from Dec-6th from ASI.SMA that was a typo: FlexLocalize MUST be the last called function, in order for the plot to be correct. I have used also much more complex indicators (i.e. adaptive Fisher Transform, that uses the CyberCycle Period from ADSI package) to see how your Flex function perform. The results are quite similar with PP+, althou I found that PP+ are closer to the original indicator in the higher time frame. (i.e. the FlexLocalize values for a TimeFactor=4 on a 15min chart vs. the same indicator in a 1hr chart). The highest diference I saw was arround 0.32 for an indicator range of +/-5 and many time the diference in value compared with PP+ was at the 3rd decimal. Seems to me that your algorithm is more dynamic vs. PP+ and generating slightly higher values. Anyway, your efforts are very commendable and the Flex functions are quite good. Would be a good idea to provide a little bit more detailed explanation about their use. I.E for FlexCreate/FlexLocalize: - The 1st step is to "Create" the Price values in the higher time frame (OHLC) - Use any kind of indicator/external function that uses ONLY the values of the price created in the step above. - "Localize" the indicator output and plot it in the current time frame. Thanks again for this great utility Chris, and keep up with the good work! Guara
Imothep  
#18 Posted : Friday, January 6, 2006 4:52:36 PM(UTC)
Imothep

Rank: Member

Groups: Registered, Registered Users, Subscribers
Joined: 8/28/2005(UTC)
Posts: 25

Hi, GREAT JOB !!! Where can I find these custom dlls ? Tia
StorkBite  
#19 Posted : Friday, January 6, 2006 6:12:18 PM(UTC)
StorkBite

Rank: Advanced Member

Groups: Registered, Registered Users
Joined: 3/19/2005(UTC)
Posts: 3,003

Was thanked: 8 time(s) in 7 post(s)
garykong  
#20 Posted : Saturday, January 7, 2006 4:21:47 PM(UTC)
garykong

Rank: Advanced Member

Groups: Registered, Registered Users, Subscribers
Joined: 4/30/2005(UTC)
Posts: 112

g_stockman wrote:
http://forum.equis.com/drm_main.php?mode=drm_cat_view&cat=8stockman, I can't find the TMW dll that Chris has mentioned..... is this dll named differently? Gary
Users browsing this topic
2 Pages12>
Forum Jump  
You cannot post new topics in this forum.
You cannot reply to topics in this forum.
You cannot delete your posts in this forum.
You cannot edit your posts in this forum.
You cannot create polls in this forum.
You cannot vote in polls in this forum.