› Forums › Trading Systems Discussion › A Flexible And Compact Currency Strength Indicator
Tagged: CIX
- This topic has 270 replies, 23 voices, and was last updated 8 years, 10 months ago by
upliftingmania.
- AuthorPosts
- October 14, 2015 at 1:26 pm #8406
What is your broker’s GMT time offset ? (I want to check the same on my charts)
It’s GMT + 2 / 3.
A good trader is a realist who wants to grab a chunk from the body of a trend, leaving top- and bottom-fishing to people on an ego trip. (Dr. Alexander Elder)
October 14, 2015 at 1:32 pm #8407OK, new toys: I simplified the ASS_Correlator a bit, and built Session_Correlator as a 2nd indicator.
Please adjust reset hours according to your broker’s GMT offset, if you want to synchronize with London or Sydney session open. If you want to reset only once per day, set both reset hours to the very same value.
.ex4 only at the moment – code is not yet fully cleaned up.
Have fun – any feedback welcome!
simplex
EDIT: deleted these indicators. Find bugfixed versions over there: http://penguintraders.com/forums/topic/a-flexible-and-compact-currency-strength-indicator/page/5/#post-8469
-
This reply was modified 10 years, 8 months ago by
simplex. Reason: Indicator Bugfix
A good trader is a realist who wants to grab a chunk from the body of a trend, leaving top- and bottom-fishing to people on an ego trip. (Dr. Alexander Elder)
October 14, 2015 at 7:20 pm #8416What is your broker’s GMT time offset ? (I want to check the same on my charts)
It’s GMT + 2 / 3.
I can’t check/compare with my charts/indies, I don’t have v2. I don’t D/L compiled files.
G.
October 14, 2015 at 8:47 pm #8419I don’t D/L compiled files.
I don’t either – except yours!

s.
A good trader is a realist who wants to grab a chunk from the body of a trend, leaving top- and bottom-fishing to people on an ego trip. (Dr. Alexander Elder)
October 14, 2015 at 9:04 pm #8421simplex: The MA per session request is related to the Volume indicator and not the CS – if there is some misunderstanding here.
Yes – I already noticed that. Thanks for clarifying anyway. There are so many ideas floating around in my head, it’s not so easy to keep the pace while coding and coordinate with valuable input from the forum.
Now the damage is done: the session coordinator indi is ready and posted.
I’m not sure whether it’s really useful for an EA, but I think viewing charts through this session focused lens can provide some interesting insights when planning trading times for different pairs. Mostly JPY, AUD, and NZD are performing nice and tradeable swings during Sydney/Tokyo session from time to time, all other pairs hardly do. If combined with a normalized volume indicator, it should be possible to isolate those interesting moves from idle times.
A good trader is a realist who wants to grab a chunk from the body of a trend, leaving top- and bottom-fishing to people on an ego trip. (Dr. Alexander Elder)
October 14, 2015 at 10:42 pm #8422simplex: The MA per session request is related to the Volume indicator and not the CS – if there is some misunderstanding here.
Yes – I already noticed that. Thanks for clarifying anyway. There are so many ideas floating around in my head, it’s not so easy to keep the pace while coding and coordinate with valuable input from the forum. Now the damage is done: the session coordinator indi is ready and posted. I’m not sure whether it’s really useful for an EA, but I think viewing charts through this session focused lens can provide some interesting insights when planning trading times for different pairs. Mostly JPY, AUD, and NZD are performing nice and tradeable swings during Sydney/Tokyo session from time to time, all other pairs hardly do. If combined with a normalized volume indicator, it should be possible to isolate those interesting moves from idle times.
My “Complicated” way of doing this is an indicator that just draw vertical dotted lines at each session start…
The session related MA is an answer to the Asian related currencies. The Volume will signal and reach a lower MA that currently is too high, causing missing valid trades.
G.
October 15, 2015 at 3:58 am #8423simplex went to sleep and I just woke up because of a “Math” itch… The main thing about CS is the DELTA – the difference between current and previous currency-pair. [close=currency-pair close price, t=current bar, t-1=previous bar] FXCorrelator way: close(t) – close(t-1) – simple subtrct simplex way: ((close(t) – close(t-1))/close(t-1) – making it proportional move But there are other ways… close(t)-SMA, close(t)-EMA, close(t)-LWMA, …. OR even: EMA-SMA, … …and there are more ways… just check which one gives you better and earlier entry signals. Oh, there is another thing: have you noticed that going LONG have a different signal than going SHORT? If you use the same Algo for both Long and SHORT signals – the SHORT one will be delayed signal. That’s because SHORT moves are much faster (panic, fear, etc…). Returning to bed… G.
Wow you two have been busy chatting!
There is so much going on here I just need to stop and clarify where things are up to.
If I understand correctly, the quote above is where we should be focusing our efforts?
Proportional move calculations.

