您需要 登录 才可以下载或查看,没有帐号?注册
#property indicator_chart_window
#define PREFIX T3S
#property indicator_buffers 2
#property indicator_color1 Lime
#property indicator_color2 White
extern int Snake_HalfCycle = 14;
extern int T3Period = 21;
extern int T3Price = PRICE_CLOSE;
extern double b = 0.518;
extern string Timeframe = current time frame
extern bool Indi_Lines = true;
extern bool Real = true;
extern int Arr_otstup = 0;
extern int Arr_width = 2;
extern bool alertsMessage = true;
extern bool alertsSound = false;
extern bool alertsEmail = false;
extern bool alertsNotification = false;
extern int SignalBar = 0;
int sig_alert=0;
double Sn[],T3[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
SetIndexBuffer(0,Sn);
SetIndexLabel (0, Sn
SetIndexBuffer(1,T3);
SetIndexLabel (1, T3
if(Indi_Lines){
SetIndexStyle (0,DRAW_LINE);
SetIndexStyle (1,DRAW_LINE);
}else{
SetIndexStyle (0,DRAW_NONE);
SetIndexStyle (1,DRAW_NONE);}
IndicatorShortName( T-S
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
for(int i = ObjectsTotal()-1; i i--)
if (StringSubstr(ObjectName(i), 0,
StringLen(PREFIX)) == PREFIX)
ObjectDelete(ObjectName(i));
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
int i;
int counted_bars=IndicatorCounted();
int limit=Bars-counted_bars;
if(Real)int snk=0; else snk=Snake_HalfCycle;
for(i=0; i limit+snk; i++)
{
Sn[i] = iCustom(Symbol(),0, Snake ,Snake_HalfCycle,0,i);
T3[i] = iCustom(Symbol(),0, T3_clean ,T3Period,T3Price,b,Timeframe,0,i);
}
//+------------------------------------------------------------------+
for(i=0; i limit+snk; i++)
{
if(Sn[i+1] T3[i+1] Sn[i] T3[i])
arrows_wind(i, T3+Snake_Up ,Arr_otstup ,233,Lime,Arr_width,false);
else ObjectDelete(PREFIX+ T3+Snake_Up +TimeToStr(Time[i],TIME_DATE|TIME_SECONDS));
if(Sn[i+1] T3[i+1] Sn[i] T3[i])
arrows_wind(i, T3+Snake_Dn ,Arr_otstup ,234,Red,Arr_width,true);
else ObjectDelete(PREFIX + T3+Snake_Dn + TimeToStr(Time[i],TIME_DATE|TIME_SECONDS));
//-----------------------------------------------------------------------+
if(alertsMessage || alertsEmail || alertsNotification || alertsSound)
{
string message1 = ( T3+Snake - +Symbol()+ TF( +Period()+ ) - Signal for BUY
string message2 = ( T3+Snake - +Symbol()+ TF( +Period()+ ) - Signal for SELL
if(sig_alert!=1 Sn[SignalBar+1] T3[SignalBar+1] Sn[SignalBar] T3[SignalBar])
{
if (alertsMessage) alert(message1);
if (alertsEmail) SendMail(Symbol()+ T3+Snake ,message1);
if (alertsNotification) SendNotification(message1);
if (alertsSound) PlaySound( alert2.wav
sig_alert=1;
}
if(sig_alert!=2 Sn[SignalBar+1] T3[SignalBar+1] Sn[SignalBar] T3[SignalBar])
{
if (alertsMessage) alert(message2);
if (alertsEmail) SendMail(Symbol()+ T3+Snake ,message2);
if (alertsNotification) SendNotification(message2);
if (alertsSound) PlaySound( alert2.wav
sig_alert=2;
}
}
}
//+------------------------------------------------------------------+
return(0);
}
//====================================================================
void arrows_wind(int k, string N,int ots,int Code,color clr, int ArrowSize,bool up)
{
string objName = PREFIX+N+TimeToStr(Time[k],TIME_DATE|TIME_SECONDS);
double gap = (3.0*iATR(NULL,0,20,k)/4.0)+ots*Point;
ObjectCreate(objName, OBJ_ARROW,0,Time[k],0);
ObjectSet (objName, OBJPROP_COLOR, clr);
ObjectSet (objName, OBJPROP_ARROWCODE,Code);
ObjectSet (objName, OBJPROP_WIDTH,ArrowSize);
if (up)
ObjectSet(objName,OBJPROP_PRICE1,High[k]+gap);
else
ObjectSet(objName,OBJPROP_PRICE1,Low[k]-gap);
}
//====================================================================
外汇交易有很大的风险性,本站所有资源均来自网络,请选择使用,如若出现亏损,本站不承担任何责任!