SEFC084
Download scriptThis script is a specialized market sentiment indicator designed to identify the prevailing trend and momentum in financial markets. It functions as a visual tool that helps traders distinguish between "Bullish" (upward) and "Bearish" (downward) volatility by analyzing price action over a specific timeframe.
Core Logic and Methodology
1. Momentum & Volatility Analysis The script works by examining the highest highs and lowest lows within a user-defined lookback period. It calculates the relative position of the current price compared to this high-low range. By measuring where the price sits within these boundaries, the logic determines the "intensity" of the current movement.
2. Smoothing and Filtering To ensure the indicator doesn't react too wildly to minor price flickers (noise), the script applies a smoothing mathematical formula. It combines the current market position with the previous calculation results. This creates a fluid motion in the data, allowing it to highlight sustained trends rather than momentary spikes.
3. Logarithmic Transformation The script uses a logarithmic conversion to translate these raw price calculations into a distinct visual scale. This helps in normalizing the data, making it easier for a trader to see the strength of the trend clearly on a separate window below the main price chart.
4. Trend Detection and Labeling The primary output of this logic is a clear visual distinction between two market states:
- Bullish State: When the calculated momentum moves into positive territory, the indicator identifies a "Bull" sentiment.
- Bearish State: When the momentum moves into negative territory, it identifies a "Bear" sentiment.
5. Real-Time Visual Feedback The script provides live updates on the chart. It automatically updates an on-screen text label to notify the user of the current market state in real-time. This allows for immediate recognition of whether the prevailing volatility is leaning toward a bullish or bearish bias, providing a quick reference point for decision-making.
Summary of User Experience
For a trader, this tool acts as a "sentiment gauge." Instead of just looking at raw price candles, you are provided with a smoothed representation of market pressure. The visual output clearly tells you which way the tide is moving based on historical volatility and current momentum, helping to clarify whether the market is currently favoring buyers or sellers.
/*
Generated by EX4-TO-MQ4 decompiler ONE FILE V4.0.218.3
EX4 ID : 04E20A41724C2645BAEB3FDF008C44EC
Website: http://purebeam.biz
E-mail : purebeam@gmail.com
*/
#property copyright "xbox corp - reproduction by SEFC forex"
#property link " "
#property indicator_separate_window
#property indicator_minimum -0.0001
#property indicator_maximum 0.0001
#property indicator_buffers 3
#property indicator_color1 Black
#property indicator_color2 DeepSkyBlue
#property indicator_color3 Violet
extern int period = 12;
double g_ibuf_80[];
double g_ibuf_84[];
double g_ibuf_88[];
string gs_92 = "";
string gs_100 = "SEFC-Bull-Bear";
int init() {
SetIndexStyle(0, DRAW_HISTOGRAM, STYLE_SOLID, 4);
SetIndexStyle(1, DRAW_HISTOGRAM, STYLE_SOLID, 4);
SetIndexStyle(2, DRAW_HISTOGRAM, STYLE_SOLID, 4);
IndicatorDigits(Digits + 1);
SetIndexBuffer(0, g_ibuf_80);
SetIndexBuffer(1, g_ibuf_84);
SetIndexBuffer(2, g_ibuf_88);
IndicatorShortName(gs_100);
SetIndexLabel(1, NULL);
SetIndexLabel(2, NULL);
StempelSEFC();
return (0);
}
int start() {
double ld_0;
double ld_8;
double ld_16;
int li_28 = IndicatorCounted();
if (li_28 < 0) return (-1);
if (li_28 > 0) li_28--;
int li_24 = Bars - li_28;
double ld_unused_32 = GetTickCount();
if (li_24 > 2500) li_24 = 2500;
double ld_unused_40 = GetTickCount();
Print("Calculation time is ", 0.2, " seconds");
double ld_48 = 0;
double ld_56 = 0;
double ld_unused_64 = 0;
double ld_unused_72 = 0;
double ld_80 = 0;
double ld_unused_88 = 0;
double l_low_96 = 0;
double l_high_104 = 0;
creataalltext();
int li_112 = 16777215;
if (li_28 > 0) li_28--;
int li_116 = Bars - li_28;
for (int li_120 = 0; li_120 < li_116; li_120++) {
l_high_104 = High[iHighest(NULL, 0, MODE_HIGH, period, li_120)];
l_low_96 = Low[iLowest(NULL, 0, MODE_LOW, period, li_120)];
ld_16 = (High[li_120] + Low[li_120]) / 2.0;
ld_48 = 0.66 * ((ld_16 - l_low_96) / (l_high_104 - l_low_96) - 0.5) + 0.67 * ld_56;
ld_48 = MathMin(MathMax(ld_48, -0.999), 0.999);
g_ibuf_80[li_120] = MathLog((ld_48 + 1.0) / (1 - ld_48)) / 2.0 + ld_80 / 2.0;
ld_56 = ld_48;
ld_80 = g_ibuf_80[li_120];
}
bool li_124 = TRUE;
for (li_120 = li_116 - 2; li_120 >= 0; li_120--) {
ld_8 = g_ibuf_80[li_120];
ld_0 = g_ibuf_80[li_120 + 1];
if ((ld_8 < 0.0 && ld_0 > 0.0) || ld_8 < 0.0) li_124 = FALSE;
if ((ld_8 > 0.0 && ld_0 < 0.0) || ld_8 > 0.0) li_124 = TRUE;
if (!li_124) {
g_ibuf_88[li_120] = ld_8;
g_ibuf_84[li_120] = 0.0;
gs_92 = "Saat ini volatile = Bear";
li_112 = 65535;
} else {
g_ibuf_84[li_120] = ld_8;
g_ibuf_88[li_120] = 0.0;
gs_92 = "Saat ini volatile = Bull";
li_112 = 65280;
}
}
settext("SEFC X4bd Repro", gs_92, 12, li_112, 10, 15);
return (0);
}
void creataalltext() {
createtext("SEFC x4bd Repro");
settext("SEFC x4bd Repro", "", 12, White, 10, 15);
}
void createtext(string a_name_0) {
ObjectCreate(a_name_0, OBJ_LABEL, WindowFind(gs_100), 0, 0);
}
void settext(string a_name_0, string a_text_8, int a_fontsize_16, color a_color_20, int a_x_24, int a_y_28) {
ObjectSet(a_name_0, OBJPROP_XDISTANCE, a_x_24);
ObjectSet(a_name_0, OBJPROP_YDISTANCE, a_y_28);
ObjectSetText(a_name_0, a_text_8, a_fontsize_16, "Arial", a_color_20);
}
void StempelSEFC() {
ObjectCreate("Original Created by SEFC", OBJ_LABEL, 0, 0, 0);
ObjectSetText("Original Created by SEFC", "SEFC *PALATO* - (Palato = Under earth Kingdom)", 8, "Lucida Handwriting", SpringGreen);
ObjectSet("Original Created by SEFC", OBJPROP_CORNER, 2);
ObjectSet("Original Created by SEFC", OBJPROP_XDISTANCE, 5);
ObjectSet("Original Created by SEFC", OBJPROP_YDISTANCE, 10);
}
Comments