Live To Sell

Pro volume arrived.

The arrows are new plots, candles closing back 3/5th and 2/5th. Yet another bounce off of the green support (at 1/3 of the hourly candle).

///reversal wick - upside

       if (High[i]>iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_UPPER,i) && (High[i]-Low[i])>180*Point && Close[i]<High[i]-(High[i]-Low[i])/5*3 && Open[i]<High[i]-(High[i]-Low[i])/3
       && High[i]>High[i+1]
       ){
      ObjectCreate("Goal"+IntegerToString(i), OBJ_TEXT, 0, Time[i+1], High[i]-(High[i]-Low[i])/3+30*Point); 
        ObjectSetText("Goal"+IntegerToString(i), CharToStr(220), 38, "Wingdings", Red); 
  }    
  
  
  ///reversal wick - downside
         if (Low[i]<iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_LOWER,i) 
         && Low[i]<Low[i+1]
         //&& (High[i]-Low[i])>140*Point
          && Close[i]>Low[i]+(High[i]-Low[i])/5*3 && Open[i]>Low[i]+(High[i]-Low[i])/3){
      ObjectCreate("Goal"+IntegerToString(i), OBJ_TEXT, 0, Time[i+1], Low[i]+(High[i]-Low[i])/3+30*Point); 
        ObjectSetText("Goal"+IntegerToString(i), CharToStr(220), 38, "Wingdings", Green); 
  }   
  
   ///reversal wick - downside, between 2 candles
  if (Low[i]<iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_LOWER,i) 
         && Low[i]<Low[i+1]
         && Close[i]>Open[i]
         //&& (High[i]-Low[i])>140*Point
          && Close[i]>Low[i]+(High[i+1]-Low[i])/5*2 
          //&& Open[i+1]>Low[i+1]+(High[i]-Low[i])/3
          ){
      ObjectCreate("Goal"+IntegerToString(i), OBJ_TEXT, 0, Time[i+1], Low[i]+(High[i+1]-Low[i])/3+30*Point); 
        ObjectSetText("Goal"+IntegerToString(i), CharToStr(220), 38, "Wingdings", Green); 
  }   

Due to the increased volatility, I trade on a quarter lot basis and try not to hold more than 2 naked lots for a longer period.

I am constantly taking profits to boost the equity bottom line.

This is not the only way, but it is my way. I don’t aim for home runs.

Yesterday, I made $1214.58; today, I’m at $996.97, so that’s 2.2k I did not have on Friday. I had 70-80 closed-out trades per day. Started with full hedge, aiming to close with a full hedge. In terms of money, what I am doing can be done with an 8-9k account.

If you want to know, my biggest daily Forex gain was 27k, and the best month brought 87k.

Parabolic Recap

So, the primary exit was about the pro volume candle’s high, and once this condition was met, the secondary exit at the 120-sample BB. Both highlighted with an orange marker.

Now, let’s figure out some filters for the parabolic move in real time.

///parabolic break up
      if ((High[i+3]>High[i+4] || High[i+4]>High[i+5]) 
      && Close[i+3]>iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_UPPER,i+3) 
      && High[i+1]-Low[i+1]<900*Point
      && (High[i+2]-Low[i+2]>400*Point || (Close[i+4]>iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_UPPER,i+4) && Close[i+5]>iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_UPPER,i+5)))
      && High[i+2]<High[i+3] && Close[i+2]<iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_UPPER,i+2)
      && Close[i+1]>iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_UPPER,i+1) && High[i+1]==iHigh(symbol,0,iHighest(symbol,0,MODE_HIGH,4,i+1))
      && High[i+1]>iBands(symbol,0,120,2,0,PRICE_MEDIAN,MODE_UPPER,i+1)
      ) 
            
      {
          ObjectCreate("Bitera"+IntegerToString(i), OBJ_TEXT, 0, Time[i+12], High[i+1]+50*Point); 
            ObjectSetText("Bitera"+IntegerToString(i), "PARABOLIC MOVE!!! "+DoubleToStr(NormalizeDouble(Close[i+1],4),4) , 21, "Impact", Navy);  
      }
      
      ///parabolic break down
            if ((Low[i+3]<Low[i+4] || Low[i+4]<Low[i+5]) 
      && Close[i+3]<iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_LOWER,i+3) 
      && High[i+1]-Low[i+1]<900*Point
      && (High[i+3]-Low[i+3]>400*Point || (Close[i+4]<iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_LOWER,i+4) && Close[i+5]<iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_LOWER,i+5)))
      && Low[i+2]>Low[i+3] && Close[i+2]>iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_LOWER,i+2)
      && Close[i+1]<iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_LOWER,i+1)+20*Point 
      && Low[i+1]<=iLow(symbol,0,iLowest(symbol,0,MODE_LOW,4,i+1))+20*Point
      && Low[i+1]<iBands(symbol,0,120,2,0,PRICE_MEDIAN,MODE_LOWER,i+1)
      ) 
      {
          ObjectCreate("Bitera"+IntegerToString(i), OBJ_TEXT, 0, Time[i+12], Low[i+1]-30*Point); 
            ObjectSetText("Bitera"+IntegerToString(i), "PARABOLIC MOVE!!! "+DoubleToStr(NormalizeDouble(Close[i+1],4),4) , 21, "Impact", Navy);  
      }