What's it all about? It's all about money.
October 15, 2015 at 11:20 am #8426One thing that has always stumped me with ROC style indicators, is at what point in time do you start the calculation from? Traditionally this is the beginning of the daily candle (or when LIBOR is set 11am London time), but this is really just an arbitrary point. In saying that, choosing another point is also just as likely to just be arbitrary too.
Good point! Let me extend that question of yours a bit: what’s the point about ‘traditional’ daily candles anyway? In a 24/5 market, wouldn’t session candles be more useful? Look at my latest pic: one candle for London/New York, and another one for Sydney/Tokyo, both of them watched through an M5 microscope. To be honest: until two or three days ago, when I followed G’s and Balrog’s suggestions to reset CS values per session, I completely underestimated the quality of this kind of view. It clarifies what’s happening inside a trading session, which until now is a ‘natural’ rhythm of the markets. Doesn’t mean that daily rhythm will last forever, though.
Is there a better way to show ROC by not zeroing?? How about a rolling period i.e. calcs are always made from a start point of N bars earlier.
A combination of both might be the best solution. I’m trying to explore this … s.
BIG YES and TRUE. Bars or candles are just a “time-lapse” representation of market action and there is no other meaning to their “patterns” and “rules”… I know that this seems and sounds a very un-orthodox statement, but that’s the fact. For every bar/candle “pattern rule” I can show you two that the “rule” is not valid. Those candle/bar pattern are “borrowed” from the Stock and Commodities markets, and not relevant to the very different Forex auction market. simplex: The MA per session request is related to the Volume indicator and not the CS – if there is some misunderstanding here. G.
True Bars/Candles and Market Sentiment
The attached screenshot is a true bar/candle representation of market movements, regardless of time.
As you can see, from the leftmost blue “candle” the market sentiment is DOWN.
Each UP (blue candle) didn’t succeed to move beyond ~half (or 50%) of the previous major move.
Market setiment is regarded as changed if it breaks that ~50% level.
Finally, the current UP range was broken down, giving two early “warnings” (wicks breaking out first).
(rightmost bar is not finished, just drawn till breakout).
G.
Edit: The DOWN market sentiment continue… added _result real-time result screenshot.
-
This reply was modified 10 years, 8 months ago by
gg53.
Attachments:
You must be logged in to view attached files.October 15, 2015 at 11:55 am #8428Hi GG,
what is the rule for merging standard time-based candles into True candles?
Thanks.
October 15, 2015 at 12:04 pm #8429Hi GG, what is the rule for merging standard time-based candles into True candles? Thanks.
ACTUAL price movement from Open to Close of that movement. Anything in between is meaningless. It’s just time-lapse “photography”…
BTW: this is Off-topic, just a added remark to simplex “sessions” evaluation. If interested by other others, Open different thread on that topic.
G.
October 15, 2015 at 12:06 pm #8430Great works simplex,
I’m playing with the Session Correlator indicator, stacked three instances so i can study how currencies moves on more daily sections. Server time 00:00 corresponds to 17:00 East (New York), reset are at 00:00, 08:00 and 16:00 so I have classical 3 sections that roughly corresponds at NY close, London open, NY open. But I’ like to see H4 divisions or H1 but, obviously, takes too much space on chart.
So, if possible I suggest 3 things for next release:
– time format will be with minutes too, like 09:28
– instead of two time fields, use a more flexible field where we can insert the time corresponding to divisions we needs separated by commas i.e. : a regular 4hour step like 0,4,8,12 or an irregular one like 0,01:30,5:25,14:18 and so on. In this manner we can visually compare forces on more short sessions and take advantage of temporary strength/weakness that can be hidden on longer term flux (24 hours or continuous period). Look at the blu rectangle, they are now on 8 hours step, imagine that one after the other on one field with 4 hours step (or H1 or less ..).
-please add automatic refresh, this version needs manual refresh to update, if continuous update is CPU-consuming please force refresh only on new bar
I hope you can help me doing that.
Thank you.
-
This reply was modified 10 years, 8 months ago by
wjaz.fx.
Attachments:
You must be logged in to view attached files.October 15, 2015 at 3:35 pm #8437Great works simplex, I’m playing with the Session Correlator indicator, stacked three instances so i can study how currencies moves on more daily sections.
Thanks a lot! Please post or PM me about your practical experiences with this special indicator when it comes to real trading. Does this way of visualizing CS really make sense? I’m interested in every possible feedback.
– time format will be with minutes too, like 09:28
Can certainly be done, will require some work. Could you possibly post details of cases including screenshots where reset time specified by minutes would make sense? And how would you determine when exactly to reset? I mean: just convince me that it makes sense to invest the time for that special feature.

