in Search

Unique collection of Mutitimeframe Functions

Last post 06-29-2006, 18:09 by stokkkid. 25 replies.
Page 1 of 2 (26 items)   1 2 Next >
Sort Posts: Previous Next
  •  11-17-2005, 14:29 11510

    Unique collection of Mutitimeframe Functions

    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
  •  11-17-2005, 16:32 11512 in reply to 11510

    Re: Unique collection of Mutitimeframe Functions

    Thanks Chris... This is fab...
    "It takes no more time to see the good side of life than it takes to see the bad."
    Jimmy Buffett
  •  11-17-2005, 17:14 11514 in reply to 11510

    IntraDay Higher Time FRames

    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
  •  11-17-2005, 17:46 11515 in reply to 11510

    Re: IntraDay Higher Time FRames

    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.
  •  11-18-2005, 0:28 11520 in reply to 11510

    Re: Unique collection of Mutitimeframe Functions

    chris3105:
    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:
    Plots the Calendar Week on a chart (ISO Standard)
    1) ExtFml( "TMW.CW")

    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.



    [quote user="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)

    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 '-)
    MetaStockTools.com
  •  11-18-2005, 13:48 11544 in reply to 11510

    Re: Re: Unique collection of Mutitimeframe Functions

    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.
  •  11-18-2005, 16:20 11548 in reply to 11510

    Re: Re: Unique collection of Mutitimeframe Functions

    @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
  •  11-18-2005, 18:57 11554 in reply to 11510

    Higher Time Frames Indicators

    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
  •  11-18-2005, 22:06 11571 in reply to 11510

    Re:

    chris3105:
    Not knowing me under my username means not, that I’m a MetaStock newbie.

    So, why hide your real name/details?


    The current plot of my Indictors has nothing to do with hindsight’s;

    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".


    In my next version I implement the ability to choose a delay

    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 '-)
    MetaStockTools.com
  •  11-18-2005, 22:47 11581 in reply to 11510

    Re: Re:

    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
    My Site
  •  11-28-2005, 22:30 12004 in reply to 11510

    Re: Re:

    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
  •  11-29-2005, 14:07 12047 in reply to 11510

    Re: Re:

    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
  •  12-06-2005, 18:14 12456 in reply to 11510

    Re: Re:

    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
  •  12-09-2005, 4:54 12644 in reply to 11510

    Incomplete FLexCreate/FlexLocalize Functionality

    chris3105:

    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
  •  12-09-2005, 8:41 12649 in reply to 11510

    Re: Incomplete FLexCreate/FlexLocalize Functionality

    @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
  •  12-09-2005, 11:00 12651 in reply to 11510

    Re: Incomplete FLexCreate/FlexLocalize Functionality

    @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
  •  12-09-2005, 21:24 12680 in reply to 11510

    FlexCreate/FlexLocalize

    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
  •  01-06-2006, 16:52 13650 in reply to 11510

    Re: FlexCreate/FlexLocalize

    Hi,

    GREAT JOB !!!

    Where can I find these custom dlls ?

    Tia
  •  01-06-2006, 18:12 13653 in reply to 11510

    Re: FlexCreate/FlexLocalize

  •  01-07-2006, 16:21 13672 in reply to 11510

    Re:

    g_stockman:


    Dear g_stockman,

    I can't find the TMW dll that Chris has mentioned..... is this dll named differently?

    Gary
  •  01-07-2006, 20:14 13678 in reply to 11510

    Re: Re:

    Hey Gary-

    Indeed, it appears to be missing in action. Not sure how that happened, so before I make an error I am checking with Chris for permission to repost his original work. Standby...
    Traders' Consortium
  •  01-08-2006, 17:46 13701 in reply to 11510

    Re: Re:

    Ok,

    it seems that the DLL has vanished :D

    Here's the latest version again.
  •  01-08-2006, 18:05 13702 in reply to 11510

    Re: Re:

    Thanks Chris! I'll get this added to the d/l section.
    Traders' Consortium
  •  01-09-2006, 10:56 13719 in reply to 11510

    Re: Re:

    THANKS !!! =D> =D> =D> =D>

    By the way chris3105, I use the "Typical Price" in order to calculate the Bollinger Bands, bandwidth and so on... (as John Bollinger recommends)

    Do I have to mix the "High" "Low" "Close" (i.e (H+L+C)/3 ) to get right results or is there another workaround ?

    Thanks in advance for your enlightenments :wink:
    Regards
  •  01-09-2006, 12:00 13720 in reply to 11510

    Re: Re:

    This looks good. Thanks Chris, this could very well meet a long wished feature of MS.

    I will have a play =)

    It may be worthwhile including a readme as part of the zip file, as it took abit of reading of the tread to see how to actually use it following its development.

    regards

    Dave
Page 1 of 2 (26 items)   1 2 Next >
View as RSS news feed in XML