One common denominator is that things can go awry beyond the 120-sample BB. The exit condition would be an FFF++ distance (end of the Pendulum) unless the price is already outside of it. The first example was something that went outside and never cared to consolidate, so I had to find usable conditions with an unknown playfield.

Let’s write an overhedger that would put you in a 20% extra directional holding even if you are asleep.

// Parabolic Overhedger by Macdulio

#include <stdlib.mqh>
extern double Equity = 400;
extern int magic_number = 98;
extern int magic_number2 = 99;
extern double Ratio = .6;
extern double overhedge = 120;
extern double MarginCallPercentage = 100;
extern double FSize=32;
#property copyright "by Macdulio in 2025" 
#property link      "https://forexfore.blog" 
#property description "Parabolic Overhedger"  

int profits;

  double nakedshorts[];
  double nakedlongs[];
  
  
  double open_price;
  double stop_loss_price;
  double take_profit_price;
  
  double open_price2;
  double stop_loss_price2;
  double take_profit_price2;
  

 double OrderOpenPrice;
 double OrderProfit;
  string symbol = Symbol();   
int init() {
   return(0);
}

int deinit() {
  return(0);
}

int start() {

  
int i, counter;
int counted_bars=IndicatorCounted();
int longcount, shortcount;
double nlongs;
double nshorts;
double longaveragebuffer;
double shortaveragebuffer;
int order_type;
  
profits = 0;
 int hstTotal=OrdersHistoryTotal();

 counter = 0;

 // Print("Ratio = ", Ratio);

 for(i=OrdersTotal()-1; i>=0 ; i--)
 {   
   
   if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false)
        { 
           Print("Access to orders list failed with error (",GetLastError(),")");
           break;
        }
             if (OrderType() == OP_BUY) 
             {
               nlongs = nlongs+OrderLots();
               longcount = longcount+1;
               longaveragebuffer = longaveragebuffer+(OrderOpenPrice()*OrderLots()); 
                  
             }  
               
             if (OrderType() == OP_SELL )
             {
               nshorts = nshorts+OrderLots(); 
               shortcount = shortcount+1;         
               shortaveragebuffer = shortaveragebuffer+(OrderOpenPrice()*OrderLots()); 
             }
         }
   
   if (nlongs!=nshorts){
   
          

  // Parabolic break up OverHedge for shorts
  if (nlongs<nshorts && (High[3]>High[4] || High[4]>High[5]) 
      && Close[3]>iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_UPPER,3) 
      && High[1]-Low[1]<900*Point
      && (High[2]-Low[2]>400*Point || (Close[4]>iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_UPPER,4) && Close[5]>iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_UPPER,5)))
      && High[2]<High[3] && Close[2]<iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_UPPER,2)
      && Close[1]>iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_UPPER,1) && High[1]==iHigh(symbol,0,iHighest(symbol,0,MODE_HIGH,4,1))
      && High[1]>iBands(symbol,0,120,2,0,PRICE_MEDIAN,MODE_UPPER,1)
      ) {
  
    RemoveStopsandTargets();
    open_price2 = NormalizeDouble(Ask, Digits);
    stop_loss_price2 = NormalizeDouble(0.00,Digits);
    take_profit_price2 = NormalizeDouble(0,Digits);

 for (i = OrdersTotal() - 1; i >= 0; i--)

      if (OrderSelect(i, SELECT_BY_POS))
        if (OrderMagicNumber() == magic_number2) {
          order_type = OrderType();
          if (order_type == ORDER_TYPE_BUY) {
            if ((NormalizeDouble(OrderOpenPrice(), Digits) != open_price2) || (NormalizeDouble(OrderStopLoss(), Digits) != stop_loss_price2) || (NormalizeDouble(OrderTakeProfit(), Digits) != take_profit_price2)) {
              if (!OrderModify(OrderTicket(), open_price2, stop_loss_price2, take_profit_price2, OrderExpiration()))
                Print("Error: ", ErrorDescription(_LastError));
                
            }
            break;
          }
          else if (order_type == ORDER_TYPE_BUY)
            break;
        }
    if (i < 0)
      if (OrderSend(symbol, OP_BUY,  NormalizeDouble((nshorts-nlongs)*overhedge/100,2), open_price2, 3, stop_loss_price2, take_profit_price2, magic_number2+" EQUITY HEDGER BUY 0/0",  magic_number2) < 0)
        
               Print("Error: ", ErrorDescription(_LastError));
  }
  else
    for (i = OrdersTotal() - 1; i >= 0; i--)

      if (OrderSelect(i, SELECT_BY_POS))
        if (OrderMagicNumber() == magic_number2 )
          if (OrderType() == ORDER_TYPE_BUY_STOP)
            if (!OrderDelete(OrderTicket()))
              Print("Error: ", ErrorDescription(_LastError));              
              
 
              
              
              
              
