Time Of Essence

First things first.

You need to get up close and personal with RSI2. Use it on 30 min, set it to medians.

Call an RSI2 print below 6.4 an R (Root).

Look for an RSI2 spike below 15 (but above 6.4) along with a higher low for a confirmation of buying.

  ///RSI2 spike below 15
     if (RSI2[i+1]>RSI2[i+2] && RSI2[i+3]>RSI2[i+2] && RSI2[i+2]<15 && RSI2[i+2]>6.4 && RSI2[i+1]>15 && RSI2[i+3]>15 && RSI2[i+3]<85 && RSI2[i+4]>RSI2[i+3]
     && RSI2[ArrayMinimum(RSI2,16,i+1)]<6.4)
     { 
          ObjectCreate("Darchelle"+DoubleToStr(i), OBJ_TEXT, 1, Time[i+2], 76);
             ObjectSetText("Darchelle"+DoubleToStr(i), CharToStr(241), 97, "Wingdings", clrDarkGreen);
             if (Low[ArrayMinimum(RSI2,16,i+1)]>Low[i+2]) ObjectSetText("Darchelle"+DoubleToStr(i), CharToStr(241), 62, "Wingdings", clrGray);                
      } 

Count the number of 94 hook backs after the arrow. Look at the Market Type. If the upside volatility is still high, the market is in Squirting mode. Target squirt line #2 at 53 pips out.

Figure #2: similar, but squirting was not achieved, also the #4 hook back was not made on Friday (<93).

Also, after 3 tapers, I think this rising wedge is over, and I would think a gap down would be in order.

In the last image, the example shows a more reluctant start (the green arrow’s buying got undercut once), and there was a gap down after the 2nd hook back, which prolonged the rally for 3 more hook backs and a bit of overcarry.


While Madonna is busy tarnishing her own legacy, I am making awesome music with her voice.

On the plus side, she truly has the perfect pop voice.

If you believe that AI is coming up with lines like, “Life is almost fair – By The Way, do you want to see my cookie-cutter?”, I have a data center in space to sell you.

This track broke the record for my 1st-track debuts (this one is not Madonna).

One Step

One step on the Eur/USD is 27 pips with the aid of the wind, and 17 pips against it. The wind, as I have been saying, is coming from the Titis line, which is the 200-hour median. Since it is a modern hand dryer, it has a HEPA filter, of course. We’ll come back to this.

The first thing we’re gonna do is write the program for ST#3.

Stall 3: end of a leg or entire trend. The Stalls you filter for on the Hourly chart only.

What next:

STEP #1: Must rule out a double pump. The way you do this is by measuring the move back from the ST#3 print and paying attention to time. A move that is greater than 28 pips has triggered a reversal. A move that has not reached 28 pips in 10 hours is a full correction (the price managed to get outside the 30BB on the 30-minute), and a new 3x ST count is on. When hour six is still closing outside the 16-EMA (Black) that’s a telltale that the Bollinger is too wide, the volatility has to come in first, and this is how you end up with a Beat beyond the ST#3 print.

The continuation:

The no volatility correction (double pump) is likely going to clip/dip beyond the E-24 on the hourly. MUST overhedge for 3 more stalls (TGT fresh taper’s high + 27 – squirt).

The turn:

If an SOB prints (28+ pips pullback, usually within 6 hours), then you MUST fade the beat of the ST#3 print with overhedge or a fresh counter-directional position 6-16 pips out (yellow rectangle (0-6 pips)).


The main takeaway is that after ST#3, in the next 6 hours, it will be decided if the reversal is on or not.

Since we had a full reversal taking place, you should be betting on a fresh count to the downside. Outside the Hourly E-16 may be a good place to short (currently at 1.1736), but knowing what you know now, 17+36= 51 is an extra heavy short if it gets granted.

With an ST#1 or ST2, there are 2 main types of correction.

1. a liquidity break (V) against the HePa for up to 80 pips (64 is a sweet spot).

2. or double taper + small overrun for a lower volatility pullback

During the 3xST sequence, you would typically get one 36-pip break.

Also, for a proper count before a reversal, you would kind of like to see the 3rd Stall print with a close back number above 10 or if not, at least the second one above 10. These are the numbers I write after the ST-s.

High[i+1]>iMA(symbol,0,16,0,MODE_EMA,PRICE_MEDIAN,i+1)
&& iHigh(symbol,0,i+1)>=iHigh(symbol,0,iHighest(symbol,0,MODE_HIGH,9,i+2)-0*Point)
&& Close[i]<Close[i+1]
){
ObjectCreate("Dalton"+DoubleToStr(i), OBJ_TEXT, 0, Time[i+1], High[i+1]+80*Point);
ObjectSetText("Dalton"+DoubleToStr(i), "ST "+DoubleToStr(NormalizeDouble((High[i+1]-Close[i+1])*10000,1),1), 32, "Impact", Purple);
if (Low[i+2]<iMA(symbol,0,16,0,MODE_EMA,PRICE_MEDIAN,i+2)-40*Point || High[i+1]-Close[i+1]<48*Point ) ObjectSetText("Dalton"+DoubleToStr(i), "ST "+DoubleToStr(NormalizeDouble((High[i+1]-Close[i+1])*10000,1),1), 22, "Impact", DimGray);
starterup[i+1]=true;
}

Now it’s just the 27-pip step confirmation left.

Thanks to the market type indicator I made, now you have a tool to figure out the reversal level with the wind up to 3 hours ahead of the actual print.


I believe this analogue synth song isn’t any worse than Era’s Ameno or most of Enigma’s works, and at the same time, it puts up a little competition to Jan Blomqvist. But I am biased and unknown.

The voice in this one is Sting with a stuffy nose. The other day, I got a Phil Collins, too.

Monitor Blizzard

First, let’s clear up some of the definitions in your head.

V bottoms are:

/////V bottom
if (i>0 && voldn[i]<=voldn[i+1] &&
voldn[i+2]<voldn[i+1] &&
voldn[i+1]>34
&& (Close[i-1]>iLow(symbol,0,iLowest(symbol,0,MODE_LOW,5,i))+200*Point || voldn[i+1]>=voldn[i])
&& voldn[ArrayMaximum(voldn,20,i)]==voldn[i+1]
&& Low[i+1]<iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_LOWER,i+1)
&& Close[i-1]>=Low[i]
)

Meaning it is a sticking out bottom with 34+ pips volatility measured from the 6-sample high to the current close.

The V bottom is also a liquidity break if it occurs against the wind (it is above the median of the 200-hour range, see arrows for air blowing direction from the dashed line).

ST can stand for Stallworth, Stepney Green, Stupendous, or Stink, Stank, Stunk.

A V bottom is a ticket for the next 3 stations. In the image above, you can see a pullback between “2” and “3” at 53+ pips; as a rule of thumb, the last pullback can be either shallow (capping out at 36 pips) or deep (53+ pips). 3 images up are the 50-sample displacements of 36 pips in corn silk and 43 pips in yellow.

An ST is a stick out high with the previous hour showing at least a 4-pip range and a follow-through candle.

  High[i+2]<High[i+1] 
 && High[i]<High[i+1] 
 && High[i+1]>iMA(symbol,0,16,0,MODE_EMA,PRICE_MEDIAN,i+1)
 && iHigh(symbol,0,i+1)>iHigh(symbol,0,iHighest(symbol,0,MODE_HIGH,7,i+2))
 && Close[i]<Close[i+1]

Which brings us to what is going on currently.

We had a no-volatility bottom that did not make a scrape level, but we have progressed 3 stations. After the 3rd station, a move of greater than 43 pips is possible against the wind direction.

A gap down could result in the 3rd ST print resuming the down trend. Don’t forget the need for the follow-through hour.

There has been a double taper with a beat already.

