交易危机

 找回密码
 快捷注册(禁q号)

QQ登录

只需一步,快速开始

搜索
广告位
查看: 29309|回复: 90
打印 上一主题 下一主题

[趋势] 【最新指标】VoltyChannel_Stop_v6.3

  [复制链接]

321

主题

3万

积分

6

精华

百变霹雳小小招财猫!

大型投行

金钱
36815 美元
权重
437
跳转到指定楼层
楼主
发表于 2014-3-25 14:22 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
VOLTY CHANNEL STOP (波动通道止损)是一个能够清楚标识出当前应该是做多还是做空的主图指标,远点代表进场的信号,细线是止损位。有一些专门根据这个指标发展出来的EA,也很受欢迎。

这里给大家介绍最新的VoltyChannel_Stop_v6.3.mq4,增加了很多新功能,指标比旧版本更为强大。当然,还是一如既往的直观和简单。



以下是设定部分:


VoltyChannel_Stop_v6.3.zip (6.96 KB, 下载次数: 37, 售价: 5 金钱)
VoltyChannel_Stop_v6.3.mq4 (32.28 KB, 下载次数: 14, 售价: 5 金钱)
如需下载请回复,谢谢。




代码:


  1. //+------------------------------------------------------------------+
  2. //|                                       VoltyChannel_Stop_v6.3.mq4 |
  3. //|                             Copyright ?2004-14, TrendLaboratory |
  4. //|            http://finance.groups.yahoo.com/group/TrendLaboratory |
  5. //|                                   E-mail: igorad2003@yahoo.co.uk |
  6. //+------------------------------------------------------------------+
  7. // List of MAs:
  8. // MA_Method= 0: SMA        - Simple Moving Average
  9. // MA_Method= 1: EMA        - Exponential Moving Average
  10. // MA_Method= 2: Wilder     - Wilder Exponential Moving Average
  11. // MA_Method= 3: LWMA       - Linear Weighted Moving Average
  12. // MA_Method= 4: SineWMA    - Sine Weighted Moving Average
  13. // MA_Method= 5: TriMA      - Triangular Moving Average
  14. // MA_Method= 6: LSMA       - Least Square Moving Average (or EPMA, Linear Regression Line)
  15. // MA_Method= 7: SMMA       - Smoothed Moving Average
  16. // MA_Method= 8: HMA        - Hull Moving Average by Alan Hull
  17. // MA_Method= 9: ZeroLagEMA - Zero-Lag Exponential Moving Average
  18. // MA_Method=10: DEMA       - Double Exponential Moving Average by Patrick Mulloy
  19. // MA_Method=11: T3_basic   - T3 by T.Tillson (original version)
  20. // MA_Method=12: ITrend     - Instantaneous Trendline by J.Ehlers
  21. // MA_Method=13: Median     - Moving Median
  22. // MA_Method=14: GeoMean    - Geometric Mean
  23. // MA_Method=15: REMA       - Regularized EMA by Chris Satchwell
  24. // MA_Method=16: ILRS       - Integral of Linear Regression Slope
  25. // MA_Method=17: IE/2       - Combination of LSMA and ILRS
  26. // MA_Method=18: TriMAgen   - Triangular Moving Average generalized by J.Ehlers
  27. // MA_Method=19: VWMA       - Volume Weighted Moving Average
  28. // MA_Method=20: JSmooth    - Smoothing by Mark Jurik
  29. // MA_Method=21: SMA_eq     - Simplified SMA
  30. // MA_Method=22: ALMA       - Arnaud Legoux Moving Average
  31. // MA_Method=23: TEMA       - Triple Exponential Moving Average by Patrick Mulloy
  32. // MA_Method=24: T3         - T3 by T.Tillson (correct version)
  33. // MA_Method=25: Laguerre   - Laguerre filter by J.Ehlers
  34. // MA_Method=26: MD         - McGinley Dynamic


  35. #property copyright "Copyright ?2004-14, TrendLaboratory"
  36. #property link      "http://finance.groups.yahoo.com/group/TrendLaboratory"

  37. #property indicator_chart_window
  38. #property indicator_buffers 6

  39. #property indicator_color1 RoyalBlue
  40. #property indicator_color2 Coral
  41. #property indicator_color3 RoyalBlue
  42. #property indicator_color4 Coral
  43. #property indicator_width3 2
  44. #property indicator_width4 2
  45. #property indicator_color5 RoyalBlue
  46. #property indicator_color6 Coral


  47. //---- input parameters
  48. extern int     TimeFrame            =     0;    //TimeFrame in min
  49. extern int     UpBandPrice          =     0;    //Upper Band Price(ex.2 for High)     
  50. extern int     LoBandPrice          =     0;    //Lower Band Price(ex.3 for Low)
  51. extern int     BreakOutMode         =     0;    //Breakout Mode:0-by Close,1-by Up/Lo Band Price,2-by Up/Lo MA(Length,MA_Mode)
  52. extern int     Length               =     1;    //MA Period
  53. extern int     MA_Mode              =     0;    //MA Method(see list above)
  54. extern int     ATR_Length           =    10;    //ATR's Period
  55. extern double  Multiplier           =     3;    //Volatility Multiplier   
  56. extern double  Ratchet              =   0.0;    //Ratchet(-1-off,>= 0-on)
  57. extern double  MoneyRisk            =  1.00;    //Offset Factor(eg.1.2)

  58. extern int     SignalMode           =     1;    //SignalMode: 0-off,1-on
  59. extern int     LineMode             =     1;    //Line mode : 0-off,1-on  
  60. extern int     DotMode              =     1;    //Dot mode  : 0-off,1-on  

  61. extern string  alerts               = "--- Alerts & Emails ---";
  62. extern int     AlertMode            =     0;
  63. extern int     SoundsNumber         =     5;    //Number of sounds after Signal
  64. extern int     SoundsPause          =     5;    //Pause in sec between sounds
  65. extern string  UpSound              = "alert.wav";
  66. extern string  DnSound              = "alert2.wav";
  67. extern int     EmailMode            =     0;    //0-on,1-off   
  68. extern int     EmailsNumber         =     1;    //0-on,1-off


  69. //---- indicator buffers
  70. double UpTrend[];
  71. double DnTrend[];
  72. double UpSignal[];
  73. double DnSignal[];
  74. double UpLine[];
  75. double DnLine[];

  76. int      masize;
  77. double   tmp[][2][2], ma[2][3];
  78. double   mult[2], trend[3], upband1[2], dnband1[2], upband2[2], dnband2[2], hh[2], ll[2];
  79. datetime prevstime, prevtime[2], preTime, ptime;
  80. string   ma_name, short_name, TF, IndicatorName, prevmess, prevemail;
  81. //+------------------------------------------------------------------+
  82. //| Custom indicator initialization function                         |
  83. //+------------------------------------------------------------------+
  84. int init()
  85. {
  86.    if(TimeFrame <= Period()) TimeFrame = Period();
  87.    TF = tf(TimeFrame);
  88.    
  89. //----
  90.    SetIndexBuffer(0, UpTrend); SetIndexStyle(0,    DRAW_ARROW); SetIndexArrow(0,159);
  91.    SetIndexBuffer(1, DnTrend); SetIndexStyle(1,    DRAW_ARROW); SetIndexArrow(1,159);
  92.    SetIndexBuffer(2,UpSignal); SetIndexStyle(2,    DRAW_ARROW); SetIndexArrow(2,108);
  93.    SetIndexBuffer(3,DnSignal); SetIndexStyle(3,    DRAW_ARROW); SetIndexArrow(3,108);
  94.    SetIndexBuffer(4,  UpLine); SetIndexStyle(4,     DRAW_LINE);
  95.    SetIndexBuffer(5,  DnLine); SetIndexStyle(5,     DRAW_LINE);
  96.       
  97.    IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS));
  98. //----
  99.    Length     = MathMax(1,Length);
  100.    ATR_Length = MathMax(1,ATR_Length);
  101.    
  102.    ma_name    = averageName(MA_Mode,masize);
  103.    
  104.    IndicatorName = WindowExpertName();
  105.    short_name    = IndicatorName+"["+TF+"]("+UpBandPrice+","+LoBandPrice+","+BreakOutMode+","+Length+","+ma_name+","+ATR_Length+","+DoubleToStr(Multiplier,2)+","+DoubleToStr(Ratchet,2)+","+DoubleToStr(MoneyRisk,2)+")";
  106.    IndicatorShortName(short_name);
  107.    SetIndexLabel(0,"UpTrend Stop");
  108.    SetIndexLabel(1,"DnTrend Stop");
  109.    SetIndexLabel(2,"UpTrend Signal");
  110.    SetIndexLabel(3,"DnTrend Signal");
  111.    SetIndexLabel(4,"UpTrend Line");
  112.    SetIndexLabel(5,"DnTrend Line");
  113.    //----
  114.    mult[0] = Multiplier;
  115.    
  116.    int draw_begin = MathMax(2,Bars - iBars(NULL,TimeFrame)*TimeFrame/Period() + MathMax(Length,ATR_Length));
  117.    SetIndexDrawBegin(0,draw_begin);
  118.    SetIndexDrawBegin(1,draw_begin);
  119.    SetIndexDrawBegin(2,draw_begin);
  120.    SetIndexDrawBegin(3,draw_begin);
  121.    SetIndexDrawBegin(4,draw_begin);
  122.    SetIndexDrawBegin(5,draw_begin);   

  123. //----
  124.    ArrayResize(tmp,masize);
  125.    
  126.    
  127.    return(0);
  128. }

  129. //----
  130. int deinit() {Comment(""); return(0);}

  131. //+------------------------------------------------------------------+
  132. //| VoltyChannel_Stop_v6.2                                           |
  133. //+------------------------------------------------------------------+
  134. int start()
  135. {
  136.    int shift, limit, counted_bars=IndicatorCounted();
  137.       
  138.    if(counted_bars > 0) limit = Bars - counted_bars - 1;
  139.    if(counted_bars < 0) return(0);
  140.    if(counted_bars < 1)
  141.    {
  142.    limit = Bars-1;   
  143.       for(int i=0;i<limit;i++)
  144.       {
  145.       UpTrend[i]  = EMPTY_VALUE;
  146.       DnTrend[i]  = EMPTY_VALUE;
  147.       UpSignal[i] = EMPTY_VALUE;
  148.       DnSignal[i] = EMPTY_VALUE;
  149.       UpLine[i]   = EMPTY_VALUE;
  150.       DnLine[i]   = EMPTY_VALUE;
  151.       }
  152.    }   
  153.    
  154.    
  155.    if(TimeFrame != Period())
  156.         {
  157.    limit = MathMax(limit,TimeFrame/Period());   
  158.       
  159.       for(shift = 0;shift < limit;shift++)
  160.       {       
  161.       int y = iBarShift(NULL,TimeFrame,Time[shift]);
  162.       
  163.          if(DotMode > 0)
  164.          {
  165.          UpTrend[shift]  = iCustom(NULL,TimeFrame,IndicatorName,0,UpBandPrice,LoBandPrice,BreakOutMode,Length,MA_Mode,ATR_Length,Multiplier,Ratchet,MoneyRisk,SignalMode,LineMode,DotMode,
  166.                                    "",AlertMode,SoundsNumber,SoundsPause,UpSound,DnSound,EmailMode,EmailsNumber,0,y);
  167.                                       
  168.          DnTrend[shift]  = iCustom(NULL,TimeFrame,IndicatorName,0,UpBandPrice,LoBandPrice,BreakOutMode,Length,MA_Mode,ATR_Length,Multiplier,Ratchet,MoneyRisk,SignalMode,LineMode,DotMode,
  169.                                    "",AlertMode,SoundsNumber,SoundsPause,UpSound,DnSound,EmailMode,EmailsNumber,1,y);      
  170.          }
  171.          
  172.          if(SignalMode > 0)
  173.          {         
  174.          UpSignal[shift] = iCustom(NULL,TimeFrame,IndicatorName,0,UpBandPrice,LoBandPrice,BreakOutMode,Length,MA_Mode,ATR_Length,Multiplier,Ratchet,MoneyRisk,SignalMode,LineMode,DotMode,
  175.                                    "",AlertMode,SoundsNumber,SoundsPause,UpSound,DnSound,EmailMode,EmailsNumber,2,y);      
  176.          DnSignal[shift] = iCustom(NULL,TimeFrame,IndicatorName,0,UpBandPrice,LoBandPrice,BreakOutMode,Length,MA_Mode,ATR_Length,Multiplier,Ratchet,MoneyRisk,SignalMode,LineMode,DotMode,
  177.                                    "",AlertMode,SoundsNumber,SoundsPause,UpSound,DnSound,EmailMode,EmailsNumber,3,y);      
  178.          }      
  179.       
  180.          if(LineMode > 0)
  181.          {
  182.          UpLine[shift]   = iCustom(NULL,TimeFrame,IndicatorName,0,UpBandPrice,LoBandPrice,BreakOutMode,Length,MA_Mode,ATR_Length,Multiplier,Ratchet,MoneyRisk,SignalMode,LineMode,DotMode,
  183.                                    "",AlertMode,SoundsNumber,SoundsPause,UpSound,DnSound,EmailMode,EmailsNumber,4,y);      
  184.          DnLine[shift]   = iCustom(NULL,TimeFrame,IndicatorName,0,UpBandPrice,LoBandPrice,BreakOutMode,Length,MA_Mode,ATR_Length,Multiplier,Ratchet,MoneyRisk,SignalMode,LineMode,DotMode,
  185.                                    "",AlertMode,SoundsNumber,SoundsPause,UpSound,DnSound,EmailMode,EmailsNumber,5,y);      
  186.          }

  187.      }  
  188.        
  189.         return(0);
  190.         }
  191.         else
  192.         {
  193.       for(shift=limit;shift>=0;shift--)
  194.       {       
  195.          if(prevstime != Time[shift])
  196.          {
  197.          mult[1]    = mult[0];
  198.          upband1[1] = upband1[0];
  199.          dnband1[1] = dnband1[0];
  200.          upband2[1] = upband2[0];
  201.          dnband2[1] = dnband2[0];
  202.          trend[2]   = trend[1];
  203.          trend[1]   = trend[0];
  204.          hh[1]      = hh[0];
  205.          ll[1]      = ll[0];
  206.          prevstime  = Time[shift];
  207.          }
  208.    
  209.       
  210.       if(trend[1] != trend[2]) mult[1] = Multiplier;
  211.            
  212.       double upMA = allAverages(0,UpBandPrice,Length,MA_Mode,masize,shift);
  213.       double dnMA = allAverages(1,LoBandPrice,Length,MA_Mode,masize,shift);
  214.        
  215.       double atr  = iATR(NULL,0,ATR_Length,shift);
  216.                                 
  217.       upband1[0]  = upMA + mult[1]*atr;
  218.       dnband1[0]  = dnMA - mult[1]*atr;
  219.    
  220.       upband2[0]  = upband1[0] + 0.5*(MoneyRisk - 1)*(upband1[0] - dnband1[0]);  
  221.       dnband2[0]  = dnband1[0] - 0.5*(MoneyRisk - 1)*(upband1[0] - dnband1[0]);
  222.           
  223.              
  224.       trend[0] = trend[1];
  225.            mult[0]  = mult[1];
  226.            hh[0]    = hh[1];
  227.            ll[0]    = ll[1];
  228.       
  229.       switch(BreakOutMode)
  230.       {
  231.       case 1:  if(iMA(NULL,0,1,0,0,UpBandPrice,shift) > upband1[1] && trend[1] <= 0) {trend[0] = 1; hh[0] = High[shift];}  
  232.                if(iMA(NULL,0,1,0,0,LoBandPrice,shift) < dnband1[1] && trend[1] >= 0) {trend[0] =-1; ll[0] = Low [shift];}
  233.                break;   
  234.       
  235.       case 2:  if(upMA > upband1[1] && trend[1] <= 0) {trend[0] = 1; hh[0] = High[shift];}  
  236.                if(dnMA < dnband1[1] && trend[1] >= 0) {trend[0] =-1; ll[0] = Low [shift];}
  237.       
  238.       default: if(Close[shift] > upband1[1] && trend[1] <= 0) {trend[0] = 1; hh[0] = High[shift];}  
  239.                if(Close[shift] < dnband1[1] && trend[1] >= 0) {trend[0] =-1; ll[0] = Low [shift];}
  240.                break;
  241.       }
  242.       
  243.       hh[0] = MathMax(High[shift],hh[0]);
  244.       ll[0] = MathMin(Low [shift],ll[0]);
  245.       
  246.       
  247.       
  248.       UpTrend[shift]  = EMPTY_VALUE;  
  249.       DnTrend[shift]  = EMPTY_VALUE;  
  250.       UpSignal[shift] = EMPTY_VALUE;  
  251.       DnSignal[shift] = EMPTY_VALUE;  
  252.       UpLine[shift]   = EMPTY_VALUE;  
  253.       DnLine[shift]   = EMPTY_VALUE;
  254.                 
  255.          
  256.          if(trend[0] > 0)
  257.          {
  258.             if(trend[1] > 0 && Ratchet >= 0)
  259.             {
  260.             if(hh[0] > hh[1] && trend[1] > 0) mult[0] -= Ratchet;
  261.                
  262.             if(dnband1[0] < dnband1[1]) dnband1[0] = dnband1[1];
  263.             if(dnband2[0] < dnband2[1]) dnband2[0] = dnband2[1];
  264.                  }
  265.                                  
  266.          if(DotMode    > 0) UpTrend[shift] = dnband2[0];
  267.               if(LineMode   > 0) UpLine[shift]  = dnband2[0];   
  268.          if(SignalMode > 0 && trend[1] < 0) UpSignal[shift] = dnband2[0];
  269.          }      
  270.           
  271.          if(trend[0] < 0)
  272.          {
  273.             if(trend[1] < 0 && Ratchet >= 0)
  274.             {
  275.             if(ll[0] < ll[1] && trend[1] < 0) mult[0] -= Ratchet;
  276.             
  277.             if(upband1[0] > upband1[1]) upband1[0] = upband1[1];
  278.             if(upband2[0] > upband2[1]) upband2[0] = upband2[1];          
  279.                  }
  280.                    
  281.          if(DotMode    > 0) DnTrend[shift] = upband2[0];
  282.          if(LineMode   > 0) DnLine[shift]  = upband2[0];   
  283.          if(SignalMode > 0 && trend[1] > 0) DnSignal[shift] = upband2[0];
  284.          }      
  285.       }
  286. //----
  287.       if(AlertMode > 0)
  288.       {
  289.       bool uptrend = trend[1] > 0 && trend[2] <= 0;                  
  290.       bool dntrend = trend[1] < 0 && trend[2] >= 0;
  291.         
  292.          if(uptrend || dntrend)
  293.          {
  294.             if(isNewBar(TimeFrame))
  295.             {
  296.             BoxAlert(uptrend," : BUY Signal at " +DoubleToStr(Close[1],Digits)+", StopLoss at "+DoubleToStr(UpSignal[1],Digits));   
  297.             BoxAlert(dntrend," : SELL Signal at "+DoubleToStr(Close[1],Digits)+", StopLoss at "+DoubleToStr(DnSignal[1],Digits));
  298.             }
  299.       
  300.          WarningSound(uptrend,SoundsNumber,SoundsPause,UpSound,Time[1]);
  301.          WarningSound(dntrend,SoundsNumber,SoundsPause,DnSound,Time[1]);
  302.          
  303.             if(EmailMode > 0)
  304.             {
  305.             EmailAlert(uptrend,"BUY" ," : BUY Signal at " +DoubleToStr(Close[1],Digits)+", StopLoss at "+DoubleToStr(UpSignal[1],Digits),EmailsNumber);
  306.             EmailAlert(dntrend,"SELL"," : SELL Signal at "+DoubleToStr(Close[1],Digits)+", StopLoss at "+DoubleToStr(DnSignal[1],Digits),EmailsNumber);
  307.             }
  308.          }
  309.       }
  310.    }   
  311.    
  312.                          
  313. //----       
  314.         return(0);       
  315. }


  316. string averageName(int mode,int& arraysize)
  317. {   
  318.    string _ma_name = "";
  319.    
  320.    switch(mode)
  321.    {
  322.    case 1 : _ma_name="EMA"       ; break;
  323.    case 2 : _ma_name="Wilder"    ; break;
  324.    case 3 : _ma_name="LWMA"      ; break;
  325.    case 4 : _ma_name="SineWMA"   ; break;
  326.    case 5 : _ma_name="TriMA"     ; break;
  327.    case 6 : _ma_name="LSMA"      ; break;
  328.    case 7 : _ma_name="SMMA"      ; break;
  329.    case 8 : _ma_name="HMA"       ; break;
  330.    case 9 : _ma_name="ZeroLagEMA"; break;
  331.    case 10: _ma_name="DEMA"      ; arraysize = 2; break;
  332.    case 11: _ma_name="T3 basic"  ; arraysize = 6; break;
  333.    case 12: _ma_name="InstTrend" ; break;
  334.    case 13: _ma_name="Median"    ; break;
  335.    case 14: _ma_name="GeoMean"   ; break;
  336.    case 15: _ma_name="REMA"      ; break;
  337.    case 16: _ma_name="ILRS"      ; break;
  338.    case 17: _ma_name="IE/2"      ; break;
  339.    case 18: _ma_name="TriMA_gen" ; break;
  340.    case 19: _ma_name="VWMA"      ; break;
  341.    case 20: _ma_name="JSmooth"   ; arraysize = 5; break;
  342.    case 21: _ma_name="SMA_eq"    ; break;
  343.    case 22: _ma_name="ALMA"      ; break;
  344.    case 23: _ma_name="TEMA"      ; arraysize = 4; break;
  345.    case 24: _ma_name="T3"        ; arraysize = 6; break;
  346.    case 25: _ma_name="Laguerre"  ; arraysize = 4; break;
  347.    case 26: _ma_name="MD"        ; break;
  348.    default: _ma_name="SMA";
  349.    }
  350.    
  351.    return(_ma_name);
  352.    
  353. }

  354. double allAverages(int index,int price,int period,int mode,int arraysize,int bar)
  355. {
  356.    double MA[3];  
  357.         
  358.     if(prevtime[index] != Time[bar])
  359.     {
  360.     ma[index][2]  = ma[index][1];
  361.     ma[index][1]  = ma[index][0];
  362.     for(int i=0;i<arraysize;i++) tmp[i][index][1] = tmp[i][index][0];
  363.    
  364.     prevtime[index] = Time[bar];
  365.     }
  366.    
  367.    for(i=0;i<3;i++) MA[i] = ma[index][i];   
  368.    
  369.    switch(mode)
  370.    {
  371.    case 1 : ma[index][0] = EMA(price,ma[index][1],period,bar); break;
  372.    case 2 : ma[index][0] = Wilder(price,ma[index][1],period,bar); break;  
  373.    case 3 : ma[index][0] = LWMA(price,period,bar); break;
  374.    case 4 : ma[index][0] = SineWMA(price,period,bar); break;
  375.    case 5 : ma[index][0] = TriMA(price,period,bar); break;
  376.    case 6 : ma[index][0] = LSMA(price,period,bar); break;
  377.    case 7 : ma[index][0] = SMMA(price,ma[index][1],period,bar); break;
  378.    case 8 : ma[index][0] = HMA(price,period,bar); break;
  379.    case 9 : ma[index][0] = ZeroLagEMA(price,ma[index][1],period,bar); break;
  380.    case 10: ma[index][0] = DEMA(index,0,price,period,1,bar); break;
  381.    case 11: ma[index][0] = T3_basic(index,0,price,period,0.7,bar); break;
  382.    case 12: ma[index][0] = ITrend(price,MA,period,bar); break;
  383.    case 13: ma[index][0] = Median(price,period,bar); break;
  384.    case 14: ma[index][0] = GeoMean(price,period,bar); break;
  385.    case 15: ma[index][0] = REMA(price,MA,period,0.5,bar); break;
  386.    case 16: ma[index][0] = ILRS(price,period,bar); break;
  387.    case 17: ma[index][0] = IE2(price,period,bar); break;
  388.    case 18: ma[index][0] = TriMA_gen(price,period,bar); break;
  389.    case 19: ma[index][0] = VWMA(price,period,bar); break;
  390.    case 20: ma[index][0] = JSmooth(index,0,price,period,1,bar); break;
  391.    case 21: ma[index][0] = SMA_eq(price,MA,period,bar); break;
  392.    case 22: ma[index][0] = ALMA(price,period,0.85,8,bar); break;
  393.    case 23: ma[index][0] = TEMA(index,price,period,1,bar); break;
  394.    case 24: ma[index][0] = T3(index,0,price,period,0.7,bar); break;
  395.    case 25: ma[index][0] = Laguerre(index,price,period,4,bar); break;
  396.    case 26: ma[index][0] = McGinley(price,ma[index][1],period,bar); break;
  397.    default: ma[index][0] = SMA(price,period,bar); break;
  398.    }
  399.    
  400.    return(ma[index][0]);
  401. }


  402. // MA_Method=0: SMA - Simple Moving Average
  403. double SMA(int price,int per,int bar)
  404. {
  405.    double Sum = 0;
  406.    for(int i = 0;i < per;i++) Sum += iMA(NULL,0,1,0,0,price,bar+i);
  407.    
  408.    return(Sum/per);
  409. }

  410. double SMAOnArray(double& array[],int per,int bar)
  411. {
  412.    double Sum = 0;
  413.    for(int i = 0;i < per;i++) Sum += array[bar+i];
  414.    
  415.    return(Sum/per);
  416. }
  417.                            
  418. // MA_Method=1: EMA - Exponential Moving Average
  419. double EMA(int price,double prev,int per,int bar)
  420. {
  421.    if(bar >= Bars - 2) double ema = iMA(NULL,0,1,0,0,price,bar);
  422.    else
  423.    ema = prev + 2.0/(1+per)*(iMA(NULL,0,1,0,0,price,bar) - prev);
  424.    
  425.    return(ema);
  426. }

  427. // MA_Method=2: Wilder - Wilder Exponential Moving Average
  428. double Wilder(int price,double prev,int per,int bar)
  429. {
  430.    if(bar >= Bars - 2) double wilder = iMA(NULL,0,1,0,0,price,bar); //SMA(array1,per,bar);
  431.    else
  432.    wilder = prev + (iMA(NULL,0,1,0,0,price,bar) - prev)/per;
  433.    
  434.    return(wilder);
  435. }

  436. // MA_Method=3: LWMA - Linear Weighted Moving Average
  437. double LWMA(int price,int per,int bar)
  438. {
  439.    double Sum = 0;
  440.    double Weight = 0;
  441.    
  442.       for(int i = 0;i < per;i++)
  443.       {
  444.       Weight+= (per - i);
  445.       Sum += iMA(NULL,0,1,0,0,price,bar+i)*(per - i);
  446.       }
  447.    if(Weight>0) double lwma = Sum/Weight;
  448.    else lwma = 0;
  449.    return(lwma);
  450. }

  451. double LWMAOnArray(double& array[],int per,int bar)
  452. {
  453.    double Sum = 0;
  454.    double Weight = 0;
  455.    
  456.       for(int i = 0;i < per;i++)
  457.       {
  458.       Weight+= (per - i);
  459.       Sum += array[bar+i]*(per - i);
  460.       }
  461.    if(Weight>0) double lwma = Sum/Weight;
  462.    else lwma = 0;
  463.    return(lwma);
  464. }


  465. // MA_Method=4: SineWMA - Sine Weighted Moving Average
  466. double SineWMA(int price,int per,int bar)
  467. {
  468.    double pi = 3.1415926535;
  469.    double Sum = 0;
  470.    double Weight = 0;
  471.   
  472.       for(int i = 0;i < per;i++)
  473.       {
  474.       Weight+= MathSin(pi*(i+1)/(per+1));
  475.       Sum += iMA(NULL,0,1,0,0,price,bar+i)*MathSin(pi*(i+1)/(per+1));
  476.       }
  477.    if(Weight>0) double swma = Sum/Weight;
  478.    else swma = 0;
  479.    return(swma);
  480. }

  481. // MA_Method=5: TriMA - Triangular Moving Average
  482. double TriMA(int price,int per,int bar)
  483. {
  484.    double sma;
  485.    int len = MathCeil((per+1)*0.5);
  486.    
  487.    double sum=0;
  488.    for(int i = 0;i < len;i++)
  489.    {
  490.    sma = SMA(price,len,bar+i);
  491.    sum += sma;
  492.    }
  493.    double trima = sum/len;
  494.    
  495.    return(trima);
  496. }

  497. // MA_Method=6: LSMA - Least Square Moving Average (or EPMA, Linear Regression Line)
  498. double LSMA(int price,int per,int bar)
  499. {   
  500.    double Sum=0;
  501.    for(int i=per; i>=1; i--) Sum += (i-(per+1)/3.0)*iMA(NULL,0,1,0,0,price,bar+per-i);
  502.    double lsma = Sum*6/(per*(per+1));
  503.    return(lsma);
  504. }

  505. // MA_Method=7: SMMA - Smoothed Moving Average
  506. double SMMA(int price,double prev,int per,int bar)
  507. {
  508.    if(bar == Bars - per) double smma = SMA(price,per,bar);
  509.    else
  510.    if(bar < Bars - per)
  511.    {
  512.    double Sum = 0;
  513.    for(int i = 0;i < per;i++) Sum += iMA(NULL,0,1,0,0,price,bar+i+1);
  514.    smma = (Sum - prev + iMA(NULL,0,1,0,0,price,bar))/per;
  515.    }
  516.    
  517.    return(smma);
  518. }

  519. // MA_Method=8: HMA - Hull Moving Average by Alan Hull
  520. double HMA(int price,int per,int bar)
  521. {
  522.    double _tmp[];
  523.    int len = MathSqrt(per);
  524.    
  525.    ArrayResize(_tmp,len);
  526.    
  527.    if(bar == Bars - per) double hma = iMA(NULL,0,1,0,0,price,bar);
  528.    else
  529.    if(bar < Bars - per)
  530.    {
  531.    for(int i=0;i<len;i++) _tmp[i] = 2*LWMA(price,per/2,bar+i) - LWMA(price,per,bar+i);  
  532.    hma = LWMAOnArray(_tmp,len,0);
  533.    }  

  534.    return(hma);
  535. }

  536. // MA_Method=9: ZeroLagEMA - Zero-Lag Exponential Moving Average
  537. double ZeroLagEMA(int price,double prev,int per,int bar)
  538. {
  539.    double alfa = 2.0/(1+per);
  540.    int lag = 0.5*(per - 1);
  541.    
  542.    if(bar >= Bars - lag) double zema = iMA(NULL,0,1,0,0,price,bar);
  543.    else
  544.    zema = alfa*(2*iMA(NULL,0,1,0,0,price,bar) - iMA(NULL,0,1,0,0,price,bar+lag)) + (1-alfa)*prev;
  545.    
  546.    return(zema);
  547. }

  548. // MA_Method=10: DEMA - Double Exponential Moving Average by Patrick Mulloy
  549. double DEMA(int index,int num,int price,double per,double v,int bar)
  550. {
  551.    double alpha = 2.0/(1+per);
  552.    if(bar == Bars - 2) {double dema = iMA(NULL,0,1,0,0,price,bar); tmp[num][index][0] = dema; tmp[num+1][index][0] = dema;}
  553.    else
  554.    if(bar <  Bars - 2)
  555.    {
  556.    tmp[num  ][index][0] = tmp[num  ][index][1] + alpha*(iMA(NULL,0,1,0,0,price,bar) - tmp[num  ][index][1]);
  557.    tmp[num+1][index][0] = tmp[num+1][index][1] + alpha*(tmp[num][index][0]          - tmp[num+1][index][1]);
  558.    dema                 = tmp[num  ][index][0]*(1+v) - tmp[num+1][index][0]*v;
  559.    }
  560.    
  561.    return(dema);
  562. }

  563. double DEMAOnArray(int index,int num,double price,double per,double v,int bar)
  564. {
  565.    double alpha = 2.0/(1+per);
  566.    if(bar == Bars - 2) {double dema = price; tmp[num][index][0] = dema; tmp[num+1][index][0] = dema;}
  567.    else
  568.    if(bar <  Bars - 2)
  569.    {
  570.    tmp[num  ][index][0] = tmp[num  ][index][1] + alpha*(price              - tmp[num  ][index][1]);
  571.    tmp[num+1][index][0] = tmp[num+1][index][1] + alpha*(tmp[num][index][0] - tmp[num+1][index][1]);
  572.    dema                 = tmp[num  ][index][0]*(1+v) - tmp[num+1][index][0]*v;
  573.    }
  574.    
  575.    return(dema);
  576. }

  577. // MA_Method=11: T3 by T.Tillson
  578. double T3_basic(int index,int num,int price,int per,double v,int bar)
  579. {
  580.    double dema1, dema2;
  581.    
  582.    if(bar == Bars - 2)
  583.    {
  584.    double T3 = iMA(NULL,0,1,0,0,price,bar);
  585.    for(int k=0;k<6;k++) tmp[num+k][index][0] = T3;
  586.    }
  587.    else
  588.    if(bar < Bars - 2)
  589.    {
  590.    T3    = iMA(NULL,0,1,0,0,price,bar);
  591.    dema1 = DEMAOnArray(index,num  ,T3   ,per,v,bar);
  592.    dema2 = DEMAOnArray(index,num+2,dema1,per,v,bar);
  593.    T3    = DEMAOnArray(index,num+4,dema2,per,v,bar);
  594.    }
  595.    
  596.    return(T3);
  597. }

  598. // MA_Method=12: ITrend - Instantaneous Trendline by J.Ehlers
  599. double ITrend(int price,double& array[],int per,int bar)
  600. {
  601.    double alfa = 2.0/(per + 1);
  602.    if(bar < Bars - 7)
  603.    double it = (alfa - 0.25*alfa*alfa)*iMA(NULL,0,1,0,0,price,bar) + 0.5*alfa*alfa*iMA(NULL,0,1,0,0,price,bar+1)
  604.              - (alfa - 0.75*alfa*alfa)*iMA(NULL,0,1,0,0,price,bar+2) + 2*(1-alfa)*array[1] - (1-alfa)*(1-alfa)*array[2];
  605.    else
  606.    it = (iMA(NULL,0,1,0,0,price,bar) + 2*iMA(NULL,0,1,0,0,price,bar+1) + iMA(NULL,0,1,0,0,price,bar)+2)/4;
  607.    
  608.    return(it);
  609. }

  610. // MA_Method=13: Median - Moving Median
  611. double Median(int price,int per,int bar)
  612. {
  613.    double array[];
  614.    ArrayResize(array,per);
  615.    
  616.    for(int i = 0; i < per;i++) array[i] = iMA(NULL,0,1,0,0,price,bar+i);
  617.    ArraySort(array);
  618.    
  619.    int num = MathRound((per-1)/2);
  620.    if(MathMod(per,2) > 0) double median = array[num]; else median = 0.5*(array[num]+array[num+1]);
  621.    
  622.    return(median);
  623. }

  624. // MA_Method=14: GeoMean - Geometric Mean
  625. double GeoMean(int price,int per,int bar)
  626. {
  627.    if(bar < Bars - per)
  628.    {
  629.    double gmean = MathPow(iMA(NULL,0,1,0,0,price,bar),1.0/per);
  630.    for(int i = 1; i < per;i++) gmean *= MathPow(iMA(NULL,0,1,0,0,price,bar+i),1.0/per);
  631.    }
  632.    
  633.    return(gmean);
  634. }

  635. // MA_Method=15: REMA - Regularized EMA by Chris Satchwell
  636. double REMA(int price,double& array[],int per,double lambda,int bar)
  637. {
  638.    double alpha =  2.0/(per + 1);
  639.    if(bar >= Bars - 3) double rema = iMA(NULL,0,1,0,0,price,bar);
  640.    else
  641.    rema = (array[1]*(1+2*lambda) + alpha*(iMA(NULL,0,1,0,0,price,bar) - array[1]) - lambda*array[2])/(1+lambda);
  642.    
  643.    return(rema);
  644. }

  645. // MA_Method=16: ILRS - Integral of Linear Regression Slope
  646. double ILRS(int price,int per,int bar)
  647. {
  648.    double sum = per*(per-1)*0.5;
  649.    double sum2 = (per-1)*per*(2*per-1)/6.0;
  650.      
  651.    double sum1 = 0;
  652.    double sumy = 0;
  653.       for(int i=0;i<per;i++)
  654.       {
  655.       sum1 += i*iMA(NULL,0,1,0,0,price,bar+i);
  656.       sumy += iMA(NULL,0,1,0,0,price,bar+i);
  657.       }
  658.    double num1 = per*sum1 - sum*sumy;
  659.    double num2 = sum*sum - per*sum2;
  660.    
  661.    if(num2 != 0) double slope = num1/num2; else slope = 0;
  662.    double ilrs = slope + SMA(price,per,bar);
  663.    
  664.    return(ilrs);
  665. }

  666. // MA_Method=17: IE/2 - Combination of LSMA and ILRS
  667. double IE2(int price,int per,int bar)
  668. {
  669.    double ie = 0.5*(ILRS(price,per,bar) + LSMA(price,per,bar));
  670.       
  671.    return(ie);
  672. }

  673. // MA_Method=18: TriMAgen - Triangular Moving Average Generalized by J.Ehlers
  674. double TriMA_gen(int price,int per,int bar)
  675. {
  676.    int len1 = MathFloor((per+1)*0.5);
  677.    int len2 = MathCeil((per+1)*0.5);
  678.    double sum=0;
  679.    for(int i = 0;i < len2;i++) sum += SMA(price,len1,bar+i);
  680.    double trimagen = sum/len2;
  681.    
  682.    return(trimagen);
  683. }

  684. double TriMA_genOnArray(double& array[],int per,int bar)
  685. {
  686.    int len1 = MathFloor((per+1)*0.5);
  687.    int len2 = MathCeil((per+1)*0.5);
  688.    double sum=0;
  689.    for(int i = 0;i < len2;i++) sum += SMAOnArray(array,len1,bar+i);
  690.    double trimagen = sum/len2;
  691.    
  692.    return(trimagen);
  693. }

  694. // MA_Method=19: VWMA - Volume Weighted Moving Average
  695. double VWMA(int price,int per,int bar)
  696. {
  697.    double Sum = 0;
  698.    double Weight = 0;
  699.    
  700.       for(int i = 0;i < per;i++)
  701.       {
  702.       Weight+= Volume[bar+i];
  703.       Sum += iMA(NULL,0,1,0,0,price,bar+i)*Volume[bar+i];
  704.       }
  705.    if(Weight>0) double vwma = Sum/Weight;
  706.    else vwma = 0;
  707.    return(vwma);
  708. }

  709. // MA_Method=20: JSmooth - Smoothing by Mark Jurik
  710. double JSmooth(int index,int num,int price,int per,double pow,int bar)
  711. {
  712.    double beta  = 0.45*(per-1)/(0.45*(per-1)+2);
  713.         double alpha = MathPow(beta,pow);
  714.         double _ma   = iMA(NULL,0,1,0,0,price,bar);
  715.        
  716.         if(bar == Bars - 2)
  717.         {
  718.         tmp[num+4][index][0] = _ma;
  719.         tmp[num+0][index][0] = _ma;
  720.         tmp[num+2][index][0] = _ma;
  721.         }
  722.         else
  723.    if(bar <  Bars - 2)
  724.    {
  725.         tmp[num+0][index][0] = (1-alpha)*_ma + alpha*tmp[num+0][index][1];
  726.         tmp[num+1][index][0] = (_ma - tmp[num+0][index][0])*(1-beta) + beta*tmp[num+1][index][1];
  727.         tmp[num+2][index][0] = tmp[num+0][index][0] + tmp[num+1][index][0];
  728.         tmp[num+3][index][0] = (tmp[num+2][index][0] - tmp[num+4][index][1])*MathPow((1-alpha),2) + MathPow(alpha,2)*tmp[num+3][index][1];
  729.         tmp[num+4][index][0] = tmp[num+4][index][1] + tmp[num+3][index][0];
  730.    }
  731.    
  732.    return(tmp[num+4][index][0]);
  733. }

  734. // MA_Method=21: SMA_eq     - Simplified SMA
  735. double SMA_eq(int price,double& array[],int per,int bar)
  736. {
  737.    if(bar == Bars - per) double sma = SMA(price,per,bar);
  738.    else
  739.    if(bar <  Bars - per) sma = (iMA(NULL,0,1,0,0,price,bar) - iMA(NULL,0,1,0,0,price,bar+per))/per + array[1];
  740.    
  741.    return(sma);
  742. }                                       

  743. // MA_Method=22: ALMA by Arnaud Legoux / Dimitris Kouzis-Loukas / Anthony Cascino
  744. double ALMA(int price,int per,double offset,double sigma,int bar)
  745. {
  746.    double m = MathFloor(offset * (per - 1));
  747.         double s = per/sigma;
  748.                
  749.         double w, sum =0, wsum = 0;               
  750.         for (int i=0;i < per;i++)
  751.         {
  752.         w = MathExp(-((i - m)*(i - m))/(2*s*s));
  753.    wsum += w;
  754.    sum += iMA(NULL,0,1,0,0,price,bar+(per-1-i))*w;
  755.    }
  756.    
  757.    if(wsum != 0) double alma = sum/wsum;
  758.    
  759.    return(alma);
  760. }   

  761. // MA_Method=23: TEMA - Triple Exponential Moving Average by Patrick Mulloy
  762. double TEMA(int index,int price,int per,double v,int bar)
  763. {
  764.    double alpha = 2.0/(per+1);
  765.         double _ma   = iMA(NULL,0,1,0,0,price,bar);
  766.         if(bar == Bars - 2) {tmp[0][index][0] = _ma; tmp[1][index][0] = _ma; tmp[2][index][0] = _ma;}
  767.         else
  768.    if(bar <  Bars - 2)
  769.    {
  770.         tmp[0][index][0] = tmp[0][index][1] + alpha *(_ma               - tmp[0][index][1]);
  771.         tmp[1][index][0] = tmp[1][index][1] + alpha *(tmp[0][index][0] - tmp[1][index][1]);
  772.         tmp[2][index][0] = tmp[2][index][1] + alpha *(tmp[1][index][0] - tmp[2][index][1]);
  773.         tmp[3][index][0] = tmp[0][index][0] + v*(tmp[0][index][0] + v*(tmp[0][index][0]-tmp[1][index][0]) - tmp[1][index][0] - v*(tmp[1][index][0] - tmp[2][index][0]));
  774.         }
  775.    
  776.    return(tmp[3][index][0]);
  777. }

  778. // MA_Method=24: T3 by T.Tillson (correct version)
  779. double T3(int index,int num,double price,int per,double v,int bar)
  780. {
  781.    double len = MathMax((per + 5.0)/3.0-1,1), dema1, dema2;
  782.    double T3, _ma = iMA(NULL,0,1,0,0,price,bar);
  783.    
  784.    if(bar == Bars - 2) for(int k=0;k<6;k++) tmp[num+k][index][0] = _ma;
  785.    else
  786.    if(bar < Bars - 2)
  787.    {
  788.    dema1 = DEMAOnArray(index,num  ,_ma  ,len,v,bar);
  789.    dema2 = DEMAOnArray(index,num+2,dema1,len,v,bar);
  790.    T3    = DEMAOnArray(index,num+4,dema2,len,v,bar);
  791.    }
  792.    
  793.    return(T3);
  794. }

  795. // MA_Method=25: Laguerre filter by J.Ehlers
  796. double Laguerre(int index,int price,int per,int order,int bar)
  797. {
  798.    double gamma = 1-10.0/(per+9);
  799.    double _ma   = iMA(NULL,0,1,0,0,price,bar);
  800.    double aPrice[];
  801.    
  802.    ArrayResize(aPrice,order);
  803.    
  804.    for(int i=0;i<order;i++)
  805.    {
  806.       if(bar >= Bars - order) tmp[i][index][0] = _ma;
  807.       else
  808.       {
  809.          if(i == 0) tmp[i][index][0] = (1 - gamma)*_ma + gamma*tmp[i][index][1];
  810.          else
  811.          tmp[i][index][0] = -gamma * tmp[i-1][index][0] + tmp[i-1][index][1] + gamma * tmp[i][index][1];
  812.       
  813.       aPrice[i] = tmp[i][index][0];
  814.       }
  815.    }
  816.    double laguerre = TriMA_genOnArray(aPrice,order,0);  

  817.    return(laguerre);
  818. }

  819. // MA_Method=26:  MD - McGinley Dynamic
  820. double McGinley(int price,double prev,int per,int bar)
  821. {
  822.    if(bar == Bars - 2) double md = iMA(NULL,0,1,0,0,price,bar);
  823.    else
  824.    if(bar <  Bars - 2 && prev > 0)
  825.    {
  826.    double p = iMA(NULL,0,1,0,0,price,bar);
  827.    md = prev + (p - prev)/(per*MathPow(p/prev,4)/2);
  828.    }
  829.    return(md);
  830. }


  831. bool isNewBar(int tf)
  832. {
  833.    static datetime pTime;
  834.    bool res=false;
  835.    
  836.    if(tf >= 0)
  837.    {
  838.       if (iTime(NULL,tf,0)!= pTime)
  839.       {
  840.       res=true;
  841.       pTime=iTime(NULL,tf,0);
  842.       }   
  843.    }
  844.    else res = true;
  845.    
  846.    return(res);
  847. }

  848. bool BoxAlert(bool cond,string text)   
  849. {      
  850.    string mess = IndicatorName + "("+Symbol()+","+TF + ")" + text;
  851.    
  852.    if (cond && mess != prevmess)
  853.         {
  854.         Alert (mess);
  855.         prevmess = mess;
  856.         return(true);
  857.         }
  858.   
  859.    return(false);  
  860. }

  861. bool Pause(int sec)
  862. {
  863.    if(TimeCurrent() >= preTime + sec) {preTime = TimeCurrent(); return(true);}
  864.    
  865.    return(false);
  866. }

  867. void WarningSound(bool cond,int num,int sec,string sound,datetime ctime)
  868. {
  869.    static int i;
  870.    
  871.    if(cond)
  872.    {
  873.    if(ctime != ptime) i = 0;
  874.    if(i < num && Pause(sec)) {PlaySound(sound); ptime = ctime; i++;}              
  875.    }
  876. }

  877. bool EmailAlert(bool cond,string text1,string text2,int num)   
  878. {      
  879.    string subj = "New " + text1 +" Signal from " + IndicatorName + "!!!";   
  880.    string mess = IndicatorName + "("+Symbol()+","+TF + ")" + text2;
  881.    
  882.    if (cond && mess != prevemail)
  883.         {
  884.         if(subj != "" && mess != "") for(int i=0;i<num;i++) SendMail(subj, mess);  
  885.         prevemail = mess;
  886.         return(true);
  887.         }
  888.   
  889.    return(false);  
  890. }                

  891. string tf(int timeframe)
  892. {
  893.    switch(timeframe)
  894.    {
  895.    case PERIOD_M1:   return("M1");
  896.    case PERIOD_M5:   return("M5");
  897.    case PERIOD_M15:  return("M15");
  898.    case PERIOD_M30:  return("M30");
  899.    case PERIOD_H1:   return("H1");
  900.    case PERIOD_H4:   return("H4");
  901.    case PERIOD_D1:   return("D1");
  902.    case PERIOD_W1:   return("W1");
  903.    case PERIOD_MN1:  return("MN1");
  904.    default:          return("Unknown timeframe");
  905.    }
  906. }                  