// Parabolic break down OverHedge For Longs
 if (nshorts<nlongs && (Low[3]<Low[4] || Low[4]<Low[5]) 
      && Close[i]<iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_LOWER,3) 
      && High[1]-Low[1]<900*Point
      && (High[3]-Low[3]>400*Point || (Close[4]<iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_LOWER,4) && Close[5]<iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_LOWER,5)))
      && Low[i]>Low[3] && Close[2]>iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_LOWER,2)
      && Close[1]<iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_LOWER,1)+20*Point 
      && Low[1]<=iLow(symbol,0,iLowest(symbol,0,MODE_LOW,4,1))+20*Point
      && Low[1]<iBands(symbol,0,120,2,0,PRICE_MEDIAN,MODE_LOWER,1))
      {
    RemoveStopsandTargets();
    open_price2 = NormalizeDouble(Bid, Digits);
    stop_loss_price2 = NormalizeDouble(0,Digits);
    take_profit_price2 = NormalizeDouble(0,Digits);
    for (i = OrdersTotal() - 1; i >= 0; i--)
      if (OrderSelect(i, SELECT_BY_POS))
        if (OrderMagicNumber() == magic_number2) {
          order_type = OrderType();
          if (order_type == ORDER_TYPE_SELL) {
            if ((NormalizeDouble(OrderOpenPrice(), Digits) != open_price2) || (NormalizeDouble(OrderStopLoss(), Digits) != stop_loss_price2) || (NormalizeDouble(OrderTakeProfit(), Digits) != take_profit_price2)) {
              if (!OrderModify(OrderTicket(), open_price2, stop_loss_price2, take_profit_price2, OrderExpiration()))
                Print("Error: ", ErrorDescription(_LastError));
            }
            break;
          }
                    else if (order_type == ORDER_TYPE_SELL)
            break;
        }
    if (i < 0)
      if (OrderSend(symbol, OP_SELL, NormalizeDouble((nlongs-nshorts)*overhedge/100,2), open_price2, 3, stop_loss_price2, take_profit_price2, magic_number2+" EQUITY HEDGER SELL 0/0", magic_number2) < 0)
        Print("Error: ", ErrorDescription(_LastError));
  }
  else
    for (i = OrdersTotal() - 1; i >= 0; i--)
      if (OrderSelect(i, SELECT_BY_POS))
        if (OrderMagicNumber() == magic_number2)
          if (OrderType() == ORDER_TYPE_SELL_STOP)
            if (!OrderDelete(OrderTicket()))
              Print("Error: ", ErrorDescription(_LastError));              
 
 

        
  return(0);
}
}