My base case would be a V bottom next. This would start yet another 3-station count – and if the money flow bottoms, a new scrape level.


F this guy and his Imbalances. By posing as authority and promoting a placebo indicator that’s good for every instrument & every time frame, he cementifies collective stupidity. People just accept his pseudo answers and stop looking for actual answers. Don’t you want a tablet that cures everything from diarrhea to cancer?!

You can buy from him confidence for your stupidity with a money-back guarantee.

After the 3rd Stall, the market wasn’t going to continue up until a V bottom was made against the wind.

A V bottom did get made, but not against the wind, which resulted in a 53-pip lift not getting anywhere near his stupid rectangle.

Monitor Blizzard was meant to be a reference to the Monitor Program that is running. This schmuck has no clue.


A bit of Beyonce, Prince, and a Lady Gaga remake are for desserts today.

People truly fancy this Prince parody of mine.



[Verse 1]
In the land where beasts roam free (Roam free, roam free)
Komodos reign supreme (Reign supreme, reign supreme)
Rotting meat's their delicacy (Delicacy, delicacy)
Acid spit-  like a xenomorph (Xenomorph, xenomorph)
Creating fear and confusion (Confusion)
Tourists flock in amused delusion (Delusion, delusion)
[Chorus]
Monitor Blizzard, icy breath from the predators
Feel the chill, it's a thrill, let the frenzy begin
Get your Monitor Blizzard, taste the fear, taste the fun
Join in the frozen fright, beneath the tropical sun
[Verse 2]
Setting up my vendor tent (Vendor tent, vendor tent)
Geiger's sculptures for the decor (Decor, decor)
Ice cream van where you can vent (Can vent, can vent)
Komodo tongues, a treat to adore (Adore, adore)
The beasts inspire with their daring stare (Daring stare, daring stare)
Selling fear wrapped in frozen air (Frozen air, frozen air)
[Chorus]
Monitor Blizzard, icy breath from the predators
Feel the chill, it's a thrill, let the frenzy begin
Get your Monitor Blizzard, taste the fear, taste the fun
Join in the frozen fright, beneath the tropical sun
[Bridge]
Acid dreams and reptile seams (Seams, seams)
We're the scream in your Komodo dream (Dream, dream)
Stick your tongue out, taste the scare (Scare, scare)
Frozen terrors, everywhere
[Chorus]
Monitor Blizzard, icy breath from the predators
Feel the chill, it's a thrill, let the frenzy begin
Get your Monitor Blizzard, taste the fear, taste the fun
Join in the frozen fright, beneath the tropical sun





Comfortable?

Here me out, indicator deniers. If you can see typical prices with your eyes, you can measure between any candle’s low/high and another candle’s close in pips just by a glance, can calculate stochastic and RSI2 values in your head; you have absolutely no hope of ever figuring out what is happening.

13 years and 20 minutes. It has come to this. A single innocent day, and I happen to figure out the 3 most important things for trading Eur/USD.

The structure

I hated this from the start. At the beginning of this week, I managed to find the only measurable thing that truly matters. The structure is not whatever you say it is; money flow extremes are responsible for printing the Scarpe boxes. In effect, every Scrape Level is actually 2 values. The one further out cannot be violated (Most important, #1). A violation means that the trend will continue in that direction.

////MFI Box up
if (
((MFI14[i+12]>=MFI14[i+13] && MFI14[i+12]>75 && iStochastic(symbol,0,120,3,3,MODE_SMA,PRICE_MEDIAN,MODE_MAIN,i)>28 ) || (MFI14[i+12]<MFI14[i+13] && MFI14[i+12]>71 && iStochastic(symbol,0,120,3,3,MODE_SMA,PRICE_MEDIAN,MODE_MAIN,i)<18) ) &&
MFI14[i+12]>MFI14[i+11] &&
MFI14[ArrayMaximum(MFI14,3,i+11)]>MFI14[ArrayMaximum(MFI14,8,i+14)]
){
if (iStochastic(symbol,0,120,3,3,MODE_SMA,PRICE_MEDIAN,MODE_MAIN,i+12)<85 || iStochastic(symbol,0,120,3,3,MODE_SMA,PRICE_MEDIAN,MODE_MAIN,i+12)>96.8) {}
else {
ObjectCreate("RayRect"+IntegerToString(i),OBJ_RECTANGLE,0, Time[i], iHigh(symbol,0,iHighest(symbol,0,MODE_HIGH,16,i+1))+40*Point, Time[i+16], iHigh(symbol,0,iHighest(symbol,0,MODE_HIGH,16,i+1)));
ObjectSet("RayRect"+IntegerToString(i),OBJPROP_COLOR,clrBlack);
ObjectSet("RayRect"+IntegerToString(i),OBJPROP_WIDTH,3);
ObjectSet("RayRect"+IntegerToString(i),OBJPROP_BACK,0);
ObjectCreate( "Banalisation"+IntegerToString(i), OBJ_HLINE, 0, Time[0], iHigh(symbol,0,iHighest(symbol,0,MODE_HIGH,16,i+1))+40*Point);
ObjectSet("Banalisation"+IntegerToString(i), OBJPROP_COLOR, clrBlack);
ObjectSet("Banalisation"+IntegerToString(i), OBJPROP_WIDTH, 3 );
ObjectSet("Banalisation"+IntegerToString(i), OBJPROP_RAY_RIGHT, false );
ObjectSet("Banalisation"+IntegerToString(i), OBJPROP_STYLE, 1 );
ObjectCreate( "Banalisations"+IntegerToString(i), OBJ_HLINE, 0, Time[0], iHigh(symbol,0,iHighest(symbol,0,MODE_HIGH,16,i+1)));
ObjectSet("Banalisations"+IntegerToString(i), OBJPROP_COLOR, clrBlack);
ObjectSet("Banalisations"+IntegerToString(i), OBJPROP_WIDTH, 3 );
ObjectSet("Banalisations"+IntegerToString(i), OBJPROP_RAY_RIGHT, false );
ObjectSet("Banalisations"+IntegerToString(i), OBJPROP_STYLE, 1 );
ObjectCreate("DOG"+IntegerToString(i),OBJ_TEXT, 0, Time[i+8],iHigh(symbol,0,iHighest(symbol,0,MODE_HIGH,16,i+1))+90*Point);
ObjectSetText("DOG"+IntegerToString(i),"Scrape Level ="+DoubleToStr(NormalizeDouble(iHigh(symbol,0,iHighest(symbol,0,MODE_HIGH,16,i+1))+40*Point,4),4), 26, "Impact", clrCrimson);
}
}

Starting move

It was a great idea to “digitalize” the pip measurements (using only integers); they make for beautiful divergence visuals. I only plot the distances if they come with a close on the relevant side of the E-16.

The two green boxes are coming off an RSI2 reading below 6.4and have achieved 20 or more pips for an open (measuring leg, Most important #2) az a second option, I included a Bollinger Squeeze below 30 pips. The direction of the wind is to be factored in, of course.


    //directional momentum read up - closing above E-16
    if (Close[i]>iMA(symbol,0,16,0,MODE_EMA,PRICE_MEDIAN,i) && iFractals(symbol,0,MODE_UPPER,i)
    && High[i]==iHigh(symbol,0,iHighest(symbol,0,MODE_HIGH,8,i))
    ){
              ObjectCreate("Nixy"+DoubleToStr(i), OBJ_TEXT, 0, Time[i], Low[i]-100*Point); 
              ObjectSetText("Nixy"+DoubleToStr(i), DoubleToStr(NormalizeDouble(volup[i],0),0), 33, "Impact", clrBrown);
              if ((iFractals(symbol,0,MODE_LOWER,i+3) || iFractals(symbol,0,MODE_LOWER,i+4) || iFractals(symbol,0,MODE_LOWER,i+5))  && volup[i]<10)
              {ObjectSet("Nixy"+DoubleToStr(i),OBJPROP_COLOR,clrBlue); 
              if (High[i]>iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_UPPER,i) && (iFractals(symbol,0,MODE_LOWER,i+4) || iFractals(symbol,0,MODE_LOWER,i+3))) ObjectSetText("Nixy"+DoubleToStr(i), DoubleToStr(NormalizeDouble(volup[i],0),0)+"!", 43, "Impact", clrBlue);
              }
              else if ((iFractals(symbol,0,MODE_LOWER,i+3) || iFractals(symbol,0,MODE_LOWER,i+4) || iFractals(symbol,0,MODE_LOWER,i+5))  && volup[i]>20)
              ObjectSetText("Nixy"+DoubleToStr(i), DoubleToStr(NormalizeDouble(volup[i],0),0), 38, "Impact", clrMediumSeaGreen);
              
              if ((RSI2[ArrayMinimum(RSI2,10,i)]<6.4 || (iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_UPPER,i+1)-iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_LOWER,i+1))<300*Point) && volup[i]>=20) {
                ObjectCreate("Fracabbb"+IntegerToString(i), OBJ_RECTANGLE, 0,  Time[i+1], High[i], Time[ArrayMinimum(RSI2,10,i)], Low[ArrayMinimum(RSI2,10,i)]);
                     ObjectSetInteger(0,"Fracabbb"+IntegerToString(i),OBJPROP_COLOR,clrChartreuse);
                     ObjectSet("Fracabbb"+IntegerToString(i),OBJPROP_BACK,1);
                     ObjectSet("Fracabbb"+IntegerToString(i),OBJPROP_WIDTH,5);   
              }
    }     