复制代码
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏8 转播转播 分享分享 分享淘帖 支持支持 保留保留

52

主题

4209

积分

0

精华

高级操盘手

金钱
4209 美元
权重
108
沙发
发表于 2014-3-25 14:41 | 只看该作者
我去,沙发 拿下!
当你刻意地追求时,它就像蝴蝶一样振翅飞远;当你专心致志之时,意外的收获已悄悄来到你的身边!

52

主题

4209

积分

0

精华

高级操盘手

金钱
4209 美元
权重
108
板凳
发表于 2014-3-25 15:05 | 只看该作者
我安装上面怎么没有时间显示?
当你刻意地追求时,它就像蝴蝶一样振翅飞远;当你专心致志之时,意外的收获已悄悄来到你的身边!

352

主题

7816

积分

3

精华

高级操盘手

金钱
7816 美元
权重
224
地板
发表于 2014-3-25 15:11 | 只看该作者
感谢分析,看看怎么样

321

主题

3万

积分

6

精华

百变霹雳小小招财猫!

大型投行

金钱
36815 美元
权重
437
5
 楼主| 发表于 2014-3-25 15:21 | 只看该作者
趋势追随者 发表于 2014-3-25 15:05
我安装上面怎么没有时间显示?

那是其他的指标,不是voltychannel stop的功能