– instead of two time fields, use a more flexible field where we can insert the time corresponding to divisions we needs separated by commas i.e. : a regular 4hour step like 0,4,8,12 or an irregular one like 0,01:30,5:25,14:18 and so on.
Could be done, but too much effort for a very small return on invest, IMO.
-please add automatic refresh, this version needs manual refresh to update, if continuous update is CPU-consuming please force refresh only on new bar
It SHOULD refresh. It it doesn’t, it’s a bug. I’ll check that. Thanks for pointing that out.
s.
A good trader is a realist who wants to grab a chunk from the body of a trend, leaving top- and bottom-fishing to people on an ego trip. (Dr. Alexander Elder)
October 15, 2015 at 6:03 pm #8441Meanwhile, thanks for your time, simplex.
In the coming days I will make some screenshots (now I’m at work …) but something I can begin to say: we are looking for something, so more options we have more roads we can go.
The time with the minutes is for having greater flexibility in our research but also for example to start the reset after an relevant top/bottom that may occur at any time, or after relevant macro data. Reset every H1 may be important to catch trade on short-term chart , 1 or 5 minutes.
Screenshots in next few days .. maybe tomorrow, for sure in the weekend but something you can already guess from the image of my previous post, lines with reset at 00:00 are on top and after the reset at 16:00 are lower, something is changed in the meantime, but on the long calculation you miss it-
This reply was modified 10 years, 8 months ago by
wjaz.fx.
October 15, 2015 at 10:47 pm #8456Reset every H1 may be important to catch trade on short-term chart
That would be easy – fast coding!
The time with the minutes is for having greater flexibility in our research but also for example to start the reset after an relevant top/bottom that may occur at any time
I think the best way to catch those is by a continuously rolling time window, without any reset, with a very reactive smoothing or without any smoothing.
Looking forward to your examples – and thanks for your time and discussion!
s.
A good trader is a realist who wants to grab a chunk from the body of a trend, leaving top- and bottom-fishing to people on an ego trip. (Dr. Alexander Elder)
October 16, 2015 at 8:53 am #8469-please add automatic refresh, this version needs manual refresh to update, if continuous update is CPU-consuming please force refresh only on new bar
You’re absolutely right: there was a bug relating to refresh buffers on new bars – thanks again for pointing this out!
Bugfixed versions here, the buggy versions in the above post will be deleted.
s.
Attachments:
You must be logged in to view attached files.A good trader is a realist who wants to grab a chunk from the body of a trend, leaving top- and bottom-fishing to people on an ego trip. (Dr. Alexander Elder)
October 16, 2015 at 9:37 am #8475-please add automatic refresh, this version needs manual refresh to update, if continuous update is CPU-consuming please force refresh only on new bar
You’re absolutely right: there was a bug relating to refresh buffers on new bars – thanks again for pointing this out! Bugfixed versions here, the buggy versions in the above post will be deleted. s.
Thanks simplex, will test new versions but ….
Houston, we’ve got a problem (maybe ..)
I noticed that AUD and NZD tend to show strange peaks, as if they were overweight than other curencies. Since the basic algorithm is the ROC likely this behavior is related to the current value of each pair compared to USD, ( about 0.7 now, other currencies are more than 1.00 ). I think it is necessary an overall normalization (or something else) to standardize the movement of any currency, otherwise the results would be distorted. What do you think?

Attachments:
You must be logged in to view attached files.October 16, 2015 at 10:31 am #8478Houston, we’ve got a problem (maybe ..) I noticed that AUD and NZD tend to show strange peaks, as if they were overweight than other curencies. Since the basic algorithm is the ROC likely this behavior is related to the current value of each pair compared to USD, ( about 0.7 now, other currencies are more than 1.00 ). I think it is necessary an overall normalization (or something else) to standardize the movement of any currency, otherwise the results would be distorted. What do you think?
I would say: works as designed