double RemoveStopsandTargets()
{
   int i;
   for (i = OrdersTotal() - 1; i >= 0; i--){
   if( OrderSelect(i,SELECT_BY_POS, MODE_TRADES)) 
    if( OrderType()==OP_BUYSTOP && MathAbs(OrderOpenPrice()-Ask)<.003) 
       OrderDelete( OrderTicket() );
       else if( OrderType()==OP_SELLSTOP && MathAbs(OrderOpenPrice()-Bid)<.003) 
                 OrderDelete(OrderTicket());}
                 
 
 for (i = OrdersTotal() - 1; i >= 0; i--){
  
   if( OrderSelect(i,SELECT_BY_POS)){

  

          if (OrderType() == OP_SELL 
          //&& OrderMagicNumber()!=magic_number3
          ){
              if (!OrderModify(OrderTicket(), OrderOpenPrice(), NormalizeDouble(0,4),  NormalizeDouble(0,4), OrderExpiration()))
                Print("Error: ", ErrorDescription(_LastError));
           }
   
     if (OrderType() == OP_BUY 
     //&& OrderMagicNumber()!=magic_number3
     ) { 
                   
              if (!OrderModify(OrderTicket(), OrderOpenPrice(), NormalizeDouble(0,4),  NormalizeDouble(0,4), OrderExpiration()))
                Print("Error: ", ErrorDescription(_LastError));
          }
     }     
   }
 return(0);
 
}

I am baffled by people who think they can trade everything. I am barely starting to develope some understanding for one single instrument’s behavior.

Market Types

This front part is my first thoughts about the differences between the parabolic and anabolic markets, how to identify them, and what exits to look for.

The market type is determined by the initial speed burst (intake) and the presence or lack of a follow-up enthusiasm

The parabolic market is all about high volume dumps & double pumps
Particularly interesting are the pro-candles outside the BB
The primary exit is anywhere beyond a pro volume with a counter directional color
The secondary exit is the 120BB
This market is prone to cause capitulation(s)

The anabolic market is about divergences & taper
A slow divergence to match and a quick taper for an extra 30 pips

You want to see the time gap between the switching off market speed prints, 10 hours at least between 25+ reads. An opening print is qualified with a 25+ read (15+ pips beyond the 30BB HL2).

This is a serious acceleration to the downside, which is at 51 already.

Achilles Dent: Radioactivity (C-boyed)

El Capitan

The Four Tops (Outside 3BBs Fractal) and the Loco In Acapulco (professionals dumping longs on that doji).

Now, watch my hand because I’m cheating. A capitulation comes with a major reversal, typically a 100-pip bounce. The driven thrusts can build on each other; see how the second one is outside the 30-BB from the get-go. I would target the lower BB with the shorts since the second thrust brought on a reversal.

#property copyright "Copyright © 2025, Macdulio" 
#property link      "https://forexfore.blog" 
#property description "V1.0"
#property description "Market Speed"


//--- indicator settings
#property indicator_separate_window
#property indicator_buffers 3
#property indicator_color1  clrDarkGreen
#property indicator_color3  clrMagenta
#property indicator_color2  clrCrimson
#property indicator_level1 10
#property indicator_level2 20
#property indicator_level3 30
#property indicator_level4 40
#property indicator_level5 50
#property indicator_level6 60
#property indicator_levelcolor clrBlue
#property indicator_levelstyle STYLE_DOT

double E44[], ExtMovingBuffer[];
double ExtLowerBuffer[];
extern double valuemonitor = 24;
extern int lookback = 800;
extern int indicator_window = 3;
extern int sample = 200;
extern double FSize=32;
double upper[], middle[], lower[];
double avg;
double FMax = FSize*6/5;
double iHi4[];
double iLo4[];    
  string symbol = Symbol();  
double ExtATRBuffer[],ExtATRBuffer2[],ExtATRBuffer3[],ExtATRBuffer4[],ExtATRBuffer5[],stoch60[];
double corr[],corr2[], RSI2[], squeeze[];

int init(){
  
   SetIndexBuffer(0,ExtATRBuffer);   
   SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,4,indicator_color1);
   SetIndexBuffer(1,ExtATRBuffer2);   
   SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,4,indicator_color2);
   SetIndexBuffer(2,ExtATRBuffer3);   
   SetIndexStyle(2,DRAW_LINE,STYLE_SOLID,4,indicator_color3);


   return(0);
}