52

主题

4209

积分

0

精华

高级操盘手

金钱
4209 美元
权重
108
6
发表于 2014-3-25 15:36 | 只看该作者
wccmcd 发表于 2014-3-25 15:21
那是其他的指标,不是voltychannel stop的功能


{:soso_e144:} 膜拜。共享下吧?{:soso_e144:}

点评

这。。。盗来的图,我也不知道那个是啥啊。。。有空的时候再帮你找找吧  发表于 2014-3-25 15:42
当你刻意地追求时,它就像蝴蝶一样振翅飞远;当你专心致志之时,意外的收获已悄悄来到你的身边!

0

主题

971

积分

0

精华

初级操盘手

金钱
971 美元
权重
0
7
发表于 2014-3-25 16:21 | 只看该作者
回复,看看,谢楼主!

14

主题

829

积分

1

精华

初级操盘手

金钱
829 美元
权重
36
8
发表于 2014-3-25 21:06 | 只看该作者
关注下,上次那些TSD指标好多。。。。看花眼了

13

主题

5156

积分

0

精华

高级操盘手

金钱
5156 美元
权重
9
9
发表于 2014-3-25 22:16 | 只看该作者
回复看指标

13

主题

5156

积分

0

精华

高级操盘手

金钱
5156 美元
权重
9
10
发表于 2014-3-25 22:20 | 只看该作者
回复看指标