We had a similar discussion before – see: http://penguintraders.com/forums/topic/a-flexible-and-compact-currency-strength-indicator/page/2/#post-8179
At the moment, the algorithm uses pure ROC, so if AUD, NZD, and JPY are showing peaks that you’re perceiving as strange it simply means that these currencies tend to move faster than average. An additional normalization would be simple, like Stoch, Fisher or something. But that wouldn’t remove distortion, but add some instead. Is that what we need?
Also discussed earlier in this thread: reflecting the weight (not the exchange rates!) of individual currencies within our simplified model would certainly be a step towards the inclusion of elements of fundamental analysis in our model. I’m absolutely open for any detailed suggestion of that kind – could really be interesting to implement that.
If you’re looking at ASS_Correlator lines at the moment, USD seems to perform moves of the lowest amplitude, on average. Why is that? I think it’s a perfect reflection of USD’s weight in that bundle of currencies we’re working on: USD is the ‘stable’ one, the heavy weight.
Implications on possible strategies: if you’re going for dramatic moves (ROC!) no matter what it costs, you’ll choose the most volatile crossings. If you prefer one stable anchor in your trades, maybe go for the volatile currencies against USD only. Just two vague possibilities, much more detail would be required to make this work.
I’m absolutely convinced that this model can be enhanced, but I don’t believe that a simple normalization would result in a real proceeding.
Looking forward to evolve this discussion further!
simplex