//+------------------------------------------------------------------+
//| Average True Range                                               |
//+------------------------------------------------------------------+
int start(){
  
  ArrayResize(ExtATRBuffer, Bars); 
  ArrayInitialize(ExtATRBuffer, 0);   
    ArrayResize(ExtATRBuffer2, Bars); 
  ArrayInitialize(ExtATRBuffer2, 0);   
      ArrayResize(ExtATRBuffer3, Bars); 
  ArrayInitialize(ExtATRBuffer3, EMPTY_VALUE);  
      ArrayResize(ExtATRBuffer4, Bars); 
  ArrayInitialize(ExtATRBuffer4, EMPTY_VALUE);  
     ArrayResize(ExtATRBuffer5, Bars); 
  ArrayInitialize(ExtATRBuffer5, EMPTY_VALUE);   
    ArrayResize(ExtMovingBuffer, Bars);
  ArrayInitialize(ExtMovingBuffer,0); 
       ArrayResize(ExtLowerBuffer, Bars);
  ArrayInitialize(ExtLowerBuffer,0); 
    ArrayResize(E44, Bars);
  ArrayInitialize(E44,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(squeeze, Bars);   
 ArrayInitialize(squeeze,  0); 
  ArrayResize(upper, Bars);   
 ArrayInitialize(upper,  EMPTY_VALUE);  
 ArrayResize(lower, Bars);   
 ArrayInitialize(lower,  EMPTY_VALUE);  
    
   int i,j;
double std;
for (i=0; i<lookback; i++){  
   E44[i]=iMA(symbol,0,44,0,MODE_EMA, PRICE_MEDIAN,i);
      for (j=i; j<i+20; j++) 
      ExtMovingBuffer[i]=ExtMovingBuffer[i]+E44[j];
       ExtMovingBuffer[i]=ExtMovingBuffer[i]/20;
}      

deletetxt1("God");
 
   for (i=lookback-1; i>=0; i--)
   {  
       std = iStdDevOnArray(ExtMovingBuffer,0,10,0,0,i);                 
       ExtLowerBuffer[i]=ExtMovingBuffer[i]-std;
}

  for(i=Bars-100; i>=0; i--){ 
   
     if (Period()==240)   iHi4[i]=iMA(NULL,0,52,0,MODE_EMA, PRICE_HIGH,i);
     else if (Period()==30) iHi4[i]=iMA(NULL,0,414,0,MODE_EMA, PRICE_HIGH,i);
     else if (Period()==60) iHi4[i]=iMA(NULL,0,207,0,MODE_EMA, PRICE_HIGH,i);
     if (Period()==240)  iLo4[i]=iMA(NULL,0,52,0,MODE_EMA, PRICE_LOW,i);
     else if (Period()==30) iLo4[i]=iMA(NULL,0,414,0,MODE_EMA, PRICE_LOW,i);
     else if (Period()==60) iLo4[i]=iMA(NULL,0,207,0,MODE_EMA, PRICE_LOW,i);
      stoch60[i]=iStochastic(symbol,60,60,3,3,MODE_SMA,0,MODE_SIGNAL,i);
      RSI2[i]=iRSI(symbol,0,2,PRICE_MEDIAN,i);
}

deletetxt1("Pepper");
deletetxt1("Panace");
deletetxt1("PLOT");
deletetxt1("LINE");

for(i=lookback; i>=0; i--){ 
      middle[i] = iMA(NULL, 0, 20, 0, MODE_SMA, PRICE_TYPICAL, i);
      avg  = findAvg(20, i);
      upper[i] = middle[i] + avg;
      lower[i] = middle[i] - avg;
  
 if (High[i]>(iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_UPPER,i)-50*Point)) {ExtATRBuffer[i]=(High[i]-iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_UPPER,i))*10000+10;
   if (ExtATRBuffer[i]>valuemonitor) ExtATRBuffer3[i]=ExtATRBuffer[i];
 }
 
 if (Low[i]<iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_LOWER,i)+50*Point) {ExtATRBuffer2[i]=(iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_LOWER,i)-Low[i])*10000+10;
   if (ExtATRBuffer2[i]>valuemonitor) ExtATRBuffer3[i]=ExtATRBuffer2[i];
 }   
}


deletetxt1("AveriD");
deletetxt1("AverD");

int twodigits=0;

if (ExtATRBuffer[0]!=0) twodigits = NormalizeDouble((High[0]-iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_UPPER,0))*10000+10,0);