0

主题

151

积分

0

精华

见习操盘手

金钱
151 美元
权重
0
11
发表于 2014-3-26 04:12 | 只看该作者
不是已经回复过了吗,怎么还看不到

0

主题

101

积分

0

精华

见习操盘手

金钱
101 美元
权重
0
12
发表于 2014-3-26 13:19 | 只看该作者
下载看看,谢谢

0

主题

101

积分

0

精华

见习操盘手

金钱
101 美元
权重
0
13
发表于 2014-3-26 13:20 | 只看该作者
怎么显示无法读取,下载不了

点评

我刚下了没问题,再试试  发表于 2014-3-26 13:21

6

主题

2064

积分

0

精华

中级操盘手

金钱
2064 美元
权重
4
14
发表于 2014-3-27 07:09 | 只看该作者
如果您要查看本帖隐藏内容请回复

158

主题

9540

积分

4

精华

操盘专家

金钱
9540 美元
权重
222
15
发表于 2014-3-27 15:17 | 只看该作者
目测跟抛物线转向没啥区别{:soso_e122:}
以乐观的态度享受生活,从游戏的角度参与交易

321

主题

3万

积分

6

精华

百变霹雳小小招财猫!

大型投行

金钱
36815 美元
权重
437
16
 楼主| 发表于 2014-3-27 17:59 | 只看该作者
