[MT4指标]Kolier_SuperTrend_Indi指标
主图指标Kolier_SuperTrend_Indi指标
mt4指标类型:趋势指标
是否能用在mt4手机版上:否
是否含有未来函数:无
可以用在韬客外汇返佣网的平台上
//+------------------------------------------------------------------+
//| Kolier_SuperTrend_Indi.mq4 |
//| Copyright 2010, KoliEr Li. |
//| http://kolier.li |
//+------------------------------------------------------------------+
/*
* I here get paid to program for you. Just $15 for all scripts.
*
* I am a bachelor major in Financial-Mathematics.
* I am good at programming in MQL for Meta Trader 4 platform. Senior Level. Have done hundreds of scripts.
* No matter what it is, create or modify any indicators, expert advisors and scripts.
* I will ask these jobs which are not too large, price from $15, surely refundable if you are not appreciate mine.
* All products will deliver in 3 days.
* Also, I am providing EA, Indicator and Trade System Improvement Consultant services, contact me for the detail.
* If you need to have it done, don't hesitate to contact me at: [email protected]
*/
//+------------------------------------------------------------------+
//| Indicator Properties |
//+------------------------------------------------------------------+
#property copyright "Copyright 2010, KoliEr Li."
#property link "http://kolier.li"
// Client:
// Tags: SuperTrend, ATR
// Revision: 1
/* Change Logs */
/*
*/
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Lime
#property indicator_color2 Red
#property indicator_width1 2
#property indicator_width2 2
//+------------------------------------------------------------------+
//| Universal Constants |
//+------------------------------------------------------------------+
#define PHASE_NONE 0
#define PHASE_BUY 1
#define PHASE_SELL -1
//+------------------------------------------------------------------+
//| User input variables |
//+------------------------------------------------------------------+
extern string AdvisorName = "Kolier_SuperTrend_Indi";
extern string AdvisorVersion = "1.0.1"; // The version number of this script
extern string ProjectPage = "http://kolier.li/project/kolier-supertrend-indi"; // The project landing page
extern int BarsToCount = 0; // Set to 0 to count all bars, if >0, set more to calculate more bars
extern int TrendMode = 0; // 0=Show line same as SuperTrend.mq4, 1=New way to show trend line
// iATR
extern string ATR_Indicator = "http://kolier.li/example/mt4-iatr-system-average-true-range";
extern int ATR_Period = 10;
extern double ATR_Multiplier = 3.0;
//+------------------------------------------------------------------+
//| Universal variables |
//+------------------------------------------------------------------+
double buffer_line_up, buffer_line_down;
double atr, band_upper, band_lower;
int phase=PHASE_NONE;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
IndicatorShortName(AdvisorName);
IndicatorDigits(MarketInfo(Symbol(), MODE_DIGITS));
SetIndexBuffer(0, buffer_line_up);
SetIndexLabel(0, "Up Trend");
SetIndexBuffer(1, buffer_line_down);
SetIndexLabel(1, "Down Trend");
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
int bars_counted = IndicatorCounted();
if(bars_counted < 0) {
return(1);
}
else if(bars_counted > 0) {
bars_counted--;
}
int limit = Bars - bars_counted;
if(BarsToCount>0 && limit>BarsToCount) {
limit = BarsToCount;
}
for(int i=limit; i>=0; i--) {
atr = iATR(Symbol(), 0, ATR_Period, i);
band_upper = (High+Low)/2 + ATR_Multiplier * atr;
band_lower = (High+Low)/2 - ATR_Multiplier * atr;
if(phase==PHASE_NONE) {
buffer_line_up = (High[i+1]+Low[i+1])/2;
buffer_line_down = (High[i+1]+Low[i+1])/2;
}
if(phase!=PHASE_BUY && Close>buffer_line_down[i+1] && buffer_line_down[i+1]!=EMPTY_VALUE) {
phase = PHASE_BUY;
buffer_line_up = band_lower;
buffer_line_up[i+1] = buffer_line_down[i+1];
}
if(phase!=PHASE_SELL && Closebuffer_line_up[i+1]) {
buffer_line_up = band_lower;
}
else {
buffer_line_up = buffer_line_up[i+1];
}
}
if(phase==PHASE_SELL
&& ((TrendMode==0 && buffer_line_down[i+2]!=EMPTY_VALUE) || TrendMode==1) ) {
if(band_upper
