Help, Completely Baffled by this Indicator

Post Reply
mperk
Posts: 2
Joined: Wed Jul 11, 2012 4:15 am

Help, Completely Baffled by this Indicator

Post by mperk »

Hi Guys,

I'm completely baffled by this indicator. Have no clue on how to solve this. I reversed the CI_Buy and CI_Sell as I wanted 1 for a long and -1 for a short. This makes it easier to do a quick scan of the Global Variables (GV).

After studying it and seeing its quirks the Cycle Identifier when used with other supporting indicators would be fairly accurate if the following items could be fixed.

1 - Do not want a zero value sent to the GV. Upon system boot up the CI seems to default to 1 with the "if": & "GV" coding added at the end Unless the Trend was short only a few candles back. If the trend change is not within a few candles it always defaults to 1 at boot up. Due to this you must manually go into the GV and change the value where needed. Does not seem like much but, when trading 20 currency pairs it can be a hassle or a problem if the market is moving fast. Must reboot 2 times a day due to memory allocation issues with Empty4. If I don't the platform freezes. Have solved part of this problem by opening 10 platforms with the same account number.

2 - Would like it to hold the value of the trend to match that of the paint. The paint output is far more accurate then the numerical value sent to the GV. What seems to happen is the CI will paint and a coinciding value is sent to the GV or a value is sent before or after it paints. When the price moves a certain amount from the price value of the paint strike, not a whole lot, the GV value is reversed. However it has not repainted as there is no opposite trend color. that was painted. Would like it to hold the GV value to that of its corresponding paint color until it repaints a different color.

Your help would be greatly appreciated.

Just Stumped

mperk
You do not have the required permissions to view the files attached to this post.
User avatar
simplex
Trader
Posts: 127
Joined: Thu Feb 07, 2013 5:21 pm
Location: An insignificant small town close to an insignificant former capital at the Rhine River.

Re: Help, Completely Baffled by this Indicator

Post by simplex »

Hi mperk,

looks some nice work based on John Ehlers' books. To be honest, the overall algorithm is not really clear to me. Do you have a version with more comments in it? This would make it much easier to understand. Did you code it yourself? If not, what's the original source?

The indicator itself: when I first looked at it I was kind of stunned about the accuracy of its signals. Impressive, really!

Then I observed its behaviour in M1 just to see what happens in real time. The point is: those signals are not always set at bar zero! According to my observations of just 10 or 15 minutes the signals are often set up to 5 bars in the past. Acting this way it is pretty easy to set a signal exactly on top or bottom of a swing.

Furthermore some of the signals once set were then deleted after some minutes!

What is the intention behind this indi: finding entries / exits or calculating cycle lengths? Or ... ?

To summarize: if you have a version with some detailed comments or can give a detailed description of the ideas behind the algorithm I would be interested to give it a closer look.

Cheers,
simplex
If you can't explain it simply, you don't understand it well enough. (Albert Einstein)
It appears that the Weighted Moving Average was invented by a trader who did not have a firm grasp of filter theory in hopes of reducing lag. (John F. Ehlers)
xenoson
Posts: 1
Joined: Thu Mar 14, 2013 12:42 am

Re: Help, Completely Baffled by this Indicator

Post by xenoson »

Hey mperk,
mperk wrote: 1 - Do not want a zero value sent to the GV. Upon system boot up the CI seems to default to 1 with the "if": & "GV" coding added at the end
global variable are saved between sessions.

Like this your code doesn't set CI when the signal (re)paints. Change your two array references to pos+SwitchA.

Code: Select all

       if (CI_Buy[pos+SwitchA] == -1) 
         {
            CI = 1;
            //GlobalVariableSet (Global_CI_string, CI); 
         }
               
       if (CI_Sell[pos+SwitchA] == 1) 
         {    
            CI = -1;
            //GlobalVariableSet (Global_CI_string, CI); 
         }
or put the GlobalVariableSet where the CI_* arrays are assigned. But you will still miss when the last signal gets deleted (CI reset to zero).

Cheers
Post Reply

Return to “Indicators”