闲逛汇市 发表于 2014-3-27 15:17
目测跟抛物线转向没啥区别

我也不懂。。。。。

1

主题

6848

积分

0

精华

高级操盘手

金钱
6848 美元
权重
1
17
发表于 2014-3-30 20:20 | 只看该作者
主要是用在什么时间内啊?

321

主题

3万

积分

6

精华

百变霹雳小小招财猫!

大型投行

金钱
36815 美元
权重
437
18
 楼主| 发表于 2014-3-30 23:18 | 只看该作者
Laurence 发表于 2014-3-30 20:20
主要是用在什么时间内啊?

这是一个多周期的指标,你用在任何时间框架下都可以;例如,你可以在M15的图表上,显示H1的指标;也可以在小时图中显示四小时的指标。

4

主题

71

积分

0

精华

外汇入门

金钱
71 美元
权重
14
19
发表于 2014-3-31 06:37 | 只看该作者
gooooooooooooooooooooooooooooooooooooooooooooooood

0

主题

28

积分

0

精华

外汇入门

金钱
28 美元
权重
0
20
发表于 2014-4-7 17:11 | 只看该作者

谢谢分享!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 快捷注册(禁q号)

本版积分规则

QQ|黄金吧|黄金论坛|手机版|指标下载|非农|目录|交易危机

版权所有: ©2014-2021 fx3q.com Powered by Discuz! X3
皖ICP备: 2024050410号-2

风险提示:杠杆风险高,交易要谨慎 声明:坛友发言和回复均为个人观点,不代表论坛立场。
若有侵权请联系fx3q@qq.com删除

快速回复 返回顶部 返回列表