if (ExtATRBuffer2[0]!=0) twodigits  = NormalizeDouble((iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_LOWER,0)-Low[0])*10000+10,0);


if (ExtATRBuffer[0]!=EMPTY_VALUE && twodigits>19) {
ObjectCreate("AverD",OBJ_LABEL,indicator_window, 0,0);
ObjectSet("AverD",OBJPROP_CORNER,2);
    ObjectSet("AverD",OBJPROP_XDISTANCE,20);
  ObjectSet("AverD",OBJPROP_YDISTANCE,27);
ObjectSetText("AverD","Abnormal",40,"Impact",DeepPink);
}

if (ExtATRBuffer2[0]!=EMPTY_VALUE && twodigits>15) {
ObjectCreate("AverD",OBJ_LABEL,indicator_window, 0,0);
ObjectSet("AverD",OBJPROP_CORNER,2);
    ObjectSet("AverD",OBJPROP_XDISTANCE,20);
  ObjectSet("AverD",OBJPROP_YDISTANCE,27);
ObjectSetText("AverD","Abnormal",40,"Impact",DeepPink);
}




int tens = round(twodigits/10);

int ones = twodigits-tens*10; 

string stens, sones;



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("AveriD",OBJ_LABEL,indicator_window, 0,0);

ObjectSet("AveriD",OBJPROP_CORNER,3);
    ObjectSet("AveriD",OBJPROP_XDISTANCE,20);
  ObjectSet("AveriD",OBJPROP_YDISTANCE,27);
  
ObjectSetText("AveriD",jointstring,40,"Wingdings",DimGray);
if (twodigits>15)  ObjectSetText("AveriD",jointstring,40,"Wingdings",Tomato);  
if (twodigits>19)  ObjectSetText("AveriD",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);
   }

Not A Lot…

But this is starting to look like a big bull flag.

There’s a squeeze. Both sides are within 70 pips of the 200-sample extreme. No upper hand here. One quick stab from either side and the other one gets left behind in the shed for a beating. I decided to stop shorting for now.

The yellow trendline does not even get touched anymore.

Maybe a quick dip lower first, to the green support zone, but can’t see much reward here.

The 9-day EMA is too close for comfort as well.

The Game…

…played here is Fade or Escape.

The distance measured from the 200-hour low and the 200-hour high is plotted.

When both lines are outside the 93-pip line (purple) and they are both relatively close, the probability of a switch off becomes a possibility.

The odds favor the Fade, i.e. now that the longs have just escaped from the volaility compression zone, they are more likely to be put back into the woodshed (anywhere below the orange box).

1-3 stochastic bars are toxic. 3+ in a row is building up tolerance agaist poisioning.


Returning Home First

Once the market has made a Push and an Echo (Palm, House suggesting a return home) the minimum target would be the weekly S1 – 1.0704, before perhaps continuing with the next leg up.

The RSI2 picture (Nick Rhodes) similarly would suggest a lower low first, although this one is less optimistic and says Buy 1.0719, the back to the 20 SMA part already has happened on Thursday and Friday.

The speed taper received a quick fake out, but I do not like that the move has ended on strength. A divergence seems to be missing, a lower low fractal without a stochastic bar print.

That said, there is some chance that they buy a higher low below the E-44 (cyan) for another higher high first.

Bunch Of Things

Numero uno, I have invented a market speed indicator.

Remember when the market went berserk?

Well, the Wave 3 did not end util the initial stretch achieved was approached closely (plus the drop off of an extra 30 pips).

I use the 30BB HL2 and the numbers are pips. So, the 44 reading needed its pair at 42 to come about to show decreasing enthusiasm.

if (High[i]>iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_UPPER,i)-50*Point) ExtATRBuffer[i]=(High[i]-iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_UPPER,i))*10000;
 
if (Low[i]<iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_LOWER,i)+50*Point) ExtATRBuffer2[i]=(iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_LOWER,i)-Low[i])*10000;
 

So now I am looking for a 29-30 print to go with the 32 on the left.

This current up move tagged the yellow trendline yet again. It was a bigger up move, because you had 3 of the outside all 3 BB fractals (ovals).

The indicator on the bottom is a hijacked Supertramp, as I am fed up with everyone else’s stupid ideas about a trending market. My filter is the E-44 HL2, the big brother of the E-16 HL2.

      if (Close[i]>iMA(symbol,0,44,0,MODE_EMA,PRICE_MEDIAN,i))  TrendDoA[i] = 1; 
            if (Close[i]<iMA(symbol,0,44,0,MODE_EMA,PRICE_MEDIAN,i))  TrendDoB[i] = 1; 

