t3_TRIX_signals
Download scriptThis script is a specialized trading tool designed to identify potential momentum shifts in the financial markets by analyzing the interaction between two specific technical indicators. Instead of relying on simple price action, it looks for "crossovers"—moments where one moving average or trend line crosses over another—to signal possible buying or selling opportunities.
Core Logic and Functionality
Data Analysis Mechanism The script works by pulling real-time data from an external mathematical model known as the "T3 Trix." It monitors two distinct components of this model simultaneously. By comparing these two components against each other, the script can determine if the market momentum is accelerating in one direction or reversing.
Identifying Market Signals The logic focuses on specific "crossing" events to generate visual cues and notifications:
- Buy Signals (Upward Momentum): The script looks for a moment when the primary trend data moves above its secondary counterpart. When this specific mathematical crossover occurs, it identifies a potential upward move and places a visual marker below the price candle.
- Sell Signals (Downward Momentum): Conversely, if the primary data falls below the secondary data, the script recognizes a shift toward downward momentum. In these instances, it places a visual marker above the price candle to highlight the potential drop.
Real-Time Alerts To ensure traders do not have to watch the charts constantly, the script includes an automated notification system. When a crossover is detected on the most recent live bar, the tool triggers a pop-up alert on the trading platform. This alert specifically notifies the user of the direction (Up or Down) and the name of the crossover event.
Smart Filtering To prevent "false alarms" caused by minor price fluctuations within a single candle, the script is programmed to validate signals only at specific intervals. It ensures that alerts are unique and only trigger once per new price bar, providing a cleaner trading experience and reducing repetitive notifications.
Summary for the User
In simple terms, this tool acts as an automated scout. It watches two complex trend lines in the background; whenever they cross each other, it "flags" the chart with an arrow and sends you an immediate alert so you can react to the new market direction instantly.
/*-----------------------------+
| |
| Shared by www.Aptrafx.com |
| |
+------------------------------*/
//+---------------------------------------------------------+
//| T3 Trix crossing signals.mq4
//|
//| Perky..
//+------------------------------------------------------------------+
#property copyright "Author - Perky Aint no Porky"
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 LightBlue
#property indicator_width1 3
#property indicator_color2 Red
#property indicator_width2 3
//---- input parameters
extern int A_t3_period=18;
extern int num_bars=350;
extern int is_A_open_price=0;
extern int B_t3_period_ac=10;
extern int diferential=0;
extern double hot=0.7;
extern int CountBars=350;
extern bool UseAlert=True;
//---- buffers
double val1[];
double val2[];
double mtfstochs,mtfstochsb4;
double mtfstochs1,mtfstochs1b4;
int Timer;
string UD="";
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
string short_name;
//---- indicator line
IndicatorBuffers(2);
SetIndexStyle(0,DRAW_ARROW);
SetIndexArrow(0,108);
SetIndexStyle(1,DRAW_ARROW);
SetIndexArrow(1,108);
SetIndexBuffer(0,val1);
SetIndexBuffer(1,val2);
//----
return(0);
}
//+------------------------------------------------------------------+
//| AltrTrend_Signal_v2_2 |
//+------------------------------------------------------------------+
int start()
{
// if (CountBars>=500) CountBars=500;
// SetIndexDrawBegin(0,500-CountBars);
// SetIndexDrawBegin(1,500-CountBars);
int i,shift,counted_bars=IndicatorCounted();
//---- check for possible errors
// if(counted_bars<0) return(-1);
//---- initial zero
// if(counted_bars<1)
// {
// for(i=1;i<=CountBars;i++) val1[CountBars-i]=0.0;
// for(i=1;i<=CountBars;i++) val2[CountBars-i]=0.0;
// }
for ( shift = CountBars; shift>=0; shift--)
{
mtfstochs=
iCustom(Symbol(),Period(),"T3__trix",A_t3_period,num_bars,is_A_open_price,B_t3_period_ac,diferential,hot,0,shift+0);
mtfstochsb4=
iCustom(Symbol(),Period(),"T3__trix",A_t3_period,num_bars,is_A_open_price,B_t3_period_ac,diferential,hot,0,shift+1);
mtfstochs1=
iCustom(Symbol(),Period(),"T3__trix",A_t3_period,num_bars,is_A_open_price,B_t3_period_ac,diferential,hot,1,shift+0);
mtfstochs1b4=
iCustom(Symbol(),Period(),"T3__trix",A_t3_period,num_bars,is_A_open_price,B_t3_period_ac,diferential,hot,1,shift+1);
//Comment ( "mtfstochs=",mtfstochs,"mtfstochsb4=",mtfstochsb4,"\nmtfstochs1=",mtfstochs1,"mtfstochs1b4=",mtfstochs1b4);
val1[shift]=0;
val2[shift]=0;
//if ( TTb4>TT1b4 && TT<TT1 )
if ( mtfstochsb4<mtfstochs1b4 && mtfstochs>mtfstochs1)
{
val2[shift]=High[shift]+8*Point;
if (shift < 2 )
{
UD="DOWN.";
DoAlert(UD);
}
}
// if ( TTb4<TT1b4 && TT>TT1)
if (mtfstochsb4>mtfstochs1b4 && mtfstochs<mtfstochs1)
{
val1[shift]=Low[shift]-8*Point;
if (shift < 2 )
{
UD=" UP.";
DoAlert(UD);
}
}
}
//return(0);
}
void DoAlert(string UD)
{
if (!NewBar() || !UseAlert)
return;
Alert (Symbol()," ",Period(),"T3 TRIX cross ",UD);
}
bool NewBar()
{
static datetime dt = 0;
if (dt != Time[0])
{
dt = Time[0];
return(true);
}
}
//+------------------------------------------------------------------+
Comments