Squirt scale

There are two different exits. One is after 2 divergences (the taper) or, if a second divergence comes with an extra strong reading, a squirting scale gets called in for pretty precise exit levels. I plot the “still too strong” second divergence with pink instead of white, and plot the 3 displacements, 27, 26, and 25 pips more in a sequence.

How do you know when to use which? Simple enough. On the market type indicator, after the measuring leg, if you do not see a taper (white vertical marker), then your V top would land on either Level 2 or Level 3 (Most important #3).

/////green to green taper
if (volup[i]<volup[i+1] && volup[i+2]<=volup[i+1] && volup[i+3]<volup[i+1]
&& volup[ArrayMaximum(volup,26,i+1)]>20
&& volup[i+1]>=voldn[ArrayMaximum(volup,4,i+1)]
&& ((volup[i+1]>9 && RSI2[i+1]>90) || volup[i+1]>19)
&& volup[i+1]<33
&& volup[ArrayMaximum(volup,26,i+4)]>volup[i+1]
&& volup[ArrayMaximum(volup,12,i+1)]>voldn[ArrayMaximum(voldn,12,i+1)]
&& voldn[i+1]<volup[i+1]
){
ObjectCreate("Rocket"+IntegerToString(i),OBJ_TREND,indicator_window, Time[ArrayMaximum(volup,26,i+4)],volup[ArrayMaximum(volup,26,i+4)],Time[i+1],volup[i+1]);
ObjectSet("Rocket"+IntegerToString(i),OBJPROP_COLOR,clrMediumSpringGreen);
ObjectSet("Rocket"+IntegerToString(i),OBJPROP_WIDTH,6);
ObjectSet("Rocket"+IntegerToString(i),OBJPROP_BACK,1);
ObjectSet("Rocket"+IntegerToString(i),OBJPROP_RAY_RIGHT,0);
if (Close[i+1]>iMA(symbol,0,16,0,MODE_EMA,PRICE_MEDIAN,i+1)){
ObjectCreate("PitusX"+IntegerToString(i),OBJ_VLINE,0, Time[i+1], 0);
ObjectSet("PitusX"+IntegerToString(i), OBJPROP_COLOR, clrWhite );
if (tup[ArrayMaximum(tup,5,i+5)]>0 && tup[ArrayMaximum(tup,10,i+11)]<1 && ((volup[i+1]<14 && RSI2[i+1]>90)
|| RSI2[i+1]>95)
) { ObjectSet("PitusX"+IntegerToString(i), OBJPROP_COLOR, clrDeepPink );
ObjectCreate( "Banalisation"+IntegerToString(i), OBJ_HLINE, 0, Time[0], High[i+1]+270*Point);
ObjectSet("Banalisation"+IntegerToString(i), OBJPROP_COLOR, clrDeepPink);
ObjectSet("Banalisation"+IntegerToString(i), OBJPROP_WIDTH, 3 );
ObjectSet("Banalisation"+IntegerToString(i), OBJPROP_RAY_RIGHT, false );
ObjectSet("Banalisation"+IntegerToString(i), OBJPROP_STYLE, 1 );
ObjectCreate( "Banalisations"+IntegerToString(i), OBJ_HLINE, 0, Time[0], High[i+1]+530*Point);
ObjectSet("Banalisations"+IntegerToString(i), OBJPROP_COLOR, clrDeepPink);
ObjectSet("Banalisations"+IntegerToString(i), OBJPROP_WIDTH, 3 );
ObjectSet("Banalisations"+IntegerToString(i), OBJPROP_RAY_RIGHT, false );
ObjectSet("Banalisations"+IntegerToString(i), OBJPROP_STYLE, 1 );
ObjectCreate( "Banalisationz"+IntegerToString(i), OBJ_HLINE, 0, Time[0], High[i+1]+780*Point);
ObjectSet("Banalisationz"+IntegerToString(i), OBJPROP_COLOR, clrDeepPink);
ObjectSet("Banalisationz"+IntegerToString(i), OBJPROP_WIDTH, 6 );
ObjectSet("Banalisationz"+IntegerToString(i), OBJPROP_RAY_RIGHT, false );
ObjectSet("Banalisationz"+IntegerToString(i), OBJPROP_STYLE, 1 );
}
ObjectSet("PitusX"+IntegerToString(i), OBJPROP_WIDTH, 4 );
ObjectSet("PitusX"+IntegerToString(i), OBJPROP_STYLE, 2 );
ObjectSet("PitusX"+IntegerToString(i), OBJPROP_BACK, 1 );}

How many people out there do you think are auto plotting at home scrape levels and a squirt scale?


Disco for the masses.

First Principle

The first principle of trading is yield to the wind.

When the market stalls, the likelihood of which direction it will start rolling again depends on how close it is to the 200-hour low versus the 200-hour high (8.3 days).

This is the cornerstone of sequential trading, and, surprise, trading is sequential.

Your 3 main lines are the 400-sample high & low (30-minute chart) and their average.

The market is drawing up scrape boxes (money flow extremes) around the 50% line until it finally breaks one of these boxes.

Since that broken scrape level, there were two more of those boxes made (violated & broke the first).

If I had to guess, this second one would remain intact for a while, but of course, I cannot know for sure.

The way I typically monitor for the double pump entry is the price returning inside the glowing green E-32 on the hourly.

What I can do to figure out a stall against the wind is monitor momentum, thanks to my Market Type indicator.

Without getting lost in the measuring leg and divergent leg explanations, look at my lovely lady humps.

The two black arrows down show the first and the second momentum tapers against the wind, bringing the momentum close to zero. Your accumulation zone was 6 pips wide below the second arrow-candle’s low.

There was also the 8! print in big blue, which was meant to draw further attention to the lack of momentum, ideal-length selling terminal tail to the downside.

Whilst the tapers in a trending move get broken in the direction of the wind, with the current move down, we have not yet seen a single taper (there was no measuring leg yet). I would only make a bet with the wind after the suggested double taper.

As a bonus, I show you another possible outcome, a V bottom. After the second green taper (and an overrun tip (1-2 pips extra), we have that), the bears have to show up with a 30+ print (we don’t have that yet), there would be quite a moment when the bull spasm reaches an extreme, and then a V bottom print would mean a 35+ print on the Market Type. That would be the second possible way to reinstate the trend.

The least likely outcome would be that the bears never manage a measuring leg, and this thing ends up breaking to the upside after like 48 hours.

An example of a bull buying taper-up would be on the RSI2, a low print below 15 followed by another reaching below 30, but above 20.


As it turns out, I have a disco audience.

Like I said, I am famous for abusing Prince.

A bit of AI

(off topic)

This is my only paid surface to publish about things that are important to me. At the same time, I think you may find this one interesting.

lyrics, everybody

There are 3 areas where large language models fall short. The first one can be learned to an extent with enough examples.

This is frequent switching off between languages. Like when I write “Monchici with the mochila drink some agua para tomar.”

The second is layered meanings. This has to do with emotions and context. AI would never understand feelings; all it does is assign probabilities. For instance, poetic stuff like “how long did persistence last, all you ever do is relapse” – AI does not have examples of the “persistence” being followed up by “last”, and so it would never make up an order like that.

In the same song, I wrote: “I know it’s a quantum world, the bird is the word is the bird.”

Beyond the unusual sentence construction, this is a poet’s parallel to pass on a take on quantum entanglement. The array of meanings has an emotional level that cannot be understood by a machine.

And now we are going deep into the connection between language and intelligence.

AI hallucination = male mutation. I see a challenger that would probably speed up evolution itself.

Even without AI availability, I was always of the opinion that the Hungarian language was an extra fine tool capable of passing down some extra logical circuits, improving on the user’s problem-solving ability (general intelligence).

The language reforming part is advanced-level poetry that computers would never be able to get the keys to.

When I say in Hungarian “megtihalvad a tihavér”, good luck finding the meaning of that anywhere. I know, especially today, people are of the opinion that changing words can mean translating into another language. I’ve got news for you.

Some things only receive meaning within a context, or all they meant to do was fine-tune emotions.

I can, for instance, combine two words into a third, and people who have never encountered this new word, but are in possession of the language (understanding it on the level of emotions), can derive a good comprehension of what I intend to relay.

If you want some examples, my poetry’s cornerstone is shaping the language:

“Mert meghetedni nem tudtam, meghatódtam”

Meghetedni is not an existing word, a humorous twist involving numbers

“vidámkás” – everyone would understand that this means the opposite of “szomorkás”, but likely no one has ever used it since the language has existed

bennszülôk és bennszülöttek”

tékenyek es féltekenyek”

words that have never existed until I wrote them down, making fun of the precision of the language itself.

kvarcba boldog jövônkért megyünk” is a twist on the Communist-era slogan with a word that is “allowed” by the logic of the language, but there was never any real need/use case for it; on a first read, it is meaningless.

“Vokhagyma” is a reference to Germans pronouncing a V as F

In Hungarian, the exceptions are more common than the rules. Go, find a logic for that.

Macdulio (the 1st) said about me once that “he says 3 words with 2”.


The end is the beginning is the end

Udio has eliminated the download function with the merger and given me a lot of headaches with having to record streams in real time that got infected by artefacts, and YouTube was dragging its feet for several months in accepting music.

I had no clue going in to this 6 months period of “composing and not sharing anything”, that British Pop and, in particular, Billy Corgan would steal my thunder.

I made 8 tracks earlier with his voice. Not once did I ask for Billy Corgan or Smashing Pumpkins. You simply can’t do that; the voice you get is the result of a Roulette Shuffle. Impressive enough (very unlikely) that you would get the same voice 19 times in 2 months. (Like spinning number twenty-one nineteen times out of 200 roulette spins, and there are way more than 37 numbers, and the decimals play as well.

Very unique, even more than Simon LeBon. I always liked its tone, but never purchased a Smashing Pumpkins album. I would recognise things like “The world is a vsmpire”, I would be able to finish some of their lines, but I never learnt a single song title. I learned Billy’s name after having made 4 songs with his voice.

My prior Billy Corgan songs (8).

On this album, Simon LeBon and Sir Francis Neil Tennant share playtime. Not sure if I ever paid for Duran Duran (other than Come Undone in the jukebox), but I definitely bought some Pet Shop Boys

My Simon LeBon/Duran Duran-like songs (41).

My PSB-like songs (37). (The abuse that I put Neil Tennant through was way worse than what Freddy or Billy got from me, well, Ok, maybe besides Prince and Britney.)

The best (white) male pop singing voices (according to me)

Simon LeBon

Dave Gahan

Billy Corgan

Neil Tennant

Morten Harket

Marian Gold

George Michael

Peter Heppner

Marc Almond

Kimmo Karjalainnen

Klaus Meine

My Prince-like songs (18).

My B Spears songs (8).

It’s no secret that the world is in darkness tonight, nor is it that I have made some of the best DM songs.

101 was an opportunity to round up the concert tour made in the US (named after the Highway of course). If you are interested in how fascism works around music bands, make something in the synth-pop genre and try to present it to DM fans. You’ll find out. The protectionism and denial you’d encounter would be unbelievable. Filtering for music on an ideological basis is a very real thing.

My DM/Dave Gahan-related songs (56).

67 Hungarian songs, 23 new French, 2 German, 1 Norwegian, 1 Romanian (I hold Romanian to be the ugliest spoken language on the planet, but with this song, I have no issues.)

The French connection? There isn’t one. I like Mylene Farmer songs (I bought most of her CDs). She’s Canadian, but I would not know this if I did not work at Le Bateau Ivre, where Julien told me that. The language is very musical to the point of qualifying as an additional instrument.

I was once in Paris, where they stole my daughter’s shoes out of the hotel room.

What else? 2 Snoop Doggs, 1 Jay-Z, 5 Madonna, 3 Jackson, 3 Prince, 1 Marc Almond, 3 Linkin Park/Chester Bennington, 1 New Order (no Britney, but some Rihanna in this batch), lots of Punk (Robert Smith-like), classic Disco, indie, synth, & rap, a bunch of Alphavilles (From them I bought everything, the 8 Dreamscapes albums were really hard to find).

My Alhaville-like tracks (62).

I have a musician friend who is very much against AI, particularly Instrumental music, as for him to make a track, he puts in 50x the effort. Well, the idea of pressing a button and getting a good quality and enjoyable track is false. Suno generates 89Kbps MP3s, which have the use case of a political satire song for Scared Ketchup. They went down all the wrong avenues. At the same time, while Udio has included a lot of gimmicks, the quality can hit 192Kbps, and the 35-second blocks system with lyrics placement makes it a professional tool (generating lyrics is its NEON Achilles heel.)

What gives value to an AI instrumental track?

Life is a hospice. Listening to music can be pain-relieving via hijacking your emotions. An accelerator for getting into a certain mood, a way to open up memories. The substitute for music is still music, no matter how it was made.

An AI instrumental track is a capture, with a great deal of chance. Can you not appreciate a nice photograph? Would you always take an issue with what filters, hardware/software were used, or could you just judge the image as nice, worthwhile, & an unrepeatable moment?

For me, instrumental music making requires knowledge of performers to try to influence the outcome, taste, luck, and lots of credits (real money). You are working with your likes, your esthetics, your judgement, your feelings. This is what producers do. I like to experiment, but I do have a returning mean, which is Chris Spheeris-like smooth jazz (at a minimum, you would start producing more milk with this kind of music), thanks to spending 12 years around the KKSF broadcaster, and of course, taking a liking to it.

By the way, music bands are filters, flavours. Of course, you can hype anything up, but besides the singer’s voice, there is the instrumental park and the BPM range.

My instrumental tracks (91).

Two tracks for highlights.

Baffling why the above Daft Punk hasn’t gone viral.

If your mind is still saying that AI music lacks in quality, try one of these (Riffusion is better than Suno, around 128Kbps, but still behind Udio):

I have only received Mercury for voice 3 times. I’ve been hoping for a George Michael, but no luck so far (it feels like he wasn’t included in the trading data). With the new batch, I have gone unusually unpolitical. Even the parodies are mostly just that of DM songs.

Made a couple of Sting songs as well, the newer generations don’t even know his name.

What do you know, I have made a song called “AI is never going to be conscious”. I let AI hallucinate some music to it.

Speaking of hallucination,

The last thing to talk about is how free speech is waived at YouTube.

Therefore, I would suggest not writing a song where you call out powerful billionaires by name and make suggestions about what to do with them. As my example shows, an album could just disappear with 18 songs on it, because someone did not approve of what you said. Even if the title was “Quest For Free Speech”. Your content may become “ineligible” at once. Trust me, I managed to hit the limit of freedom.

I only started uploading to a Topic ftom ny 8th album.

This is what you can make with 2000 tracks released in 15 months. Minus 30% witheld for foreign income, the currency conversion and the handling fee.

Which does not cover the Udio credit purchases, the Distrokid yearly fee & the NCH mastering software. You know I am not in it for the money, because there isn’t any in it. 1700 songs (average 3+ per day) aren’t enough to make a penny of profit, even excluding your own time and writing efforts. I am doing it because it is therapeutic, and sharing it because I think it has value (easier passing).

Momemtum Failure & Interaction Switch

My latest indicator, which I named Market Type, is a Swiss Army Knife Tool.

It is based on a simple idea of plotting volatility in both directions on a closing basis with 6 samples on the 30 minutes.

The list of things that it can provide you with is truly astonishing.

First, there is the pullback (yellow lines) that connects two humps with different colors.

In the following image, I circled the unexpected green continuation. This is the SOB, as you would normally expect a matching size bar next in the first, not the second color. Meaning, the next leg down would be the last. The brown horizontal lines are projection lines in search of the matching pair of the yellow divergence’s last volatility print.

A taper (same color humps connected) is a volatility divergence or a taper. Often, a V-bottom or V-top is what you should be looking for next. These swing lows usually do not get violated at all, or by a couple of pips at most. You are looking for a larger than 35-pip print.

Now here comes the headline, the momentum failure.

Mr. Reznicek says there’s no gravity on the charts. That may be true for Gold or stuff people HODL. Not for Forex. Gravity is present intermittently and is brought on by momentum failure. In fact, it tends to happen twice in a row. This is the very trade you want to be looking for if on the daily Grid is unable to get back above the first obstacle line, which is about 90% of the time.

Once the momentum fails (measured by 3-5 candles, from the current up fractal’s close to the bottom of the last fractal print), you are looking for 3 progression fractals down (on occasions 2, if the move gets stalled by the 120 BB). So in the above picture, two more progression fractals down are missing. The failure is a print below 10 pips with the high getting outside the 30 BB.

The blue color on the number is just extra confidence: not only terminal size, but also terminal duration to the swing (1.5-2.5 hours, aka an echo)/

I left the RSI2 digital print in from a previous routine.

#property copyright "Copyright © 2026, Macdulio"
#property link "https://forexfore.blog"
#property description "V1.0"
#property description "Market Type"
#property strict
//--- indicator settings
#property indicator_separate_window
#property indicator_buffers 3
#property indicator_color1 clrRed
#property indicator_color2 clrGreen
#property indicator_level1 20
#property indicator_level2 30
#property indicator_levelcolor clrBlue
#property indicator_levelstyle STYLE_DOT
extern int lookback = 100;
extern int indicator_window = 2;
extern int sample = 200;
extern double FSize=32;
double upper[], middle[], lower[];
double volup[], voldn[];
double avg;
double FMax = FSize*6/5;
double iHi4[];
double iLo4[];
int mes[];
string symbol = Symbol();
double ExtATRBuffer[],ExtATRBuffer2[],ExtATRBuffer3[],ExtATRBuffer4[],ExtATRBuffer5[],stoch60[];
double corr[],corr2[], RSI2[], squeeze[];
int init(){
SetIndexBuffer(0,voldn);
SetIndexStyle(0,DRAW_HISTOGRAM,STYLE_SOLID,6,indicator_color1);
SetIndexBuffer(1,volup);
SetIndexStyle(1,DRAW_HISTOGRAM,STYLE_SOLID,4,indicator_color2);
return(0);
}
//+------------------------------------------------------------------+
//| Average True Range |
//+------------------------------------------------------------------+
int start(){
ArrayResize(ExtATRBuffer, Bars);
ArrayInitialize(ExtATRBuffer, EMPTY_VALUE);
ArrayResize(ExtATRBuffer2, Bars);
ArrayInitialize(ExtATRBuffer2, EMPTY_VALUE);
ArrayResize(ExtATRBuffer3, Bars);
ArrayInitialize(ExtATRBuffer3, EMPTY_VALUE);
ArrayResize(ExtATRBuffer4, Bars);
ArrayInitialize(ExtATRBuffer4, EMPTY_VALUE);
ArrayResize(ExtATRBuffer5, Bars);
ArrayInitialize(ExtATRBuffer5, EMPTY_VALUE);
ArrayResize(iHi4, Bars);
ArrayInitialize(iHi4, EMPTY_VALUE);
ArrayResize(iLo4, Bars);
ArrayInitialize(iLo4, EMPTY_VALUE);
ArrayResize(stoch60, Bars);
ArrayInitialize(stoch60, EMPTY_VALUE);
ArrayResize(RSI2, Bars);
ArrayInitialize(RSI2, EMPTY_VALUE);
ArrayResize(corr, Bars);
ArrayInitialize(corr, EMPTY_VALUE);
ArrayResize(corr2, Bars);
ArrayInitialize(corr2, EMPTY_VALUE);
ArrayResize(middle, Bars);
ArrayInitialize(middle, EMPTY_VALUE);
ArrayResize(mes, Bars);
ArrayInitialize(mes, 0);
ArrayResize(squeeze, Bars);
ArrayInitialize(squeeze, 0);
ArrayResize(upper, Bars);
ArrayInitialize(upper, EMPTY_VALUE);
ArrayResize(lower, Bars);
ArrayInitialize(lower, EMPTY_VALUE);
ArrayResize(volup, Bars);
ArrayInitialize(volup, EMPTY_VALUE);
ArrayResize(voldn, Bars);
ArrayInitialize(voldn, EMPTY_VALUE);
int i,j,k;
for(i=lookback; i>=0; i--){
stoch60[i]=iStochastic(symbol,60,60,3,3,MODE_SMA,0,MODE_SIGNAL,i);
RSI2[i]=iRSI(symbol,0,2,PRICE_MEDIAN,i);
volup[i]=NormalizeDouble(MathAbs((Close[i]-iLow(symbol,0,iLowest(symbol,0,MODE_LOW,5,i)))*10000),0);
voldn[i]=NormalizeDouble(MathAbs((iHigh(symbol,0,iHighest(symbol,0,MODE_HIGH,5,i))-Close[i])*10000),0);
}
deletetxt1("AverD");
int twodigits = NormalizeDouble(RSI2[0],0);
//if (MathAbs(ExtATRBuffer[0])>ExtATRBuffer2[0]) twodigits = NormalizeDouble(MathAbs(ExtATRBuffer[0]),0);
//string tds = IntegerToString(twodigits);
int tens = round(twodigits/10);
int ones = twodigits-tens*10;
string stens, sones;
//Print("tens=",tens);
//Print("ones=",ones);
switch(tens)
{
case 1: stens=CharToStr(140);
break;
case 2: stens=CharToStr(141);
break;
case 3: stens=CharToStr(142);
break;
case 4: stens=CharToStr(143);
break;
case 5: stens=CharToStr(144);
break;
case 6: stens=CharToStr(145);
break;
case 7: stens=CharToStr(146);
break;
case 8: stens=CharToStr(147);
break;
case 9: stens=CharToStr(148);
break;
default: stens=CharToStr(139);
break;
}
//deletetxt1("AverD");
switch(ones)
{
case 1: sones=CharToStr(140);
break;
case 2: sones=CharToStr(141);
break;
case 3: sones=CharToStr(142);
break;
case 4: sones=CharToStr(143);
break;
case 5: sones=CharToStr(144);
break;
case 6: sones=CharToStr(145);
break;
case 7: sones=CharToStr(146);
break;
case 8: sones=CharToStr(147);
break;
case 9: sones=CharToStr(148);
break;
default: sones=CharToStr(139);
break;
}
string jointstring=stens+sones;
ObjectCreate("AverD",OBJ_LABEL,indicator_window, 0,0);
ObjectSet("AverD",OBJPROP_CORNER,3);
ObjectSet("AverD",OBJPROP_XDISTANCE,20);
ObjectSet("AverD",OBJPROP_YDISTANCE,27);
ObjectSetText("AverD",jointstring,40,"Wingdings",DimGray);
if (twodigits>85 || twodigits<15) ObjectSetText("AverD",jointstring,40,"Wingdings",Yellow);
if (twodigits>94 || twodigits<6) ObjectSetText("AverD",jointstring,40,"Wingdings",DeepPink);
return(0);
}
//+------------------------------------------------------------------+
void deletetxt1(string text){
for(int iObj=ObjectsTotal()-1; iObj >= 0; iObj--){
string on = ObjectName(iObj);
if(StringFind(on, text) == 0) ObjectDelete(on);
} }
double findAvg(int period, int shift) {
double sum=0;
for (int x=shift;x<(shift+period);x++) {
sum += High[x]-Low[x];
}
sum = sum/period;
return (sum);
}

The interaction switch is on the 1H chart. The usual blue circles.

The 3rd or 4th hour’s close.

    if (counter==4){ 
                                    ObjectDelete("GRACHT4");
                                    ObjectCreate(0,"GRACHT4",OBJ_TREND,0,Time[i+2],Low[i],Time[i],Low[i]);
                                    ObjectSetInteger(0,"GRACHT4",OBJPROP_RAY_RIGHT,True);
                                    ObjectSet("GRACHT4",OBJPROP_COLOR,Coral);                          
                                    ObjectSet("GRACHT4",OBJPROP_WIDTH, 3);
                                    ObjectDelete("GRACHT5");
                                    ObjectCreate(0,"GRACHT5",OBJ_TREND,0,Time[i+2],Close[i],Time[i],Close[i]);
                                    ObjectSetInteger(0,"GRACHT5",OBJPROP_RAY_RIGHT,True);
                                    ObjectSet("GRACHT5",OBJPROP_COLOR,Crimson);                          
                                    ObjectSet("GRACHT5",OBJPROP_WIDTH, 5);
                  
                  }


           if (counterd==3) {ObjectSetText("Countess"+i, IntegerToString(counterd,1,0), 15, "Arial Black", clrYellow);   
                                    ObjectDelete("DRACHT3");
                                    ObjectCreate(0,"DRACHT3",OBJ_TREND,0,Time[i+2],Close[i],Time[i],Close[i]);
                                    ObjectSetInteger(0,"DRACHT3",OBJPROP_RAY_RIGHT,True);
                                    ObjectSet("DRACHT3",OBJPROP_COLOR,Chartreuse);                          
                                    ObjectSet("DRACHT3",OBJPROP_WIDTH, 5);
                                          ObjectDelete("DRACHT2");
                                    ObjectCreate(0,"DRACHT2",OBJ_TREND,0,Time[i+2],High[i],Time[i],High[i]);
                                    ObjectSetInteger(0,"DRACHT2",OBJPROP_RAY_RIGHT,True);
                                    ObjectSet("DRACHT2",OBJPROP_COLOR,Chartreuse);                          
                                    ObjectSet("DRACHT2",OBJPROP_WIDTH, 3);
                  
                  }            

14-hour high/low with a 13-pip increment between the previous 2 hours, followed by a choke (moderated gain) on the current candle gives you count 1

upside
i>0 && High[i]==iHigh(symbol,i>0 && High[i]==iHigh(symbol,0,iHighest(symbol,0,MODE_HIGH,14,i)) &&
High[i+1]>High[i+2]+130*Point && High[i]<High[i+1]+130*Point && High[i]>High[i+1]
&& Low[i+1]>iMA(symbol,0,8,0,MODE_EMA,PRICE_OPEN,i+1)
i>0 && Low[i]==iLow(symbol,0,iLowest(symbol,0,MODE_LOW,14,i)) &&
Low[i+1]<Low[i+2]-80*Point && Low[i]>Low[i+1]-80*Point
&& Low[i]<Low[i+1]-10*Point && High[i+1]<iMA(symbol,0,16,0,MODE_EMA,PRICE_OPEN,i+1)

Technical + Holistic

For me, things start with market models.

I have given you one in the last post.

No, there is no low made yet.

To me, there is nothing technical about drawing lines. Technical starts with deriving values (quantities) and starting to associate meanings to different values. These values would be time frame and instrument dependent.

Gonna go with large steps from here.

There is another market model here blended in with some holistic stuff.

This is a 4-hour chart, which I barely ever use, since I have not made too many indicators for it.

Now, to ease you into the whole thing, you should only notice some blue squares and some circles first.

The Dodger blue box is a perceived important swing low in progress. The red extra is a bit of a moratorium area. The 14th candle’s close relative to the box (blue circle) is the m.o. of how things would progress from here. A mere close above the box would result in a move that would fail the upper Bollinger (30 sample, HL2) before continuing lower.

A strong close outside the box is projecting a move that is going to fail 3x at the brown line before proceeding lower.

There are two triggers for the box to be invoked; on the downside, these are tied to either an RSI sequence outside the bumper line, and the guard rail

if (i>0 && Low[i]<guardraild[i] && Low[i]<lowerbumper[i]
&& iRSI(symbol,0,2,PRICE_MEDIAN,i+1)<1
&& iRSI(symbol,0,2,PRICE_MEDIAN,i)<1
&& iRSI(symbol,0,2,PRICE_MEDIAN,i-1)>iRSI(symbol,0,2,PRICE_MEDIAN,i))

or without factoring in the bumper line, below the guard rail and a Money Flow V print with RSI2 hitting an absoulte low.

if (i>0 && Low[i]<guardraild[i]
&& iMFI(symbol,0,14,i)<iMFI(symbol,0,14,i-1)
&& iMFI(symbol,0,14,i)<iMFI(symbol,0,14,i+1)
&& iMFI(symbol,0,14,i)<25
&& iMFI(symbol,0,14,i)>12
&& iRSI(symbol,0,2,PRICE_MEDIAN,i)<.5)

The brown line (overdrive line) is a displacement of the 8 EMA (4 hours delay) by 902.4 pips on the upside

 E32L[i]=iMA(NULL,0,8,0,MODE_EMA, 1,i); 
 ODU[i]=E32L[i]+FMax*23.5*Point;


So, based on this little rant 1. the current low has not been confirmed, but 2. there should be another near miss of the overdrive line before continuing lower.

The other market model here is the Green River (9-day EMA Band = 52 EMA on 4-hour) with the Guard Rails (1 fluctuation maximum displacement in each direction).

The third encounter with the overdrive line is projected outside the upper guard rail, of course, not before finalizing the low in the green circle.

It is scary how many things you need to pay attention to that you do not even have a clue about.

But what else would I be using my brain for? Making music can become too easy. Trading never does.


With a different skew, the strong close outside resulted in having to fail the overdrive 3 times.

The Grid

Not sure if this is going to change in the future, but it certainly seems to be true for now on EurUsd.

The strong/sustained rallies seem to have a pacing of approximately 165 pips.

This single piece of information implies a great many things, for instance, that you should expect any move up to cap out at 155-175 pips unless there is an arrow giving away that you could see 2x or 3x of that metric.

Yes, the ugly colored lines are intentionally 20 pips wide. The blue arrows point at the highs of the green arrow days for the long trip to be made actual.

#property copyright "Daily Grid by Macdulio, (c) 2026."
#property link "http://www.forexfore.blog"
#property indicator_chart_window
#property indicator_buffers 3
#property indicator_color1 Tan
extern int lookback = 1000;
double MFI[];
double st18[], RSI2[], volup[], voldn[];
double cls[], cls2[], df[], ds[], dt[];
int gridadjust[];
int dir[];
bool c77[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
IndicatorBuffers(3);
SetIndexStyle(0,DRAW_LINE,0,23,indicator_color1);
SetIndexBuffer(0,df);
SetIndexStyle(1,DRAW_LINE,0,23,indicator_color1);
SetIndexBuffer(1,ds);
SetIndexStyle(2,DRAW_LINE,0,23,indicator_color1);
SetIndexBuffer(2,dt);
return(0);
}
int start()
{
ArrayResize(df, Bars);
ArrayInitialize(df, 100);
ArrayResize(ds, Bars);
ArrayInitialize(ds, 100);
ArrayResize(dt, Bars);
ArrayInitialize(dt, 100);
ArrayResize(gridadjust, Bars);
ArrayInitialize(gridadjust,0);
ArrayResize(dir, Bars);
ArrayInitialize(dir,0);
ArrayResize(RSI2, Bars);
ArrayInitialize(RSI2, EMPTY_VALUE);
ArrayResize(MFI, Bars);
ArrayInitialize(MFI, EMPTY_VALUE);
ArrayResize(c77, Bars);
ArrayInitialize(c77, false);
ArrayResize(volup, Bars);
ArrayInitialize(volup, EMPTY_VALUE);
ArrayResize(st18, Bars);
ArrayInitialize(st18, EMPTY_VALUE);
ArrayResize(voldn, Bars);
ArrayInitialize(voldn, EMPTY_VALUE);
ArrayResize(cls, Bars);
ArrayInitialize(cls, EMPTY_VALUE);
ArrayResize(cls2, Bars);
ArrayInitialize(cls2, EMPTY_VALUE);
int i,j;
string symbol = Symbol();
deletetxt1("Countess");
deletetxt1("Pick");
deletetxt1("Bing");
deletetxt1("Bracht");
deletetxt1("KAROLY");
int counter, counterd;
for (i=lookback-1; i>=0; i--)
{
voldn[i]=iLow(symbol,0,iLowest(symbol,0,MODE_LOW,4,i))+90*Point;
volup[i]=iHigh(symbol,0,iHighest(symbol,0,MODE_HIGH,4,i))-90*Point;
st18[i]=iStochastic(symbol,0,18,3,3,0,0,MODE_MAIN,i);
RSI2[i]=iRSI(symbol,0,2,PRICE_MEDIAN,i);
cls[i]=cls[i+1];
if (st18[ArrayMinimum(st18,10,i+1)]<4.4) c77[i]=true;
/// 3-sample low with stoch reading below 4.5 or 9.5 to 27.5
if (
i>0 &&
(
!(
c77[i+1] &&
Low[i+1]<iBands(symbol,0,20,2,0,PRICE_CLOSE,MODE_LOWER,i+1)))
// && iLow(symbol,0,iLowest(symbol,0,MODE_LOW,5,i-1))<=iLow(symbol,0,iLowest(symbol,0,MODE_LOW,6,i-1))
// && !(High[i+1]-Low[i+1]>730*Point && Close[i+1]>Open[i+1])
&& !(High[i+1]<High[i+4] && Low[i+1]>Low[i+4])
&& iLow(symbol,0,i)==iLow(symbol,0,iLowest(symbol,0,MODE_LOW,2,i-1))
&& (st18[i]<4.5 || (st18[i]>9.5 && st18[i]<27.5) || (st18[i+1]>9.5 && st18[i+1]<18.5))
// && Low[i]-Low[i+1]<430*Point
&& (Low[i]-Low[i+2]<430*Point || Low[i]-Low[i+2]>1000*Point)
&& (High[i]>High[i+1]-80*Point || (Open[i]<iBands(symbol,0,20,2,0,PRICE_CLOSE,MODE_LOWER,i)+50*Point && Close[i]>iBands(symbol,0,20,2,0,PRICE_CLOSE,MODE_LOWER,i) ) )
// && Open[i]<Close[i]
&& High[i]<iMA(symbol,0,44,0,MODE_EMA, PRICE_MEDIAN,i)
// && High[i]<iBands(symbol,0,20,2,0,PRICE_CLOSE,MODE_MAIN,i)-290*Point
&& (MathAbs(iBands(symbol,0,20,2,0,PRICE_CLOSE,MODE_MAIN,i)-iMA(symbol,0,44,0,MODE_EMA, PRICE_MEDIAN,i))>380*Point || High[i]>High[i+1] )
&& Low[i+1]>iBands(symbol,0,20,2,0,PRICE_CLOSE,MODE_LOWER,i+1)-700*Point
&& Low[i+2]>iBands(symbol,0,20,2,0,PRICE_CLOSE,MODE_LOWER,i+2)-700*Point
){
//&& (st18[i]<4.5 || (st18[i]>9.5 && st18[i]<18))
if (gridadjust[ArrayMaximum(gridadjust,14,i+1)]<1) cls[i]=Low[i];
gridadjust[i]=1;
// df[i]=cls[i]+.01650;
// ds[i]=cls[i]+.03300;
// dt[i]=cls[i]+.04950;
ObjectCreate("Bingt"+IntegerToString(i),OBJ_VLINE,0, Time[i], 0);
ObjectSet("Bingt"+IntegerToString(i),OBJPROP_COLOR,clrBlue);
if (st18[i]>9) ObjectSet("Bingt"+IntegerToString(i),OBJPROP_COLOR,clrPaleGreen);
ObjectSet("Bingt"+IntegerToString(i),OBJPROP_WIDTH,14);
ObjectSet("Bingt"+IntegerToString(i),OBJPROP_STYLE,STYLE_DOT);
ObjectSet("Bingt"+IntegerToString(i),OBJPROP_BACK,1);
}
}
for (i=lookback-1; i>=0; i--)
{
df[i+1]=cls[i+1]+.01650;
ds[i+1]=cls[i+1]+.03300;
dt[i+1]=cls[i+1]+.04950;
if (RSI2[i+2]<7 && Low[i+1]>iMA(symbol,0,9,0,MODE_EMA,PRICE_MEDIAN,i+1)-760*Point && Low[i+1]<Low[i+2]
&& High[i+1]<High[i+3]){
ObjectCreate("Bracht"+DoubleToStr(i), OBJ_TEXT, 0, Time[i+1], Low[i+1]-50*Point);
ObjectSetText("Bracht"+DoubleToStr(i), CharToStr(233), 32, "Wingdings", clrGreen);
}
}
return(0);
}
void deletetxt1(string text){
for(int iObj=ObjectsTotal()-1; iObj >= 0; iObj--){
string on = ObjectName(iObj);
if(StringFind(on, text) == 0) ObjectDelete(on);
} }

The struggle is still on for YouTube, receiving and posting all the music that I have made in the last 6 months – 10 albums are still missing. After that, I have a long, long AI music article for release that has been in the works.

Finally, my Billy Corgan album is there.

Volatility Compression Failure

This street-smart stuff, where you identify overbought and oversold (supply and demand) and make up rules that you cannot sell in the “discount” area, is going to leave you with diddly squat for profits.

Being oversold means nothing. Knowing that the selling has embedded yields you the safest sell, where the market is virtually unable to move against your position, and can provide continuous returns.

Lots of surplus lines in the following code, I have not weeded it out fully just for this occasion, so forgive me for that.

#property copyright "Volatility Compression Failure by Macdulio, (c) 2026."
#property link "http://www.forexfore.blog"
#property indicator_chart_window
#property indicator_buffers 3
#property indicator_color1 Green
#property indicator_color2 Red
extern int lookback = 1000;
double RSI2[], volup[], voldn[];
int dir[], u30[], d30[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
IndicatorBuffers(3);
//--- upper band
SetIndexStyle(0,DRAW_LINE,0,3,indicator_color1);
SetIndexBuffer(0,volup);
SetIndexLabel(0,"Bands Upper");
//--- lower band
SetIndexStyle(1,DRAW_LINE,0,3,indicator_color2);
SetIndexBuffer(1,voldn);
SetIndexLabel(1,"Bands Lower");
return(0);
}
int start()
{
ArrayResize(u30, Bars);
ArrayInitialize(u30, 0);
ArrayResize(d30, Bars);
ArrayInitialize(d30, 0);
ArrayResize(dir, Bars);
ArrayInitialize(dir,0);
ArrayResize(volup, Bars);
ArrayInitialize(volup, EMPTY_VALUE);
ArrayResize(voldn, Bars);
ArrayInitialize(voldn, EMPTY_VALUE);
int i;
string symbol = Symbol();
deletetxt1("Countess");
deletetxt1("Singende");
deletetxt1("KAROLY");
deletetxt1("BOG");
int counter, counterd;
for (i=lookback-1; i>=0; i--)
{
dir[i]=dir[i+1];
if ((iHigh(symbol,0,iHighest(symbol,0,MODE_HIGH,6,i+1))-Close[i+1])>300*Point
&& !((iHigh(symbol,0,iHighest(symbol,0,MODE_HIGH,6,i+2))-Close[i+2])>300*Point)
){
ObjectCreate("BOG"+IntegerToString(i),OBJ_TEXT, 1, Time[i+1],35);
ObjectSetText("BOG"+IntegerToString(i),"30!", 16, "Impact", clrBlack);
d30[i]=1; if (dir[i]>0) dir[i]=0;
}
if ((Close[i+1]-iLow(symbol,0,iLowest(symbol,0,MODE_LOW,6,i+1)))>300*Point
&& !((Close[i+2]-iLow(symbol,0,iLowest(symbol,0,MODE_LOW,6,i+2)))>300*Point)
){
ObjectCreate("BOG"+IntegerToString(i),OBJ_TEXT, 1, Time[i+1],75);
ObjectSetText("BOG"+IntegerToString(i),"30!", 16, "Impact", clrBlue);
u30[i]=1; if (dir[i]<0) dir[i]=0;
}
if (High[i]-Low[i]>145*Point){
if (u30[i+10]>0 && Close[i]>iMA(symbol,0,16,0,MODE_EMA,PRICE_MEDIAN,i) && Close[i+1]>iMA(symbol,0,16,0,MODE_EMA,PRICE_MEDIAN,i+1))
dir[i]=1;
if (d30[i+10]>0 && Close[i]<iMA(symbol,0,16,0,MODE_EMA,PRICE_MEDIAN,i) && Close[i+1]<iMA(symbol,0,16,0,MODE_EMA,PRICE_MEDIAN,i+1))
dir[i]=-1;
if (u30[i+11]>0 && Close[i]>iMA(symbol,0,16,0,MODE_EMA,PRICE_MEDIAN,i) && Close[i+1]>iMA(symbol,0,16,0,MODE_EMA,PRICE_MEDIAN,i+1))
dir[i]=1;
if (d30[i+11]>0 && Close[i]<iMA(symbol,0,16,0,MODE_EMA,PRICE_MEDIAN,i) && Close[i+1]<iMA(symbol,0,16,0,MODE_EMA,PRICE_MEDIAN,i+1))
dir[i]=-1;
if (u30[i+12]>0 && Close[i]>iMA(symbol,0,16,0,MODE_EMA,PRICE_MEDIAN,i) && Close[i+1]>iMA(symbol,0,16,0,MODE_EMA,PRICE_MEDIAN,i+1))
dir[i]=1;
if (d30[i+12]>0 && Close[i]<iMA(symbol,0,16,0,MODE_EMA,PRICE_MEDIAN,i) && Close[i+1]<iMA(symbol,0,16,0,MODE_EMA,PRICE_MEDIAN,i+1))
dir[i]=-1;
}
// if ((iHigh(symbol,0,iHighest(symbol,0,MODE_HIGH,5,i+1))-Close[i+1])>200*Point && dir[i]>0) dir[i]=0;
// if ((Close[i+1]-iLow(symbol,0,iLowest(symbol,0,MODE_LOW,5,i+1)))>200*Point && dir[i]<0) dir[i]=0;
voldn[i]=iLow(symbol,0,iLowest(symbol,0,MODE_LOW,5,i))+200*Point;
volup[i]=iHigh(symbol,0,iHighest(symbol,0,MODE_HIGH,5,i))-200*Point;
if (Close[i]<iMA(symbol,0,16,0,MODE_EMA,PRICE_MEDIAN,i) && Close[i]<voldn[i])
{
ObjectCreate("KAROLYI"+IntegerToString(i), OBJ_RECTANGLE, 0, Time[i+1], voldn[i], Time[i], Low[i]);
ObjectSetInteger(0,"KAROLYI"+IntegerToString(i),OBJPROP_COLOR,clrSalmon);
ObjectSetInteger(0,"KAROLYI"+IntegerToString(i),OBJPROP_WIDTH,4);
ObjectSetInteger(0,"KAROLYI"+IntegerToString(i),OBJPROP_BACK,1);
}
if (Close[i]>iMA(symbol,0,16,0,MODE_EMA,PRICE_MEDIAN,i) && Close[i]>volup[i])
{
ObjectCreate("KAROLYI"+IntegerToString(i), OBJ_RECTANGLE, 0, Time[i+1], volup[i], Time[i], High[i]);
ObjectSetInteger(0,"KAROLYI"+IntegerToString(i),OBJPROP_COLOR,clrChartreuse);
ObjectSetInteger(0,"KAROLYI"+IntegerToString(i),OBJPROP_WIDTH,4);
ObjectSetInteger(0,"KAROLYI"+IntegerToString(i),OBJPROP_BACK,1);
}
}
for (i=600; i>=0; i--)
{
ObjectCreate("Singende"+DoubleToStr(i), OBJ_TEXT, 1, Time[i], 50);
if (dir[i]>0) ObjectSetText("Singende"+DoubleToStr(i), CharToStr(110), 12, "Wingdings", clrMediumSpringGreen);
if (dir[i]<0) ObjectSetText("Singende"+DoubleToStr(i), CharToStr(110), 12, "Wingdings", clrCrimson);
if (dir[i]==0) ObjectSetText("Singende"+DoubleToStr(i), CharToStr(110), 12, "Wingdings", clrYellow);
ObjectSetInteger(0,"Singende"+DoubleToStr(i),OBJPROP_BACK,1);
}
return(0);
}
void deletetxt1(string text){
for(int iObj=ObjectsTotal()-1; iObj >= 0; iObj--){
string on = ObjectName(iObj);
if(StringFind(on, text) == 0) ObjectDelete(on);
} }

The current market type is “no counter-directional volatility market”, in short, “no volatility”, which here means absolutely no buying that would achieve a 30+ pip close on the 30-minute chart for the latest low within 3 hours. If you are looking at the last row, you would see that there hasn’t been a print greater than 30 for 169 bars (85 hours).