Five hours on one side and something may be up, a reversion may be afoot.

The 3rd thing is that this morning they bought the 3rd hour. See the yellow line on the close of the 3?

I have a ton more examples, and #3 has O, H, L, C readings, but the back tests seem to always immediately declare what the intentions are.


 if (High[i+1]>iMA(symbol,0,44,0,MODE_EMA,PRICE_MEDIAN,i+1) && 
    iRSI(symbol,0,2,PRICE_MEDIAN,i)<iRSI(symbol,0,2,PRICE_MEDIAN,i+1)-5 && iRSI(symbol,0,2,PRICE_MEDIAN,i+2)<iRSI(symbol,0,2,PRICE_MEDIAN,i+1)-2
      && TrendDoB[i+7] == 1 && TrendDoB[i+8] == 1 && High[i+1]==iHigh(symbol,0,iHighest(symbol,0,MODE_HIGH,8,i+1))
      )
   {
                 ObjectCreate("Mladen"+IntegerToString(i), OBJ_TEXT, 0, Time[i+1], High[i+1]+40*Point); 
                 ObjectSetText("Mladen"+IntegerToString(i), CharToStr(234), 42, "Webdings", clrRed);
   }

   if (Low[i+1]<iMA(symbol,0,44,0,MODE_EMA,PRICE_MEDIAN,i+1) && 
    iRSI(symbol,0,2,PRICE_MEDIAN,i)>iRSI(symbol,0,2,PRICE_MEDIAN,i+1)+5 && iRSI(symbol,0,2,PRICE_MEDIAN,i+2)>iRSI(symbol,0,2,PRICE_MEDIAN,i+1)-2
      && TrendDoA[i+7] == 1 && TrendDoA[i+8] == 1  && Low[i+1]==iLow(symbol,0,iLowest(symbol,0,MODE_LOW,8,i+1))
      )
   {
                 ObjectCreate("Mladen"+IntegerToString(i), OBJ_TEXT, 0, Time[i+1], Low[i+1]+10*Point); 
                 ObjectSetText("Mladen"+IntegerToString(i), CharToStr(234), 42, "Webdings", clrGreen);
   }

Erase Me…

…to the Finish Line.

An expanding ABC cotrection with the LL being the typicsl 4 pips lower from the end of the acceleration (orange) right before the Thrust down commencing.

The B-C move is the price going from oversold to overbought

The LL is aldo a trip low, do you pretty much have 16 pips lower guaranteed. Of course there is way more at stake here. The market is staring into an abyss. There is no support line until 1.04. Of course, one could be made on the way.

Same ol’ trendline alll week long.

Professional average block size circled as they are leaning into the selling.

True understanding starts here.

Hourly candles.

A stand-out, 8H higher High/Lower Low with a wick on the wrong side of the E-16 is a Starter candle ( StarTrek is okay too).

The second working cadle has to make a new 8-sample Low/High by at least 2 pips. Otherwise the run isn’t a Racer; it is an Eraser.

///starter candle up
 if (High[i+1]-Open[i+1]>45*Point && High[i+1]-Close[i+1]>45*Point && 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))
 ){
    ObjectCreate("Dalton"+DoubleToStr(i), OBJ_TEXT, 0, Time[i+1], High[i+1]+20*Point); 
        ObjectSetText("Dalton"+DoubleToStr(i), "ST", 22, "Impact", DimGray);
   starterup[i+1]=true;
 }
 
 ///runner down
 if (starterup[i+2]
 && iLow(symbol,0,i)<iLow(symbol,0,iLowest(symbol,0,MODE_LOW,7,i+1))-20*Point
 ){
    ObjectCreate("Dalton"+DoubleToStr(i), OBJ_TEXT, 0, Time[i+2], iLow(symbol,0,iLowest(symbol,0,MODE_LOW,14,i+1))+50*Point); 
        ObjectSetText("Dalton"+DoubleToStr(i), "RUNNER", 22, "Impact", Crimson );
 }
 
 ///eraser down
 if (starterup[i+2]
 && iLow(symbol,0,i)>=iLow(symbol,0,iLowest(symbol,0,MODE_LOW,7,i+1))-20*Point
 ){
    ObjectCreate("Dalton"+DoubleToStr(i), OBJ_TEXT, 0, Time[i+2], iLow(symbol,0,iLowest(symbol,0,MODE_LOW,14,i+1))+50*Point); 
        ObjectSetText("Dalton"+DoubleToStr(i), "ERASER", 22, "Impact", Green);
 }

