乐于分享
好东西不私藏

可以一眼识别的高胜率反转信号,EA源码分享

可以一眼识别的高胜率反转信号,EA源码分享
大家好,我是EA侠!我又带着好用的源码来见大家了!
也有私信来问侠哥,为什么每天雷打不动给兄弟们发源码,这说来话就有点长了,等侠哥空的时候给大家分享一下!
话不多说,今天给大家分享的是我自己长期在用的一个信号类的指标。做交易这么久,我踩过的坑不计其数,所以选指标只有一个核心要求:靠谱、不瞎给信号。不知道你们是不是和我一样,不求大富大贵,只求稳稳当当!
这个指标最让人放心的就是这三点:

1. 多条件共振,假信号直接减半

它最大的优势,就是不依赖单一指标乱给信号,必须满足4重条件,才会提示入场,相当于多了4道“把关”,大大降低假信号概率,这也是专业交易者常用的逻辑。

2. 自适应通道,抓反转、找高低点巨准

指标自带自适应均值回归通道,就像智能支撑压力线,能自动跟随价格波动调整,一眼就能看清价格的上下边界。

3. 灵活切换风格,一个指标顶两个用

它不局限于一种交易方式,两种风格可自由切换,适配不同交易习惯:
区间交易:适合震荡市,在通道内低买高卖;
极端反转交易:适合抓突破通道的顶底反转,精准捕捉大行情。
最重要的是,不用复杂分析,记一句话就能看懂它的交易逻辑:价格走到超买/超卖极端位置 + 动量反转 + 触碰通道边界 + 顺势而为,此时指标会画出明确箭头,跟着信号操作就够了!
怎么样侠哥是不是很宠粉?不但给你们带来好用的源码,还把优势什么的都给你们讲清楚,这么努力的的侠哥值不值得你们给个赞?
老规矩侠哥把源码放下面了,需要的自取。有不同趋势下不一样的搭配方式,你们可以和侠哥来探讨。咱们一起做大做强,再创辉煌!!
源码不会解析的朋友,私侠哥:wzc10106
#property copyright ""#property link      ""#property version "1.0"#property strict#property indicator_chart_window#property indicator_buffers 10#property indicator_label1 "Upper Boundary: Far (Custom)"#property indicator_type1 DRAW_LINE#property indicator_style1 STYLE_SOLID#property indicator_width1 1#property indicator_label2 "Upper Boundary: Average (Custom)"#property indicator_type2 DRAW_LINE#property indicator_style2 STYLE_SOLID#property indicator_width2 1#property indicator_label3 "Upper Boundary: Near (Custom)"#property indicator_type3 DRAW_LINE#property indicator_style3 STYLE_SOLID#property indicator_width3 1#property indicator_label4 "Custom Estimation"#property indicator_type4 DRAW_LINE#property indicator_style4 STYLE_SOLID#property indicator_width4 2#property indicator_label5 "Custom Estimation"#property indicator_type5 DRAW_LINE#property indicator_style5 STYLE_SOLID#property indicator_width5 2#property indicator_label6 "Custom Estimation"#property indicator_type6 DRAW_LINE#property indicator_style6 STYLE_SOLID#property indicator_width6 2#property indicator_label7 "Custom Estimation"#property indicator_type7 DRAW_LINE#property indicator_style7 STYLE_SOLID#property indicator_width7 2#property indicator_label8 "Lower Boundary: Near (Custom)"#property indicator_type8 DRAW_LINE#property indicator_style8 STYLE_SOLID#property indicator_width8 1#property indicator_label9 "Lower Boundary: Average (Custom)"#property indicator_type9 DRAW_LINE#property indicator_style9 STYLE_SOLID#property indicator_width9 1#property indicator_label10 "Lower Boundary: Far (Custom)"#property indicator_type10 DRAW_LINE#property indicator_style10 STYLE_SOLID#property indicator_width10 1// Pine-script like safe operations// v.1.2double Nz(double val, double defaultValue = 0){   return val == EMPTY_VALUE ? defaultValue : val;}double SafePlus(int left, double right){   if (left == EMPTY_VALUE || right == EMPTY_VALUE)   {      return EMPTY_VALUE;   }   return left + right;}double SafePlus(double left, int right){   if (left == EMPTY_VALUE || right == EMPTY_VALUE)   {      return EMPTY_VALUE;   }   return left + right;}int SafePlus(int left, int right){   if (left == EMPTY_VALUE || right == EMPTY_VALUE)   {      return EMPTY_VALUE;   }   return left + right;}double SafePlus(double left, double right){   if (left == EMPTY_VALUE || right == EMPTY_VALUE)   {      return EMPTY_VALUE;   }   return left + right;}string SafePlus(string left, string right){   if (left == NULL || right == NULL)   {      return NULL;   }   return left + right;}double SafeMinus(double left, double right){   if (left == EMPTY_VALUE || right == EMPTY_VALUE)   {      return EMPTY_VALUE;   }   return left - right;}double SafeDivide(double left, double right){   if (left == EMPTY_VALUE || right == EMPTY_VALUE || right == 0)   {      return EMPTY_VALUE;   }   return left / right;}double SafeMultiply(double left, double right){   if (left == EMPTY_VALUE || right == EMPTY_VALUE)   {      return EMPTY_VALUE;   }   return left * right;}bool SafeGreater(double left, double right){   if (left == EMPTY_VALUE || right == EMPTY_VALUE)   {      return false;   }   return left > right;}bool SafeGE(double left, double right){   if (left == EMPTY_VALUE || right == EMPTY_VALUE)   {      return false;   }   return left >= right;}bool SafeLess(double left, double right){   if (left == EMPTY_VALUE || right == EMPTY_VALUE)   {      return false;   }   return left < right;}bool SafeLE(double left, double right){   if (left == EMPTY_VALUE || right == EMPTY_VALUE)   {      return false;   }   return left <= right;}double SafeMathExp(double value){   if (value == EMPTY_VALUE)   {      return EMPTY_VALUE;   }   return MathExp(value);}double SafeMathMax(double left, double right){   if (left == EMPTY_VALUE || right == EMPTY_VALUE)   {      return EMPTY_VALUE;   }   return MathMax(left, right);}double SafeMathMin(double left, double right){   if (left == EMPTY_VALUE || right == EMPTY_VALUE)   {      return EMPTY_VALUE;   }   return MathMin(left, right);}double SafeMathPow(double value, double power){   if (value == EMPTY_VALUE || power == EMPTY_VALUE)   {      return EMPTY_VALUE;   }   return MathPow(value, power);}double SafeMathAbs(double value){   if (value == EMPTY_VALUE)   {      return EMPTY_VALUE;   }   return MathAbs(value);}double SafeMathRound(double value){   if (value == EMPTY_VALUE)   {      return EMPTY_VALUE;   }   return MathRound(value);}double SafeMathRound(double value, int precision){   if (value == EMPTY_VALUE)   {      return EMPTY_VALUE;   }   return NormalizeDouble(value, precision);}double SafeMathSqrt(double value){   if (value == EMPTY_VALUE)   {      return EMPTY_VALUE;   }   return MathSqrt(value);}int SafeSign(double value){   if (value == EMPTY_VALUE)   {      return EMPTY_VALUE;   }   if (value == 0)   {      return 0;   }   return value > 0 ? 1 : -1;}double SafeLog(double value){   if (value == EMPTY_VALUE)   {      return EMPTY_VALUE;   }   return MathLog(value);}double SafeLog10(double value){   if (value == EMPTY_VALUE)   {      return EMPTY_VALUE;   }   return MathLog10(value);}double SafeCos(double value) {   if (value == EMPTY_VALUE)   {      return EMPTY_VALUE;   }   return MathCos(value);}double SafeArccos(double value){   if (value == EMPTY_VALUE)   {      return EMPTY_VALUE;   }   return MathArccos(value);}double SafeSin(double value) {   if (value == EMPTY_VALUE)   {      return EMPTY_VALUE;   }   return MathSin(value);}double SafeArcsin(double value){   if (value == EMPTY_VALUE)   {      return EMPTY_VALUE;   }   return MathArcsin(value);}double SafeTan(double value) {   if (value == EMPTY_VALUE)   {      return EMPTY_VALUE;   }   return MathTan(value);}double SafeArctan(double value){   if (value == EMPTY_VALUE)   {      return EMPTY_VALUE;   }   return MathArctan(value);}double InvertSign(double value){   if (value == EMPTY_VALUE)   {      return EMPTY_VALUE;   }   return -value;}double SafeMathFloor(double value){   if (value == EMPTY_VALUE)   {      return EMPTY_VALUE;   }   return MathFloor(value);}#ifndef FloatStream_IMPL#define FloatStream_IMPL// Stream base v1.0// Stream v.3.0// More templates and snippets on https://github.com/sibvic/mq4-templatesinterface IStream{public:   virtual void AddRef() = 0;   virtual void Release() = 0;   virtual int Size() = 0;   virtual bool GetValue(const int period, double &val) = 0;};#ifndef AStreamBase_IMP#define AStreamBase_IMPclass AStreamBase : public IStream{   int _references;public:   AStreamBase()   {      _references = 1;   }   void AddRef()   {      ++_references;   }   void Release()   {      --_references;      if (_references == 0)         delete &this;   }};#endif// Float stream v2.3class FloatStream : public AStreamBase{   string _symbol;   ENUM_TIMEFRAMES _timeframe;   double _stream[];public:   FloatStream(const string symbol, const ENUM_TIMEFRAMES timeframe)   {      _symbol = symbol;      _timeframe = timeframe;   }   void Init()   {      ArrayInitialize(_stream, EMPTY_VALUE);   }   virtual int Size()   {      return iBars(_symbol, _timeframe);   }   void SetValue(const int period, double value)   {      int totalBars = Size();      int index = totalBars - period - 1;      if (index < 0 || totalBars <= index)      {         return;      }      EnsureStreamHasProperSize(totalBars);      _stream[index] = value;   }   bool GetValue(const int period, double &val)   {      int totalBars = Size();      int index = totalBars - period - 1;      if (index < 0 || totalBars <= index)      {         return false;      }      EnsureStreamHasProperSize(totalBars);      val = _stream[index];      return _stream[index] != EMPTY_VALUE;   }private:   void EnsureStreamHasProperSize(int size)   {      int currentSize = ArrayRange(_stream, 0);      if (currentSize != size)       {         ArrayResize(_stream, size);         for (int i = currentSize; i < size; ++i)         {            _stream[i] = EMPTY_VALUE;         }      }   }};#endif//Base implementation of stream based on another stream //v1.1class AOnStream : public IStream{protected:   IStream *_source;   int _references;public:   AOnStream(IStream *source)   {      _references = 1;      _source = source;      if (_source != NULL)      {         _source.AddRef();      }   }   ~AOnStream()   {      _source.Release();   }   void AddRef()   {      ++_references;   }   void Release()   {      --_references;      if (_references == 0)         delete &this;   }   virtual int Size()   {      return _source.Size();   }};//RmaOnStream v1.0#ifndef RmaOnStream_IMP#define RmaOnStream_IMPclass RmaOnStream : public AOnStream{   double _length;   double _buffer[];public:   RmaOnStream(IStream *source, const int length)      :AOnStream(source)   {      _length = length;   }   bool GetValue(const int period, double &val)   {      int size = Size();      double price;      if (!_source.GetValue(period, price))         return false;      int currentSize = ArrayRange(_buffer, 0);      if (currentSize < size)      {         ArrayResize(_buffer, size);         for (int i = currentSize; i < size; ++i)         {            _buffer[i] = EMPTY_VALUE;         }      }      double alpha = 1.0 / _length;      int index = size - 1 - period;      if (index == 0 || _buffer[index - 1] == EMPTY_VALUE)      {         _buffer[index] = price;      }      else      {         _buffer[index] =  alpha * price + (1 - alpha) * _buffer[index - 1];      }      val = _buffer[index];      return true;   }};#endif#define ColorRGB(red, green, blue, transp) (uint)(red + (green << 8) + (blue << 16) + ((uint)(transp * 2.55) << 24))#define GetColorOnly(clr) (clr & 0xFFFFFF)#define GetTranparency(clr) (int)MathRound(((clr & 0xFF000000) >> 24) / 2.55)#define AddTransparency(clr, transp) (clr + ((uint)(transp * 2.55) << 24))bool NumberToBool(double number){   return number != EMPTY_VALUE && number != 0;}class FirstBarState{   bool _first;public:   FirstBarState()   {      _first = true;   }   void Clear()   {      _first = true;   }   bool IsFirst()   {      bool first = _first;      _first = false;      return first;   }};class NewBarState{   datetime _last;public:   NewBarState()   {      _last = 0;   }   void Clear()   {      _last = 0;   }   bool IsNew(datetime date)   {      bool isnew = _last != date;      _last = date;      return isnew;   }};color FromGradient(double value, double bottomValue, double topValue, color bottomColor, color topColor){   if (value == EMPTY_VALUE || topValue == EMPTY_VALUE)   {      return bottomColor;   }   if (bottomValue == EMPTY_VALUE)   {      return topColor;   }   return value - bottomValue < topValue - value       ? bottomColor      : topColor;}double SetStream(double &stream[], int pos, double value, double defaultValue){   stream[pos] = value == EMPTY_VALUE ? defaultValue : value;   return stream[pos];}datetime Timestamp(int year, int month, int day, int hour, int minute, int second){   MqlDateTime time;   time.year = year;   time.mon = month;   time.day = day;   time.hour = hour;   time.min = minute;   time.sec = second;   return StructToTime(time);}class PineScriptTime{public:   static int Hour(datetime dt)   {      MqlDateTime date;      TimeToStruct(dt, date);      return date.hour;   }   static int Year(datetime dt)   {      MqlDateTime date;      TimeToStruct(dt, date);      return date.year;   }   static int DayOfWeek(datetime dt)   {      MqlDateTime date;      TimeToStruct(dt, date);      return date.day_of_week;   }   static int Sunday()   {      return 0;   }   static int Monday()   {      return 1;   }   static int Tuesday()   {      return 2;   }   static int Wednesday()   {      return 3;   }   static int Thursday()   {      return 4;   }   static int Friday()   {      return 5;   }   static int Saturday()   {      return 6;   }};class Runtime{public:   static void Error(string message)   {      Print(message);      ExpertRemove();   }};// Instrument info v.1.7// More templates and snippets on https://github.com/sibvic/mq4-templates#ifndef InstrumentInfo_IMP#define InstrumentInfo_IMPclass InstrumentInfo{   string _symbol;   double _mult;   double _point;   double _pipSize;   int _digits;   double _tickSize;public:   InstrumentInfo(const string symbol)   {      _symbol = symbol;      _point = MarketInfo(symbol, MODE_POINT);      _digits = (int)MarketInfo(symbol, MODE_DIGITS);       _mult = _digits == 3 || _digits == 5 ? 10 : 1;      _pipSize = _point * _mult;      _tickSize = MarketInfo(_symbol, MODE_TICKSIZE);   }   // Return < 0 when lot1 < lot2, > 0 when lot1 > lot2 and 0 owtherwise   int CompareLots(double lot1, double lot2)   {      double lotStep = SymbolInfoDouble(_symbol, SYMBOL_VOLUME_STEP);      if (lotStep == 0)      {         return lot1 < lot2 ? -1 : (lot1 > lot2 ? 1 : 0);      }      int lotSteps1 = (int)floor(lot1 / lotStep + 0.5);      int lotSteps2 = (int)floor(lot2 / lotStep + 0.5);      int res = lotSteps1 - lotSteps2;      return res;   }   static double GetBid(const string symbol) { return MarketInfo(symbol, MODE_BID); }   double GetBid() { return GetBid(_symbol); }   static double GetAsk(const string symbol) { return MarketInfo(symbol, MODE_ASK); }   double GetAsk() { return GetAsk(_symbol); }   static double GetPipSize(const string symbol)   {       double point = MarketInfo(symbol, MODE_POINT);      double digits = (int)MarketInfo(symbol, MODE_DIGITS);       double mult = digits == 3 || digits == 5 ? 10 : 1;      return point * mult;   }   double GetPipSize() { return _pipSize; }   double GetPointSize() { return _point; }   string GetSymbol() { return _symbol; }   double GetSpread() { return (GetAsk() - GetBid()) / GetPipSize(); }   int GetDigits() { return _digits; }   double GetTickSize() { return _tickSize; }   double GetMinLots() { return SymbolInfoDouble(_symbol, SYMBOL_VOLUME_MIN); };   double AddPips(const double rate, const double pips)   {      return RoundRate(rate + pips * _pipSize);   }   double RoundRate(const double rate)   {      return NormalizeDouble(MathFloor(rate / _tickSize + 0.5) * _tickSize, _digits);   }   double RoundLots(const double lots)   {      double lotStep = SymbolInfoDouble(_symbol, SYMBOL_VOLUME_STEP);      if (lotStep == 0)      {         return 0.0;      }      return floor(lots / lotStep) * lotStep;   }   double LimitLots(const double lots)   {      double minVolume = GetMinLots();      if (minVolume > lots)      {         return 0.0;      }      double maxVolume = SymbolInfoDouble(_symbol, SYMBOL_VOLUME_MAX);      if (maxVolume < lots)      {         return maxVolume;      }      return lots;   }   double NormalizeLots(const double lots)   {      return LimitLots(RoundLots(lots));   }};#endif// Abstract stream v1.1// More templates and snippets on https://github.com/sibvic/mq4-templates#ifndef AStream_IMPclass AStream : public IStream{protected:   string _symbol;   ENUM_TIMEFRAMES _timeframe;   double _shift;   InstrumentInfo *_instrument;   int _references;   AStream(const string symbol, const ENUM_TIMEFRAMES timeframe)   {      _references = 1;      _shift = 0.0;      _symbol = symbol;      _timeframe = timeframe;      _instrument = new InstrumentInfo(_symbol);   }   ~AStream()   {      delete _instrument;   }public:   void SetShift(const double shift)   {      _shift = shift;   }   void AddRef()   {      ++_references;   }   void Release()   {      --_references;      if (_references == 0)         delete &this;   }   int Size()   {      return iBars(_symbol, _timeframe);   }};#define AStream_IMP#endif// Colored stream v4.1#ifndef ColoredStream_IMP#define ColoredStream_IMPclass IColoredStreamData{public:   virtual void Init(double defaultValue) = 0;   virtual int Register(int id) = 0;   virtual double GetValue(int pos) = 0;   virtual color GetColor() = 0;   virtual void Set(int period, double value, double prevValue) = 0;   virtual void Clear(int period) = 0;};class InternalStream{public:   double _stream[];};class LineColoredStreamData : public IColoredStreamData{   double _stream[];   color _color;   string _label;   int _lineType;   ENUM_LINE_STYLE _lineStyle;   int _width;   string _symbol;   ENUM_TIMEFRAMES _timeframe;   InternalStream* _internalStream;public:   LineColoredStreamData(const string symbol, const ENUM_TIMEFRAMES timeframe, color clr, string label,       int lineType, ENUM_LINE_STYLE lineStyle, int width, InternalStream* internalStream)   {      _internalStream = internalStream;      _symbol = symbol;      _timeframe = timeframe;      _color = clr;      _label = label;      _lineType = lineType;      _lineStyle = lineStyle;      _width = width;   }   void Init(double defaultValue)   {      ArrayInitialize(_stream, defaultValue);   }   int Register(int id)   {      SetIndexBuffer(id, _stream);      SetIndexEmptyValue(id, EMPTY_VALUE);      SetIndexStyle(id, _lineType, _lineStyle, _width, _color);      if (_label != "")         SetIndexLabel(id, _label);      return id + 1;   }   double GetValue(int pos)   {      return _stream[pos];   }   color GetColor()   {      return _color;   }   void Set(int period, double value, double prevValue)   {      if (value == EMPTY_VALUE)      {         _stream[period] = EMPTY_VALUE;         return;      }      int size = iBars(_symbol, _timeframe);      int nextNonEmpty = FindNextNonempty(period, size);      int count = nextNonEmpty - period + 1;      double startPoint = _internalStream._stream[nextNonEmpty];      double diff = startPoint - value;      for (int i = nextNonEmpty; i >= period; --i)      {         _stream[i] = value - double(period - i) / count * diff;      }   }   void Clear(int period)   {      _stream[period] = EMPTY_VALUE;   }private:   int FindNextNonempty(int period, int size)   {      for (int i = period + 1; i < size; ++i)      {         if (_internalStream._stream[i] != EMPTY_VALUE)         {            return i;         }      }      return period;   }};class HistogramColoredStreamData : public IColoredStreamData{   LineColoredStreamData* _up;   LineColoredStreamData* _down;public:   HistogramColoredStreamData(const string symbol, const ENUM_TIMEFRAMES timeframe, color clr, string label, int width, InternalStream* internalStream)   {      _up = new LineColoredStreamData(symbol, timeframe, clr, label, DRAW_HISTOGRAM, STYLE_SOLID, width, internalStream);      _down = new LineColoredStreamData(symbol, timeframe, clr, label, DRAW_HISTOGRAM, STYLE_SOLID, width, internalStream);   }   ~HistogramColoredStreamData()   {      delete _up;      delete _down;   }   void Init(double defaultValue)   {      _up.Init(defaultValue);      _down.Init(defaultValue);   }   int Register(int id)   {      id = _up.Register(id);      return _down.Register(id);   }   double GetValue(int pos)   {      return _up.GetValue(pos);   }   color GetColor()   {      return _up.GetColor();   }   void Set(int period, double value, double prevValue)   {      _up.Set(period, value, prevValue);      _down.Set(period, 00);   }   void Clear(int period)   {      _up.Clear(period);      _down.Clear(period);   }};class ArrowColoredStreamData : public IColoredStreamData{   double _stream[];   color _color;   int _arrow;public:   ArrowColoredStreamData(int arrow, color clr)   {      _arrow = arrow;      _color = clr;   }   void Init(double defaultValue)   {      ArrayInitialize(_stream, defaultValue);   }   int Register(int id)   {      SetIndexBuffer(id, _stream);      SetIndexEmptyValue(id, EMPTY_VALUE);      SetIndexArrow(id, _arrow);      return id + 1;   }   double GetValue(int pos)   {      return _stream[pos];   }   color GetColor()   {      return _color;   }   void Set(int period, double value, double prevValue)   {      _stream[period] = value;   }   void Clear(int period)   {      _stream[period] = EMPTY_VALUE;   }};class ColoredStream : public AStream{   IColoredStreamData* _streams[];   InternalStream* _internal;public:   ColoredStream(const string symbol, const ENUM_TIMEFRAMES timeframe)      :AStream(symbol, timeframe)   {      _internal = new InternalStream();   }   ~ColoredStream()   {      for (int i = 0; i < ArraySize(_streams); ++i)      {         delete _streams[i];      }      delete _internal;   }   void Init(double defaultValue)   {      for (int i = 0; i < ArraySize(_streams); ++i)      {         _streams[i].Init(defaultValue);      }      ArrayInitialize(_internal._stream, defaultValue);   }   int RegisterInternalStream(int id)   {      SetIndexBuffer(id, _internal._stream);      SetIndexStyle(id, DRAW_NONE);      return id + 1;   }   int RegisterArrowStream(int id, uint clr, int arrow)   {      int size = ArraySize(_streams);      ArrayResize(_streams, size + 1);      _streams[size] = new ArrowColoredStreamData(arrow, GetColorOnly(clr));      return _streams[size].Register(id);   }   int RegisterStream(int id, uint clr, int transparency)   {      return RegisterStream(id, GetColorOnly(clr), "", transparency == 100 ? DRAW_NONE : DRAW_LINE, STYLE_SOLID, 1);   }   int RegisterStream(int id, uint clr, string label = "", int lineType = DRAW_LINE, ENUM_LINE_STYLE lineStyle = STYLE_SOLID, int width = 1)   {      int size = ArraySize(_streams);      ArrayResize(_streams, size + 1);      _streams[size] = new LineColoredStreamData(_symbol, _timeframe, GetColorOnly(clr), label, lineType, lineStyle, width, _internal);      return _streams[size].Register(id);   }   int RegisterHistogramStream(int id, uint clr, string label = "", int width = 1)   {      int size = ArraySize(_streams);      ArrayResize(_streams, size + 1);      _streams[size] = new HistogramColoredStreamData(_symbol, _timeframe, GetColorOnly(clr), label, width, _internal);      return _streams[size].Register(id);   }   int GetColorIndex(int period)   {      for (int i = 0; i < ArraySize(_streams); ++i)      {         if (_streams[i].GetValue(period) != EMPTY_VALUE)            return i;      }      return -1;   }   double SetByColor(double value, int period, uint clr)   {      clr = GetColorOnly(clr);      for (int i = 0; i < ArraySize(_streams); ++i)      {         if (_streams[i].GetColor() == clr)         {            Set(value, period, i);            return value;         }      }      _internal._stream[period] = value;      return value;   }   void Set(double value, int period, int colorIndex)   {      _internal._stream[period] = value;      double prevValue = period + 1 >= iBars(_symbol, _timeframe) ? EMPTY_VALUE : _internal._stream[period + 1];      for (int i = 0; i < ArraySize(_streams); ++i)      {         if (colorIndex == i)         {            _streams[i].Set(period, value, prevValue);         }         else         {            _streams[i].Clear(period);         }      }   }   bool GetValue(const int period, double &val)   {      if (period >= iBars(_symbol, _timeframe))      {         return false;      }      val = _internal._stream[period];      return _internal._stream[period] != EMPTY_VALUE;   }};#endifinput int param1 = 8// Lookback Window (Custom)input double param2 = 8.// Relative Weighting (Custom)input int param3 = 25// Start Regression at Bar (Custom)input int param4 = 60// ATR Length (Custom)input double param5 = 1.5// Near ATR Factor (Custom)input double param6 = 2.0// Far ATR Factor (Custom)input int bars_limit = 100000// Bars limitint customLookbackWindow;double customRelativeWeighting;int customStartRegressionBar;class customKernel_fS_i_f_iStream{   IStream* x;   int h;   double alpha;   int x_0;   bool _initialized;public:   customKernel_fS_i_f_iStream(IStream* x, int h, double alpha, int x_0)   {      _initialized = false;      this.x = x;      x.AddRef();      this.h = h;      this.alpha = alpha;      this.x_0 = x_0;   }   ~customKernel_fS_i_f_iStream()   {      x.Release();   }   int Init(int id)   {      return id;   }   void Clear()   {      _initialized = false;   }   bool GetValue(const int pos, double &__out1)   {      double sumWeights = 0.0;      double sumXWeights = 0.0;      int for1_from = 0;      int for1_to = h;      bool for1_forward = for1_from <= for1_to;      int for1_step = 1 * (for1_forward ? 1 : -1);      if (for1_from == EMPTY_VALUE || for1_to == EMPTY_VALUE) { return false; }      for (int i = for1_from; (for1_forward ? i <= for1_to : i >= for1_to); i += for1_step)      {         double weight = SafeMathPow(SafePlus(1, (SafeDivide(MathPow((x_0 - i), 2), (2 * alpha * h * h)))), (-alpha));         sumWeights = SafePlus(sumWeights, weight);         double xValue_i;         if (!x.GetValue(pos + i, xValue_i)) { xValue_i = EMPTY_VALUE; }         sumXWeights = SafePlus(sumXWeights, SafeMultiply(weight, xValue_i));      }      __out1 = SafeDivide(sumXWeights, sumWeights);      return true;   }};FloatStream* customKernel_fS_i_f_i1_param1;customKernel_fS_i_f_iStream* customKernel_fS_i_f_i1;FloatStream* customKernel_fS_i_f_i2_param1;customKernel_fS_i_f_iStream* customKernel_fS_i_f_i2;FloatStream* customKernel_fS_i_f_i3_param1;customKernel_fS_i_f_iStream* customKernel_fS_i_f_i3;int customATRLength;class customATR_i_fS_fS_fSStream{   int length;   IStream* _high;   IStream* _low;   IStream* _close;   FloatStream* rma1Source;   RmaOnStream* rma1;   bool _initialized;public:   customATR_i_fS_fS_fSStream(int length, IStream* _high, IStream* _low, IStream* _close)   {      _initialized = false;      this.length = length;      this._high = _high;      _high.AddRef();      this._low = _low;      _low.AddRef();      this._close = _close;      _close.AddRef();      rma1Source = new FloatStream(_Symbol, (ENUM_TIMEFRAMES)_Period);      rma1 = new RmaOnStream(rma1Source, length);   }   ~customATR_i_fS_fS_fSStream()   {      _high.Release();      _low.Release();      _close.Release();      rma1Source.Release();      rma1.Release();   }   int Init(int id)   {      return id;   }   void Clear()   {      _initialized = false;   }   bool GetValue(const int pos, double &__out1)   {      if (!_initialized)      {         rma1Source.Init();         _initialized = true;      }      double _highValue_1;      if (!_high.GetValue(pos + 1, _highValue_1)) { _highValue_1 = EMPTY_VALUE; }      double _highValue;      if (!_high.GetValue(pos, _highValue)) { _highValue = EMPTY_VALUE; }      double _lowValue;      if (!_low.GetValue(pos, _lowValue)) { _lowValue = EMPTY_VALUE; }      double _closeValue_1;      if (!_close.GetValue(pos + 1, _closeValue_1)) { _closeValue_1 = EMPTY_VALUE; }      double trueRange = (((_highValue_1) == EMPTY_VALUE) ? SafeMinus(MathLog(_highValue), MathLog(_lowValue)) : SafeMathMax(SafeMathMax(SafeMinus(MathLog(_highValue), MathLog(_lowValue)), SafeMathAbs(SafeMinus(MathLog(_highValue), SafeLog(_closeValue_1)))), SafeMathAbs(SafeMinus(MathLog(_lowValue), SafeLog(_closeValue_1)))));      rma1Source.SetValue(pos, trueRange);      double rma1Value;      if (!rma1.GetValue(pos, rma1Value)) { rma1Value = EMPTY_VALUE; }      __out1 = rma1Value;      return true;   }};FloatStream* customATR_i_fS_fS_fS4_param2;FloatStream* customATR_i_fS_fS_fS4_param3;FloatStream* customATR_i_fS_fS_fS4_param4;customATR_i_fS_fS_fSStream* customATR_i_fS_fS_fS4;double customNearATRFactor;double customFarATRFactor;class getEnvelopeBounds_fS_f_f_fSStream{   IStream* _atr;   double _nearFactor;   double _farFactor;   IStream* _envelope;   bool _initialized;public:   getEnvelopeBounds_fS_f_f_fSStream(IStream* _atr, double _nearFactor, double _farFactor, IStream* _envelope)   {      _initialized = false;      this._atr = _atr;      _atr.AddRef();      this._nearFactor = _nearFactor;      this._farFactor = _farFactor;      this._envelope = _envelope;      _envelope.AddRef();   }   ~getEnvelopeBounds_fS_f_f_fSStream()   {      _atr.Release();      _envelope.Release();   }   int Init(int id)   {      return id;   }   void Clear()   {      _initialized = false;   }   bool GetValue(const int pos, double &__out1, double &__out2, double &__out3, double &__out4, double &__out5, double &__out6)   {      double _envelopeValue;      if (!_envelope.GetValue(pos, _envelopeValue)) { _envelopeValue = EMPTY_VALUE; }      double _atrValue;      if (!_atr.GetValue(pos, _atrValue)) { _atrValue = EMPTY_VALUE; }      double _upperFar = _envelopeValue + _farFactor * _atrValue;      double _upperNear = _envelopeValue + _nearFactor * _atrValue;      double _lowerNear = _envelopeValue - _nearFactor * _atrValue;      double _lowerFar = _envelopeValue - _farFactor * _atrValue;      double _upperAvg = SafeDivide((_upperFar + _upperNear), 2);      double _lowerAvg = SafeDivide((_lowerFar + _lowerNear), 2);      __out1 = _upperNear;      __out2 = _upperFar;      __out3 = _upperAvg;      __out4 = _lowerNear;      __out5 = _lowerFar;      __out6 = _lowerAvg;      return true;   }};FloatStream* getEnvelopeBounds_fS_f_f_fS5_param1;FloatStream* getEnvelopeBounds_fS_f_f_fS5_param4;getEnvelopeBounds_fS_f_f_fSStream* getEnvelopeBounds_fS_f_f_fS5;double plot1[];double plot2[];double plot3[];double customEnvelope[];double customEnvelope_DEFAULT_VALUE;ColoredStream* plot4;ColoredStream* plot6;double plot8[];double plot9[];double plot10[];string IndicatorObjPrefix;bool NamesCollision(const string name){   for (int k = ObjectsTotal(); k >= 0; k--)   {      if (StringFind(ObjectName(0, k), name) == 0)      {         return true;      }   }   return false;}string GenerateIndicatorPrefix(const string target){   for (int i = 0; i < 1000; ++i)   {      string prefix = target + "_" + IntegerToString(i);      if (!NamesCollision(prefix))      {         return prefix;      }   }   return target;}int init(){   IndicatorBuffers(13);   int id = 0;   customLookbackWindow = param1;   customRelativeWeighting = param2;   customStartRegressionBar = param3;   customATRLength = param4;   customNearATRFactor = param5;   customFarATRFactor = param6;   SetIndexBuffer(id, plot1);   SetIndexStyle(id++, DRAW_LINE, STYLE_SOLID, 1, AddTransparency(Red, 60));   SetIndexBuffer(id, plot2);   SetIndexStyle(id++, DRAW_LINE, STYLE_SOLID, 1, AddTransparency(Red, 80));   SetIndexBuffer(id, plot3);   SetIndexStyle(id++, DRAW_LINE, STYLE_SOLID, 1, AddTransparency(Red, 80));   plot4 = new ColoredStream(_Symbol, (ENUM_TIMEFRAMES)_Period);   id = plot4.RegisterStream(id, AddTransparency(Teal, 50));   id = plot4.RegisterStream(id, AddTransparency(Red, 50));   plot6 = new ColoredStream(_Symbol, (ENUM_TIMEFRAMES)_Period);   id = plot6.RegisterStream(id, AddTransparency(Teal, 50));   id = plot6.RegisterStream(id, AddTransparency(Red, 50));   SetIndexBuffer(id, plot8);   SetIndexStyle(id++, DRAW_LINE, STYLE_SOLID, 1, AddTransparency(Teal, 80));   SetIndexBuffer(id, plot9);   SetIndexStyle(id++, DRAW_LINE, STYLE_SOLID, 1, AddTransparency(Teal, 80));   SetIndexBuffer(id, plot10);   SetIndexStyle(id++, DRAW_LINE, STYLE_SOLID, 1, AddTransparency(Teal, 60));   IndicatorObjPrefix = GenerateIndicatorPrefix("NW Envelope");   IndicatorShortName("Nadaraya-Watson Envelope (Non -Repainting) Log Scale");   customKernel_fS_i_f_i1_param1 = new FloatStream(_Symbol, (ENUM_TIMEFRAMES)_Period);   customKernel_fS_i_f_i1 = new customKernel_fS_i_f_iStream(customKernel_fS_i_f_i1_param1, customLookbackWindow, customRelativeWeighting, customStartRegressionBar);   id = customKernel_fS_i_f_i1.Init(id);   customKernel_fS_i_f_i2_param1 = new FloatStream(_Symbol, (ENUM_TIMEFRAMES)_Period);   customKernel_fS_i_f_i2 = new customKernel_fS_i_f_iStream(customKernel_fS_i_f_i2_param1, customLookbackWindow, customRelativeWeighting, customStartRegressionBar);   id = customKernel_fS_i_f_i2.Init(id);   customKernel_fS_i_f_i3_param1 = new FloatStream(_Symbol, (ENUM_TIMEFRAMES)_Period);   customKernel_fS_i_f_i3 = new customKernel_fS_i_f_iStream(customKernel_fS_i_f_i3_param1, customLookbackWindow, customRelativeWeighting, customStartRegressionBar);   id = customKernel_fS_i_f_i3.Init(id);   customATR_i_fS_fS_fS4_param2 = new FloatStream(_Symbol, (ENUM_TIMEFRAMES)_Period);   customATR_i_fS_fS_fS4_param3 = new FloatStream(_Symbol, (ENUM_TIMEFRAMES)_Period);   customATR_i_fS_fS_fS4_param4 = new FloatStream(_Symbol, (ENUM_TIMEFRAMES)_Period);   customATR_i_fS_fS_fS4 = new customATR_i_fS_fS_fSStream(customATRLength, customATR_i_fS_fS_fS4_param2, customATR_i_fS_fS_fS4_param3, customATR_i_fS_fS_fS4_param4);   id = customATR_i_fS_fS_fS4.Init(id);   getEnvelopeBounds_fS_f_f_fS5_param1 = new FloatStream(_Symbol, (ENUM_TIMEFRAMES)_Period);   getEnvelopeBounds_fS_f_f_fS5_param4 = new FloatStream(_Symbol, (ENUM_TIMEFRAMES)_Period);   getEnvelopeBounds_fS_f_f_fS5 = new getEnvelopeBounds_fS_f_f_fSStream(getEnvelopeBounds_fS_f_f_fS5_param1, customNearATRFactor, customFarATRFactor, getEnvelopeBounds_fS_f_f_fS5_param4);   id = getEnvelopeBounds_fS_f_f_fS5.Init(id);   SetIndexBuffer(id++, customEnvelope);   id = plot4.RegisterInternalStream(id);   id = plot6.RegisterInternalStream(id);   return INIT_SUCCEEDED;}int deinit(){   ObjectsDeleteAll(ChartID(), IndicatorObjPrefix);   customKernel_fS_i_f_i1_param1.Release();   delete customKernel_fS_i_f_i1;   customKernel_fS_i_f_i2_param1.Release();   delete customKernel_fS_i_f_i2;   customKernel_fS_i_f_i3_param1.Release();   delete customKernel_fS_i_f_i3;   customATR_i_fS_fS_fS4_param2.Release();   customATR_i_fS_fS_fS4_param3.Release();   customATR_i_fS_fS_fS4_param4.Release();   delete customATR_i_fS_fS_fS4;   getEnvelopeBounds_fS_f_f_fS5_param1.Release();   getEnvelopeBounds_fS_f_f_fS5_param4.Release();   delete getEnvelopeBounds_fS_f_f_fS5;   delete plot4;   delete plot6;   return 0;}int OnCalculate(const int rates_total,                const int prev_calculated,                const datetime &time[],                const double &open[],                const double &high[],                const double &low[],                const double &close[],                const long &tick_volume[],                const long &volume[],                const int &spread[]){   if (prev_calculated <= 0 || prev_calculated > rates_total)   {      customKernel_fS_i_f_i1_param1.Init();      customKernel_fS_i_f_i1.Clear();      customKernel_fS_i_f_i2_param1.Init();      customKernel_fS_i_f_i2.Clear();      customKernel_fS_i_f_i3_param1.Init();      customKernel_fS_i_f_i3.Clear();      customATR_i_fS_fS_fS4_param2.Init();      customATR_i_fS_fS_fS4_param3.Init();      customATR_i_fS_fS_fS4_param4.Init();      customATR_i_fS_fS_fS4.Clear();      getEnvelopeBounds_fS_f_f_fS5_param1.Init();      getEnvelopeBounds_fS_f_f_fS5_param4.Init();      getEnvelopeBounds_fS_f_f_fS5.Clear();      ArrayInitialize(plot1, EMPTY_VALUE);      ArrayInitialize(plot2, EMPTY_VALUE);      ArrayInitialize(plot3, EMPTY_VALUE);      customEnvelope_DEFAULT_VALUE = EMPTY_VALUE;      ArrayInitialize(customEnvelope, customEnvelope_DEFAULT_VALUE);      plot4.Init(EMPTY_VALUE);      plot6.Init(EMPTY_VALUE);      ArrayInitialize(plot8, EMPTY_VALUE);      ArrayInitialize(plot9, EMPTY_VALUE);      ArrayInitialize(plot10, EMPTY_VALUE);   }   bool timeSeries = ArrayGetAsSeries(time);   bool openSeries = ArrayGetAsSeries(open);   bool highSeries = ArrayGetAsSeries(high);   bool lowSeries = ArrayGetAsSeries(low);   bool closeSeries = ArrayGetAsSeries(close);   bool tickVolumeSeries = ArrayGetAsSeries(tick_volume);   ArraySetAsSeries(time, true);   ArraySetAsSeries(opentrue);   ArraySetAsSeries(high, true);   ArraySetAsSeries(low, true);   ArraySetAsSeries(close, true);   ArraySetAsSeries(tick_volume, true);   int toSkip = 0;   for (int pos = MathMin(bars_limit, rates_total - 1 - MathMax(prev_calculated - 1, toSkip)); pos >= 0 && !IsStopped(); --pos)   {      customKernel_fS_i_f_i1_param1.SetValue(pos, MathLog(close[pos]));      double customKernel_fS_i_f_i1Value;      if (!customKernel_fS_i_f_i1.GetValue(pos, customKernel_fS_i_f_i1Value)) { customKernel_fS_i_f_i1Value = EMPTY_VALUE; }      double customEnvelopeClose = SafeMathExp(customKernel_fS_i_f_i1Value);      customKernel_fS_i_f_i2_param1.SetValue(pos, MathLog(high[pos]));      double customKernel_fS_i_f_i2Value;      if (!customKernel_fS_i_f_i2.GetValue(pos, customKernel_fS_i_f_i2Value)) { customKernel_fS_i_f_i2Value = EMPTY_VALUE; }      double customEnvelopeHigh = SafeMathExp(customKernel_fS_i_f_i2Value);      customKernel_fS_i_f_i3_param1.SetValue(pos, MathLog(low[pos]));      double customKernel_fS_i_f_i3Value;      if (!customKernel_fS_i_f_i3.GetValue(pos, customKernel_fS_i_f_i3Value)) { customKernel_fS_i_f_i3Value = EMPTY_VALUE; }      double customEnvelopeLow = SafeMathExp(customKernel_fS_i_f_i3Value);      SetStream(customEnvelope, pos, customEnvelopeClose, customEnvelope_DEFAULT_VALUE);      customATR_i_fS_fS_fS4_param2.SetValue(pos, customEnvelopeHigh);      customATR_i_fS_fS_fS4_param3.SetValue(pos, customEnvelopeLow);      customATR_i_fS_fS_fS4_param4.SetValue(pos, customEnvelopeClose);      double customATR_i_fS_fS_fS4Value;      if (!customATR_i_fS_fS_fS4.GetValue(pos, customATR_i_fS_fS_fS4Value)) { customATR_i_fS_fS_fS4Value = EMPTY_VALUE; }      double customATR = customATR_i_fS_fS_fS4Value;      getEnvelopeBounds_fS_f_f_fS5_param1.SetValue(pos, customATR);      getEnvelopeBounds_fS_f_f_fS5_param4.SetValue(pos, SafeLog(customEnvelopeClose));      double getEnvelopeBounds_fS_f_f_fS5Value1;      double getEnvelopeBounds_fS_f_f_fS5Value2;      double getEnvelopeBounds_fS_f_f_fS5Value3;      double getEnvelopeBounds_fS_f_f_fS5Value4;      double getEnvelopeBounds_fS_f_f_fS5Value5;      double getEnvelopeBounds_fS_f_f_fS5Value6;      if (!getEnvelopeBounds_fS_f_f_fS5.GetValue(pos, getEnvelopeBounds_fS_f_f_fS5Value1, getEnvelopeBounds_fS_f_f_fS5Value2, getEnvelopeBounds_fS_f_f_fS5Value3, getEnvelopeBounds_fS_f_f_fS5Value4, getEnvelopeBounds_fS_f_f_fS5Value5, getEnvelopeBounds_fS_f_f_fS5Value6)) { getEnvelopeBounds_fS_f_f_fS5Value1 = EMPTY_VALUE; getEnvelopeBounds_fS_f_f_fS5Value2 = EMPTY_VALUE; getEnvelopeBounds_fS_f_f_fS5Value3 = EMPTY_VALUE; getEnvelopeBounds_fS_f_f_fS5Value4 = EMPTY_VALUE; getEnvelopeBounds_fS_f_f_fS5Value5 = EMPTY_VALUE; getEnvelopeBounds_fS_f_f_fS5Value6 = EMPTY_VALUE; }      double customUpperNear = getEnvelopeBounds_fS_f_f_fS5Value1;      double customUpperFar = getEnvelopeBounds_fS_f_f_fS5Value2;      double customUpperAvg = getEnvelopeBounds_fS_f_f_fS5Value3;      double customLowerNear = getEnvelopeBounds_fS_f_f_fS5Value4;      double customLowerFar = getEnvelopeBounds_fS_f_f_fS5Value5;      double customLowerAvg = getEnvelopeBounds_fS_f_f_fS5Value6;      uint customUpperBoundaryColorFar = AddTransparency(Red, 60);      uint customUpperBoundaryColorNear = AddTransparency(Red, 80);      uint customBullishEstimatorColor = AddTransparency(Teal, 50);      uint customBearishEstimatorColor = AddTransparency(Red, 50);      uint customLowerBoundaryColorNear = AddTransparency(Teal, 80);      uint customLowerBoundaryColorFar = AddTransparency(Teal, 60);      color plot1_color = customUpperBoundaryColorFar;      if (plot1_color != EMPTY_VALUE) { plot1[pos] = SafeMathExp(customUpperFar); }      else { plot1[pos] = EMPTY_VALUE; }      double customUpperBoundaryFar = plot1[pos];      color plot2_color = customUpperBoundaryColorNear;      if (plot2_color != EMPTY_VALUE) { plot2[pos] = SafeMathExp(customUpperAvg); }      else { plot2[pos] = EMPTY_VALUE; }      double customUpperBoundaryAvg = plot2[pos];      color plot3_color = customUpperBoundaryColorNear;      if (plot3_color != EMPTY_VALUE) { plot3[pos] = SafeMathExp(customUpperNear); }      else { plot3[pos] = EMPTY_VALUE; }      double customUpperBoundaryNear = plot3[pos];      if (pos + 1 > (rates_total - 1)) { continue; }      if (pos + 1 > (rates_total - 1)) { continue; }plot4.SetByColor(customEnvelopeClose, pos, (SafeGreater(customEnvelope[pos], customEnvelope[pos + 1]) ? customBullishEstimatorColor : customBearishEstimatorColor));      double customEstimationPlot = plot6.SetByColor(customEnvelopeClose, pos, (SafeGreater(customEnvelope[pos], customEnvelope[pos + 1]) ? customBullishEstimatorColor : customBearishEstimatorColor));;      color plot8_color = customLowerBoundaryColorNear;      if (plot8_color != EMPTY_VALUE) { plot8[pos] = SafeMathExp(customLowerNear); }      else { plot8[pos] = EMPTY_VALUE; }      double customLowerBoundaryNear = plot8[pos];      color plot9_color = customLowerBoundaryColorNear;      if (plot9_color != EMPTY_VALUE) { plot9[pos] = SafeMathExp(customLowerAvg); }      else { plot9[pos] = EMPTY_VALUE; }      double customLowerBoundaryAvg = plot9[pos];      color plot10_color = customLowerBoundaryColorFar;      if (plot10_color != EMPTY_VALUE) { plot10[pos] = SafeMathExp(customLowerFar); }      else { plot10[pos] = EMPTY_VALUE; }      double customLowerBoundaryFar = plot10[pos];   }   ArraySetAsSeries(time, timeSeries);   ArraySetAsSeries(open, openSeries);   ArraySetAsSeries(high, highSeries);   ArraySetAsSeries(low, lowSeries);   ArraySetAsSeries(close, closeSeries);   ArraySetAsSeries(tick_volume, tickVolumeSeries);   return rates_total;}
基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-05-24 14:25:43 HTTP/1.1 GET : https://www.yeyulingfeng.com/a/661571.html
  2. 运行时间 : 0.136383s [ 吞吐率:7.33req/s ] 内存消耗:4,827.04kb 文件加载:145
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=673fefed64264d9e2217cc9a144480ac
  1. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/autoload_static.php ( 6.05 KB )
  7. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/ralouphie/getallheaders/src/getallheaders.php ( 1.60 KB )
  10. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  11. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  12. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  13. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  14. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  15. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  16. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  17. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  18. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  19. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/guzzlehttp/guzzle/src/functions_include.php ( 0.16 KB )
  21. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/guzzlehttp/guzzle/src/functions.php ( 5.54 KB )
  22. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  23. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  24. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  25. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/provider.php ( 0.19 KB )
  26. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  27. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  28. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  29. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/common.php ( 0.03 KB )
  30. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  32. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/alipay.php ( 3.59 KB )
  33. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  34. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/app.php ( 0.95 KB )
  35. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/cache.php ( 0.78 KB )
  36. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/console.php ( 0.23 KB )
  37. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/cookie.php ( 0.56 KB )
  38. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/database.php ( 2.48 KB )
  39. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/filesystem.php ( 0.61 KB )
  40. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/lang.php ( 0.91 KB )
  41. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/log.php ( 1.35 KB )
  42. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/middleware.php ( 0.19 KB )
  43. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/route.php ( 1.89 KB )
  44. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/session.php ( 0.57 KB )
  45. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/trace.php ( 0.34 KB )
  46. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/view.php ( 0.82 KB )
  47. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/event.php ( 0.25 KB )
  48. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  49. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/service.php ( 0.13 KB )
  50. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/AppService.php ( 0.26 KB )
  51. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  52. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  53. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  54. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  55. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  56. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/services.php ( 0.14 KB )
  57. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  58. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  59. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  60. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  61. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  62. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  63. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  64. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  65. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  66. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  67. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  68. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  69. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  70. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  71. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  72. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  73. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  74. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  75. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  76. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  77. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  78. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  79. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  80. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  81. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  82. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  83. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  84. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  85. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  86. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  87. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/Request.php ( 0.09 KB )
  88. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  89. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/middleware.php ( 0.25 KB )
  90. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  91. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  92. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  93. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  94. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  95. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  96. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  97. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  98. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  99. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  100. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  101. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  102. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  103. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/route/app.php ( 3.94 KB )
  104. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  105. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  106. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/controller/Index.php ( 9.87 KB )
  108. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/BaseController.php ( 2.05 KB )
  109. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  110. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  111. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  112. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  113. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  114. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  115. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  116. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  117. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  118. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  119. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  120. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  121. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  122. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  123. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  124. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  125. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  126. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  127. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  128. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  129. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  130. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  131. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  132. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  133. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  134. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  135. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/controller/Es.php ( 3.30 KB )
  136. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  137. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  138. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  139. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  140. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  141. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  142. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  143. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  144. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/runtime/temp/c935550e3e8a3a4c27dd94e439343fdf.php ( 31.50 KB )
  145. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000524s ] mysql:host=127.0.0.1;port=3306;dbname=wenku;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000696s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000299s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000270s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000481s ]
  6. SELECT * FROM `set` [ RunTime:0.000190s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000517s ]
  8. SELECT * FROM `article` WHERE `id` = 661571 LIMIT 1 [ RunTime:0.000549s ]
  9. UPDATE `article` SET `lasttime` = 1779603943 WHERE `id` = 661571 [ RunTime:0.004066s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 64 LIMIT 1 [ RunTime:0.000238s ]
  11. SELECT * FROM `article` WHERE `id` < 661571 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000433s ]
  12. SELECT * FROM `article` WHERE `id` > 661571 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000404s ]
  13. SELECT * FROM `article` WHERE `id` < 661571 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.000651s ]
  14. SELECT * FROM `article` WHERE `id` < 661571 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.012893s ]
  15. SELECT * FROM `article` WHERE `id` < 661571 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.008830s ]
0.139809s