A good trader is a realist who wants to grab a chunk from the body of a trend, leaving top- and bottom-fishing to people on an ego trip. (Dr. Alexander Elder)
October 16, 2015 at 12:30 pm #8482I’ll respond to the above later on.
As to CS “session” reset or anchor – the BEST point is major swings.
How to find one and make it automatic? Simple… use plain ZZ indie… we don’t care, in this case, that it’s lagging…G.
-
This reply was modified 10 years, 8 months ago by
gg53.
October 16, 2015 at 12:57 pm #8484I would say: works as designed We had a similar discussion before – see: http://penguintraders.com/forums/topic/a-flexible-and-compact-currency-strength-indicator/page/2/#post-8179
Thank you for the link at previosu post.
Well … I don’t know, I investigate some points and do more tests but look at this chart. EURUSD on the left, NZDUSD on the right, same short entry at 09:30 point, same exit at 13:00 same gain, about 48 pips. Same volatility same movement but looking at your 2 indicators seems that NZD to have had a big fall, EUR not so big , indeed almost sideways if you look at session correlator ( reset at 00:00). So I don’t say that is mathematically or theoretically wrong but visually it gives another impression of what’s going on in reality. I will look into in the wek end.
And I confirm that new version refresh correctly, ty. :)
Attachments:
You must be logged in to view attached files.October 16, 2015 at 1:34 pm #8486Interesting and good work! I may decide to give this a go next week and see how it works..
I’m not very experienced in currency strength indis. To me it feels like a different field detached from price, kind of like volume analysis. You can certainly trade without it, and you can certainly improve crucial aspects of your trading with it if you get it right! Hence my interest :)Now, I would think that CS, like price, has a sort of “lower limit” in terms of filtering noise and forward projection. What do you think this lower limit is, if any?
The other question I have is in terms of proper context. ex. In terms of price trading, I trade a 15m frame, with a context of about 3 days. 3 days is either 3xD1 bars, 72x1hr bars or 288x15m bars. If you use any sort of indicator, there can be a big difference between them. However given the nature of what we’re looking at (relative strength), I’m wondering is it even feasible to say that the true “strength” is changing every 5/15/30 etc minutes?
October 16, 2015 at 2:00 pm #8487So I don’t say that is mathematically or theoretically wrong but visually it gives another impression of what’s going on in reality.
Thanks a lot for testing and throwing your thoughts in the ring – I appreciate that!
‘Reality’ is the keyword here. Absolute pips haven’t got anything to do with ‘reality’, IMO. Pure pips counting is one of the worst things to do when analyzing moves. Just look at my 1st pic (the spreadsheet): 48 pips in both cases, yet 0.42% total change in one case, 0.70% in the other one. So the average rate of change of that move has to be considerably larger for NZD, as compared to EUR. Any error in that calculation? Did I hit your example correctly?
That’s what I meant by ‘works as designed’: at the moment, it’s PURE ROC, nothing more.
I don’t say that this is the very best way to calculate currency strength. You threw ATR in the ring. Implementing this would probably lead to an efficiency based algo, maybe prone to some more lag. I tried similar by implementing PFE as an alternative (see 1st post of this thread and the indicator there). Feel free to check this out.
I’m still looking for enhancements of this algo, so looking forward to further discussion and ideas!
Attachments:
You must be logged in to view attached files.A good trader is a realist who wants to grab a chunk from the body of a trend, leaving top- and bottom-fishing to people on an ego trip. (Dr. Alexander Elder)
October 16, 2015 at 2:17 pm #8491I’ll respond to the above later on.
Looking forward to that!
As to CS “session” reset or anchor – the BEST point is major swings. How to find one and make it automatic? Simple… use plain ZZ indie… we don’t care, in this case, that it’s lagging…
Nice idea, but my coder’s brain initially asks: ‘which’ ZZ in particular? We’re analyzing 8 currencies, based on either 7 USD pairs or all 28 crosses – depends on personal taste.
I’ve looked at one notable point in time, where AUD and USD are forming large opposite peaks to each other, and ZZ is (to no-ones surprise) showing a bottom there. Then I looked at all other USD pairs and marked the closest ZZ bottom of that pair by a vertical line – see pic.
5 bars to choose from for a potential reset. Which one is the correct pair to choose for a reset? Maybe reset the whole correlator based on NZDUSD pair? I’m not sure – just thinking!
This may lead to a high frequency of resets, and I’m not sure that we really need that.
s.
Attachments:
You must be logged in to view attached files.A good trader is a realist who wants to grab a chunk from the body of a trend, leaving top- and bottom-fishing to people on an ego trip. (Dr. Alexander Elder)
October 16, 2015 at 2:34 pm #8493To me it feels like a different field detached from price
Nope – in this case (at the moment) it’s pure price: ROC and nothing else.
Now, I would think that CS, like price, has a sort of “lower limit” in terms of filtering noise and forward projection. What do you think this lower limit is, if any?
Sure there are limits, this is no ‘holy grail’. Yet I have no idea which particular ‘lower limit’ you mean, but I’m interested …
However given the nature of what we’re looking at (relative strength), I’m wondering is it even feasible to say that the true “strength” is changing every 5/15/30 etc minutes?
Certainly not! What changes with every new bar (or tick on bar zero) is our sensitive measurement of what our underlying model respects as ‘strength’. It’s just a model, right? And it’s a simple one …
Now the old tradeoff between high reactivity and smoothing comes into play …
And all I’m doing here at the moment has got nothing to do with currency strength in a fundamental way of analysis – which certainly would be an interesting field to implement. I’m open for that, too.
Again: at the moment it’s pure short-term price analysis.
Thanks for replying – let’s carry this on!
A good trader is a realist who wants to grab a chunk from the body of a trend, leaving top- and bottom-fishing to people on an ego trip. (Dr. Alexander Elder)
October 16, 2015 at 3:09 pm #8495I have a bit of a silly question if you don’t mind..
What’s the point of using a CSI?From what little I have read about it, I see two uses. The first is when you have a particular setup on two or more pairs sharing a same base currency (EJ/EU), one can use CS to pick the pair with the greatest gap between strength. The second is to trade a single pair as one normally would, but would look to hold for a shorter/longer period of time depending on the relationship of CS. I feel like the ways that you can integrate other pieces of information depends on which use it is. What is your take on it?
As for the “lower limit”, I just mean that it is very hard to use too little data when making analysis. The easiest example is TZ h values; the lower the h value, the harder it is to extract useful information. Part of this (perhaps a large part) is that as you move to a higher frame, price itself retains it’s values better, i.e the highs and lows of a swing on the 1hr frame are much less likely to be broken through than the swings on the 1m frame.
October 16, 2015 at 3:17 pm #8496I’ll respond to the above later on.
Looking forward to that!
As to CS “session” reset or anchor – the BEST point is major swings. How to find one and make it automatic? Simple… use plain ZZ indie… we don’t care, in this case, that it’s lagging…
Nice idea, but my coder’s brain initially asks: ‘which’ ZZ in particular? We’re analyzing 8 currencies, based on either 7 USD pairs or all 28 crosses – depends on personal taste. I’ve looked at one notable point in time, where AUD and USD are forming large opposite peaks to each other, and ZZ is (to no-ones surprise) showing a bottom there. Then I looked at all other USD pairs and marked the closest ZZ bottom of that pair by a vertical line – see pic. 5 bars to choose from for a potential reset. Which one is the correct pair to choose for a reset? Maybe reset the whole correlator based on NZDUSD pair? I’m not sure – just thinking! This may lead to a high frequency of resets, and I’m not sure that we really need that. s.
…”We’re analyzing 8 currencies…”: Really? in that case you are refering to MINOR swings.
There are only two groups of currency-pairs:
The xxxUSD group (GBPUSD, EURUSD, AUDUSD, NZDUSD)
and the USDxxx group (USDCHF, USDJPY, USDCAD)
both groups are inverse-correlated and should have a matching MAJOR swing.
G.
-
This reply was modified 10 years, 8 months ago by
- AuthorPosts
- You must be logged in to reply to this topic.