A racer sequence will make a move outside the 30BB, as all exits can be found there. 20 pips out or Shy & Shy with a money flow divergence.

We may be printing a new STarter candle now with that long-cover wick.

The eraser move will tackle the swing low/high, sweep, and reverse.

Believe it or not, the decision to sustain the move is made in the first 3 hours.


Race Me To The Finish Line

Set the sails high, feeling alive
Riding winds of fate, where the ocean dives
Boathandling skill, working in unison
Feel the thrill rise, as the race is begun
[Pre-Chorus]
Preparation's key, laying strategy
Eyes on the horizon, where the sea meets the sky
[Chorus]
Race me to the finish line!
Race me to the finish line!
Chase the victory, under clouds divine
Race me to the finish line!
[Verse 1]
Riding on the waves, through the open sea
Chasing down the current, feel the breeze set me free
Oh, I'm steering fast, steering fast, steering fast, steering fast
Sailing on, sailing on, sailing on, racing on
[Chorus]
Race me to the finish line!
Race me to the finish line!
Race me to the finish line!
Race me to the finish line!
[Verse 2]
Spinnakers flying, catching all the wind
Every tack and jibe, perfect maneuvers begin
Oh, I’m setting pace, setting pace, setting pace, setting pace
Cutting through, cutting through, cutting through, racing true
[Chorus]
Race me to the finish line!
Race me to the finish line!
Race me to the finish line!
Race me to the finish line!
[Bridge]
Sail trim tight, feel the speed
Racing on, with skills I need
Wind in my sails, driving me
To the thrill of first victory
[Chorus]
Race me to the finish line!
Race me to the finish line!

Sting is Racing Sailboats.

[Verse 1]
Sail on the horizon bluff and shifting tide
Feeling the wind's pull as our strategies collide
Preparation is the puzzle, fitting the pieces right
From tacks to buoy turns, all through the restless night
But isn't this the rush, the thrill we crave inside?
Each wave a whisper, every moment is our guide

[Chorus]
Racing sailboats, a chess in mind and sea
Where courage meets the elements, where we long to be
It's the speed and grace, in every twist and turn
Racing sailboats, endless lessons to learn

[Verse 2]
Boathandling finesse, in the dance of sail and sky
Adjusting sails with heartbeats, as the seconds fly by
It's about more than victory, more than just the prize
It's the pace and wheel, the look in your partner's eyes
Rig tuning sings a song, as the canvas billows high
In this silent symphony, we learn to soar and glide

[Chorus]
Racing sailboats, a chess in mind and sea
Where courage meets the elements, where we long to be
It's the speed and grace, in every twist and turn
Racing sailboats, endless lessons to learn

[Bridge]
Feel the spray upon the face, freedom in the air
In these salt-kissed moments, you find just who you are
It's the dance of challenge, the beauty of the dare
In the game of sailing, our compass is the star

[Chorus]
Racing sailboats, a chess in mind and sea
Where courage meets the elements, where we long to be
It's the speed and grace, in every twist and turn
Racing sailboats, endless lessons to learn

The Sandwich…

…is done.

The suggested mean reversion to the S-356 (Hourly) S-712 (30-minute) has happened.

The down move looks to have an ABC, finished structure.

The A leg produced two blue support levels, the B leg two hourly fractals, and the C leg two blue support levels.

So all systems go to the upside?

Not so fast.

A high volume weekly churn has enough momentum to carry the price further for about 2 weeks. Then, a 2-week pullback before another run for up to 6 more weeks.

A swing high is made with a weekly close lower by 91+ pips. I circled this event. There is always a lift come next week, usually around 51 pips, but occasionally, it can be as low as 24 pips. I circled the qualifier weekly closes.

24 pips higher means 1.0836, 51 pips is 1.0863, and it is not impossible that the first move would be down.

All Euro news is with raised bars. Disappointment made easy.


Achilles Dent: Troll (Album #58)


Like Duran Duran?

Achilles Dent: Smooth Blend