您的位置 首页 外汇EA指标

外汇EA编写教程:液体图

介绍 有一次,我注意到每个经纪人的h4时间框架和更高的图表是不同的。这背后的原因是经纪人位于不同的时区。在某些情况下,虽然时区之间的差异很小,但同一图表的某些部分会有显著差异。一张…

介绍

有一次,我注意到每个经纪人的h4时间框架和更高的图表是不同的。这背后的原因是经纪人位于不同的时区。在某些情况下,虽然时区之间的差异很小,但同一图表的某些部分会有显著差异。一张图上有一个明显的反演模式,但另一张图上的同一部分没有显示出任何确切的形状。

在那之后,我突然想到了一个想法,写了一个索引来重新绘制h1图表,这样在右边总是有一个完整的结束列。选择M1循环作为价格来源。结果,每分钟重新绘制一次小时图表,一小时内我在同一个小时图表中有60个变化。它的形式变化平稳流畅,显露出一些在最初的情况下没有被提示过的隐藏形式。

我把这个指示器称为“液体图表”,因为它的性能非常好。根据不同的绘图模式,图表“流动”(重新绘制)可以是在参考期间出现新列或静态位移值发生变化时。本文将研究绘制“液相图”的原理,编制指标,并将此技术与依表交易的EA效率进行比较。

1。绘图原理

在我们开始之前,让我们定义术语。

位移结果表的列开盘价与源表的列开盘价之差。

当前时间范围是源图表时间范围。

基准时间框架是我们将在结果图表中形成价格条的时间框架。

参考期不应超过当前参考期。当前循环必须能够被基本循环分割,而不需要保留。当前时间框架与基线的比率越大,结果图中的变化就越多。但是,如果比率太大,则用于绘制参考时间框架的结果图列的必要历史数据的数量可能不足。

有三种类型的图表绘制。

  • 带有静态位移的图形(静态位移或SS)。
  • 在打开模式下具有动态移位的图表(仅限动态移位、打开或DSO)。
  • 在关闭模式下具有动态位移的图表(动态位移、预期关闭或DSC)。

在静态位移模式下,柱的开启时间按设定时间位移。打开模式下的动态位移使柱看起来像刚打开,而关闭模式下的柱看起来像即将关闭。

让我们仔细看看。

1.1。静态位移图

在此模式下,每列的打开时间将根据参考时间框架设置的等效分钟数进行移动。我们称之为位移。这样,如果设置的位移等于0,图表将与原始图表完全相同。位移1,15分钟,从参考时间框架,即15分钟。位移2等于30分钟,依此类推。

位移不能超过(k-1),其中k是当前时间帧与参考时间帧的比率。这意味着当前时间框架h 1和参考框架m1的最大允许位移为60/1-1=59或59分钟。如果基准时间框架为M5,则基准时间框架的最大允许位移为60/5-1=11或55分钟。

当前时间框架h1的列的打开时间移动了15分钟,即00:15、01:15、02:15等。当前时间帧M15,位移1分钟,气缸线打开时间为00:16、00:31、00:46、01:01等。

当位移接近极限值时,该图与源图的差值很小。在接近允许范围的位移值中间出现显著差异。

静态位移图表

传说。1。小时图表和参考时间框架M15,示例
,位移等于1

1.2。打开模式动态位移图

在此模式下,将在参考时间范围内为每个新列重新计算位移。同时,计算位移,使图表末尾的列时间(最终价格)不能超过参考时间框架的值。如果当前时间范围是h1,基准是m5,则右列的开始时间似乎早于5分钟前。

动态位移图表, 柱线开始

传说。2。在参考时间框架M15中形成每小时图形,这是一个开放式动态位移
的例子。

1.3。闭合模式动态位移图

在此模式中,与打开模式一样,重新计算参考时间框架中每个新列的位移。唯一的区别是计算位移的方式。图表末尾的列时间(最终价格)大于或等于当前时间帧和参考时间帧之间的差异。如果当前时间范围是h1,基准是m5,则右列的结束时间不超过5分钟。

动态位移图表, 完整柱线

图形图例。三。小时图形在参考时间框架M15中形成,闭合模式动态位移示例

2。数据转换

编写getrateslc()函数引用科目设置的位移来转换历史数据。它将修改后的历史数据写入mqlrates类型的结构化数组中,类似于copyrates()函数。

int GetRatesLC(
   int             start_pos    // source for copying
   int             len,         // amount to copy
   MqlRates&       rates[],     // target array
   ENUM_TIMEFRAMES base_period, // basic timeframe
   int&            shift        // shift
   );

参数

 开始位置

&[in]当前时间范围内的第一个元素索引。它是数据转换和复制到缓冲区的起点。

莱恩

&元素的副本数。

&费率[]

&[out]mqlRates类型数组。

&基准周期

&[in]参考时间范围。nbsp;

移位

&[进][出]位移。它可以接受以下值:

数值 描述
 -2 &根据开启模式(柱线开始形成)计算的位移
 -1 &根据闭合模式(柱端形成)
计算的位移
0…N &应用程序设置的位移。可接受值范围为0到N。
N=tcur/tbase-1。这里,tcur是当前时间框架,tbase是参考时间框架。

表1。参数移位允许值

如果函数成功执行,移位将收到计算的位移值,如果为-2或-1,则忽略该值。

返回值

元素副本或错误代码的数量:

代码 描述
 -1 &参考时间帧分配错误
 -2 &错误的位移分配

表2。返回错误代码

这是来自liquidchart的getrateslc()函数的代码。MQH文件。

int GetRatesLC(int start_pos,int len,MqlRates &rates[],ENUM_TIMEFRAMES base_period,int& shift)
  {
   //--- number of basic timeframes contained in the current one  
   int k=PeriodSeconds()/PeriodSeconds(base_period);
   if(k==0)
      return(-1);//basic timeframe specified incorrectly
   //---
   MqlRates r0[];
   ArrayResize(rates,len);
   if(CopyRates(_Symbol,_Period,start_pos,1,r0)<1)
      return(0);// no data
   //---
   int sh;
   if(shift>=0)
     {
      //--- fixed shift
      if(shift<k)
         sh=shift;
      else
         return(-2);//--- shift specified incorrectly   
     }
   else if(shift==-1)
     {
      //--- shift to be calculated (dynamic, beginning of the bar formation)
      sh=int((TimeCurrent()-r0[0].time)/PeriodSeconds(base_period));
     }
   else if(shift==-2)
     {
      //--- shift to be calculated (dynamic, end of the bar formation)
      sh=1+int((TimeCurrent()-r0[0].time)/PeriodSeconds(base_period));
      if(sh>=k)
         sh = 0;
     }
   else
      return(-2);//shift specified incorrectly       
   //--- opening time of the basic period bar, which is the beginning of the current period bar formation
   //--- synchronization of the time of opening bars takes place relative to the tO time
   datetime tO;
   //--- closing time of the bar under formation, i.e. opening time of the last bar of basic timeframe in the series
   datetime tC;
   tO=r0[0].time+sh*PeriodSeconds(base_period);
   if(tO>TimeCurrent())
      tO-=PeriodSeconds();
   tC=tO+PeriodSeconds()-PeriodSeconds(base_period);
   if(tC>TimeCurrent())
      tC=TimeCurrent();
   int cnt=0;
   while(cnt<len)
     {
      ArrayFree(r0);
      int l=CopyRates(_Symbol,base_period,tC,k,r0);
      if(l<1)
         break;
      //--- time of the bar with the (l-1) index does not have to be equal to tC
      //--- if there is no bar with the tC time, it can be the nearest bar
      //--- in any case its time is assigned to the tC time
      tC=r0[l-1].time;
      //--- check if tO has the correct value and modify if needed.
      while(tO>tC)
         tO-=PeriodSeconds();
      //--- the time values of tO and tC have actual meaning for the bar under formation  
      int index=len-1-cnt;
      rates[index].close=0;
      rates[index].open=0;
      rates[index].high=0;
      rates[index].low=0;
      rates[index].time=tO;
      for(int i=0; i<l; i++)
         if(r0[i].time>=tO && r0[i].time<=tC)
           {
            if(rates[index].open==0)
              {
               rates[index].open= r0[i].open;
               rates[index].low = r0[i].low;
               rates[index].high= r0[i].high;
                 }else{
               if(rates[index].low > r0[i].low)
                  rates[index].low=r0[i].low;
               if(rates[index].high < r0[i].high)
                  rates[index].high=r0[i].high;
              }
            rates[index].close=r0[i].close;
           }
      //--- specifying closing time of the next bar in the loop
      tC=tO-PeriodSeconds(base_period);
      //
      cnt++;
     }
   if(cnt<len)
     {
      //-- less data than required, move to the beginning of the buffer
      int d=len-cnt;
      for(int j=0; j<cnt; j++)
         rates[j]=rates[j+d];
      for(int j=cnt;j<len;j++)
        {
         //--- fill unused array elements with zeros
         rates[j].close=0;
         rates[j].open=0;
         rates[j].high=0;
         rates[j].low=0;
         rates[j].time=0;
        }
     }
   shift = sh;  
   return(cnt);
  }

应该强调几点。

  • 函数不返回报价的交易量。原因是,在DSC模式下,该列在打开时从不返回交易量。这是非常合乎逻辑的。如果您的EA使用实时报价量作为新列形成的信号,则它将永远不会收到信号。该方法适用于移动平均EA。您可以在函数中添加一个计数器,以便立即引用事务量,但它不应正确工作。为了避免混淆,我根本不测量实时报价的数量。
  • 函数返回请求的列数,但并不意味着第一列和最后一列之间的时间与源图表上相应的时间间隔成比例。在一个连续的历史数据时期,虽然有时是相应的。如果指定段落包含周末,则幻影列可能出现在边缘。

下图显示了一个“幻影圆柱体”的示例。此列线形成于10月27日第一分钟,包括10月26日23:01列线开放时间。需要注意的是,在这一列之后,指标图表将向前移动到相应源图表的左侧。列时间对应于初始时间(例如21:00-&gt;21:01),并且会有不同的索引。

幻影柱线

传说。4。幻影柱2014.10.26 23:01

三。指标实现

让我们写下指示器,并在单独的窗口中显示“液体图表”。指示器可以在三种模式下工作:静态位移模式、气缸开启的动态位移模式和气缸关闭的动态位移模式。指示器还具有控制元素,可以在不调用“指示器参数”对话框的情况下更改模式和位移值。

我们从liquidchart的getrateslc()函数开始。MQH文件。我们应该从refreshBuffers()函数调用它,该函数本身将在onCalculate函数中调用。在onchartevent中,它也被称为模式中的替代或置换,需要重新计算指示器的缓冲区。onchartevent函数处理按钮、更改位移值和模式。

指标输入参数:

input ENUM_TIMEFRAMES   BaseTF=PERIOD_M1;       // LC Base Period
input int               Depth=100;              // Depth, bars
input ENUM_LC_MODE      inp_LC_mode=LC_MODE_SS; // LC mode
input int               inp_LC_shift=0;         // LC shift

这里的深度是结果图表中的列数,枚举模式是索引绘图模式的描述类型。

enum ENUM_LC_MODE
  {//plotting mode
   LC_MODE_SS=0,  // Static Shift
   LC_MODE_DSO=1, // Dynamic Shift, just Open
   LC_MODE_DSC=2  // Dynamic Shift, expected Close
  };

inp_LC_modeinp_LC_shift 参数则会被 LC_modeLC_shift 覆盖。这种设计允许通过按下按钮来改变它们的值。不打算讨论绘制按钮和按钮操作,因为它们与本文的主题无关。让我们来研究 RefreshBuffers() 函数的详情。

bool RefreshBuffers(int total,
                    double &buff1[],
                    double &buff2[],
                    double &buff3[],
                    double &buff4[],
                    double &col_buffer[])
  {
   MqlRates rates[];
   ArrayResize(rates,Depth);
//---
   int copied=0;
   int shift=0;
   if(LC_mode==LC_MODE_SS)
      shift = LC_shift; //static shift
   else if(LC_mode==LC_MODE_DSO)
      shift = -1;       //calculate shift (beginning of the bar formation)
   else if(LC_mode==LC_MODE_DSC)
      shift = -2;       //calculate shift (end of the bar formation)
   else
      return(false);
//---
   copied=GetRatesLC(0,Depth,rates,BaseTF,shift);
//---
   if(copied<=0)
     {
      Print("No data");
      return(false);
     }
   LC_shift = shift;
   refr_keys();
//--- initialize buffers with empty values
   ArrayInitialize(buff1,0.0);
   ArrayInitialize(buff2,0.0);
   ArrayInitialize(buff3,0.0);
   ArrayInitialize(buff4,0.0);
//---
   int buffer_index=total-copied;
   for(int i=0;i<copied;i++)
     {
      buff1[buffer_index]=rates[i].open;
      buff2[buffer_index]=rates[i].high;
      buff3[buffer_index]=rates[i].low;
      buff4[buffer_index]=rates[i].close;
      //---
      if(rates[i].open<=rates[i].close)
         col_buffer[buffer_index]=1;//bullish or doji
      else
         col_buffer[buffer_index]=0;//bearish
      //
      buffer_index++;
     }
//
   return(true);
  }

首先,根据模式将移位变量的相关值传递给getrateslc()函数。在静态模式下,它是lc_shift参数的副本,在列的打开或关闭模式下,它对应于-1或-2。函数成功执行后,getRatesLc()将位移的当前值返回给移位变量。它要么重新计算,要么保持不变。在任何情况下,我们都将其值赋给lc_shift变量,并通过refr_keys()函数调用图形元素的重绘。

此后,我们更新指标缓冲区中的OHLC值和列颜色。

指示器的完整代码可以在liquid_chart.mq5文件中找到。启动后,指示灯如下:

液态图表指标, 位移 0

传说。5。液表指标

关于控制元件
的几句话

  • SS按钮开关指示灯为静态位移模式。箭头按钮在此模式下激活,可用于设置所需的位移值。
  • DSO按钮将指示器切换到动态模式,列行开始形成。在此模式下,无法手动修改计算的位移。
  • DSC按钮将指示器切换到动态位移模式,形成柱端。在此模式下,无法手动修改位移值。

在S S模式下,当位移值为0时,索引被初始图表的值覆盖。如果更改此值,将看到重新绘制的图表。在28的值上有明显的差别。这里不是薄弱的轨道,而是一把独特的锤子。多少时间?

液态图表指标, 位移 28液态

传说。6。液表指标,排量28

将指示器切换到DSO模式时,新形成的列总是在右侧。在DSC模式下,一列将在参考时间的帧时间间隔内关闭。

4。创建EA

我们继续创建两个EAS。第一个交易根据移动平均线,第二个交易根据“针和针柱”模式。

让我们使用标准例程moving average ea(在专家/示例/moving average文件夹中)作为模板。这样,我们可以比较两种不同策略的优化结果,了解使用静态或动态移位的意义。

4.1。EA在移动平均值上交易

首先,定义输入参数。其中有四个:

input double MaximumRisk    = 0.1// Maximum Risk in percentage
input double DecreaseFactor = 3;    // Decrease factor
input int    MovingPeriod   = 12;   // Moving Average period
input int    MovingShift    = 6;    // Moving Average shift

自适应后添加了三个新参数:

input ENUM_TIMEFRAMES  BaseTF=PERIOD_M1;  // LC Base Period
input bool             LC_on = true;      // LC mode ON
input int              LC_shift = 0;      // LC shift

lc_on参数可用于检查getrateslc()是否正常工作。组合条件(lc_on=true&amp;lc_shift=0)必须具有与(lc_on=false)相同的结果。

为了将现有的EA移动平均值调整为替换的EA移动平均值,文件liquidchart。应包括MQH。当位移函数(输入参数lc_on为真)启用时,getRatesLc()函数应替换为copyrates()函数:

   int copied;
   if(LC_on==true)
     {
      int shift = LC_shift;
      copied=GetRatesLC(0,2,rt,BaseTF,shift);
     }
   else
      copied = CopyRates(_Symbol,_Period,0,2,rt);
   if(copied!=2)
     {
      Print("CopyRates of ",_Symbol," failed, no history");
      return;
     }

它需要同时在checkforopen()和checkforclose()中完成。我们不得不放弃索引句柄,手工计算移动平均值。为此,我们添加copymabuffer()函数:

int CopyMABuffer(int len,double &ma[])
  {
   if(len<=0)
      return(0);
   MqlRates rates[];
   int l=len-1+MovingPeriod;
   int copied;
   if(LC_on==true)
     {
      int shift = LC_shift;
      ArrayResize(rates,l);
      copied=GetRatesLC(MovingShift,l,rates,BaseTF,shift);
     }
   else
      copied=CopyRates(_Symbol,_Period,MovingShift,l,rates);
//      
   if(copied<l)
      return(0);
//
   for(int i=0;i<len;i++)
     {
      double sum=0;
      for(int j=0;j<MovingPeriod;j++)
        {
         if(LC_on==true)
            sum+=rates[j+i].close;
         else
            sum+=rates[copied-1-j-i].close;
        }
      ma[i]=sum/MovingPeriod;
     }
   return(len);
  }

它返回ma[]缓冲区中所需的值数,或者出于某种原因返回0。

柱开度的控制是另一个需要考虑的重要问题。在移动平均EA的原始版本中,它是使用实时报价数据实现的:

   if(rt[1].tick_volume>1)
      return;

在我们的示例中,没有实时报价量,因此我们将直接编写newbar()函数来控制开盘:

bool newbar(datetime t)
  {
   static datetime t_prev=0;
   if(t!=t_prev)
     {
      t_prev=t;
      return(true);
     }
   return(false);
  }

其工作原理是比较前柱与前柱的开启时间。我们不检查即时报价的交易量,而是调用checkforopen()和checkforclose()函数中的newbar()函数:

   if(newbar(rt[1].time)==false)
      return;

完整的可用代码可以在moving_average_lc.mq5文件中找到。

4.2。EA根据“针和针柱”进行交易

匹诺曹或匹诺曹是由三根柱子组成的一种形式。中间一栏有一条长长的阴影线或“鼻子”,表示价格可能会反转。两边的柱子叫做“眼”。它们的极限点不应超过相邻圆柱的阴影线。这种形式在经营烛台模型的商人中非常流行。

我们的销串必须满足以下价格反转下行条件:

  • R列[0]必须为正数。
  • R列[2]必须为负。
  • A和C之间的最高价格不应超过B,其中A和C是R[0]和R[2]列的最高值。B是R列[1]的最高价格。
  • 中间列的实体,即R[1]列的开盘价与收盘价之间的差额(图中OC),不应超过外部参数设置的点数。
  • 中间列的阴影线,即R[1]列的最高价格与开盘价和收盘价之间的较大值之差,不应小于外部参数设置的点数。
  • 中间列的阴影线与其实体的比率不应小于外部参数设置的值。

形态检查将在R列[3]的开口处进行。

夹针柱线

传说。7。“销和螺纹”
的形状

下反转销柱存在的定义代码如下:

   if(r[0].open<r[0].close && r[2].open>r[2].close && r[1].high>MathMax(r[0].high,r[2].high))
     {
     //--- eyes of the upper pin bar
      double oc=MathAbs(r[1].open-r[1].close)/_Point;
      if(oc>inp_pb_max_OC)
         return(0);
      double shdw=(r[1].high-MathMax(r[1].open,r[1].close))/_Point;
      if(shdw<inp_pb_min_shdw)
         return(0);
      if(oc!=0)
        {
         if((shdw/oc)<inp_pb_min_ratio)
            return(0);
        }
      return(1);
     }

上游逆转是相似的。因此,检查销柱是否存在的功能如下:

int IsPinbar(MqlRates &r[])
  {
   //--- there must be 4 values in the r[] array
   if(ArraySize(r)<4)
      return(0);
   if(r[0].open<r[0].close && r[2].open>r[2].close && r[1].high>MathMax(r[0].high,r[2].high))
     {
      //--- eyes of the upper pin bar
      double oc=MathAbs(r[1].open-r[1].close)/_Point;
      if(oc>inp_pb_max_OC)
         return(0);
      double shdw=(r[1].high-MathMax(r[1].open,r[1].close))/_Point;
      if(shdw<inp_pb_min_shdw)
         return(0);
      if(oc!=0)
        {
         if((shdw/oc)<inp_pb_min_ratio)
            return(0);
        }
      return(1);
     }
   else if(r[0].open>r[0].close && r[2].open<r[2].close && r[1].low<MathMin(r[0].low,r[2].low))
     {
      //--- eyes of the lower pin bar
      double oc=MathAbs(r[1].open-r[1].close)/_Point;
      if(oc>inp_pb_max_OC)
         return(0);
      double shdw=(MathMin(r[1].open,r[1].close)-r[1].low)/_Point;
      if(shdw<inp_pb_min_shdw)
         return(0);
      if(oc!=0)
        {
         if((shdw/oc)<inp_pb_min_ratio)
            return(0);
        }
      return(-1);
     }
   return(0);
  }

传递的历史数据数组不应少于四个元素。当检测到上销线(即销线指示反向转向)时,函数返回值1。当检测到下销线(即销线指示反向转向)时,函数返回值-1。如果没有插脚线,则函数返回0。该函数还使用以下输入参数:

input uint   inp_pb_min_shdw     = 40;    // Pin bar min shadow, point
input uint   inp_pb_max_OC       = 20;    // Pin bar max OC, point
input double inp_pb_min_ratio    = 2.0;   // Pin bar shadow to OC min ratio

我们将使用基于PIN和PIN线的最简单的交易策略。当我们拒绝时,我们会变短;当我们出现时,我们会变长。通常情况下,需要对指标进行验证,但我们目前不打算使用它们来保持实验的完整性。我们只使用针和线。

本次EA交易采用的“针-针-柱”模式是基于移动平均EA。函数copymabuffer()最终被删除,因为它在checkforopen()和checkforclose()函数中被调用。请求的历史数据数量可以增加到2到4小时。R列[3]的时间用于检查新列的开口。

   int copied;
   if(LC_on==true)
   {
      int shift = LC_shift;
      copied=GetRatesLC(0,4,rt,BaseTF,shift);
   }
   else
      copied = CopyRates(_Symbol,_Period,0,4,rt);
   if(copied!=4)
     {
      Print("CopyRates of ",_Symbol," failed, no history");
      return;
     }
   if(newbar(rt[3].time)==false)
      return;

打开信号检查如下:

   int pb=IsPinbar(rt);
   if(pb==1)       // upper pin bar
      signal=ORDER_TYPE_SELL; // sell conditions
   else if(pb==-1) // lower pin bar
      signal=ORDER_TYPE_BUY// buy conditions

按倒销线压平仓库:

   if(type==(long)POSITION_TYPE_BUY && pb==1)
      signal=true;
   if(type==(long)POSITION_TYPE_SELL && pb==-1)
      signal=true;

请注意,在输入参数的严格条件下,很少会出现销夹气缸。因此,如果只通过反向销和销列关闭头寸,则存在亏损或亏损的风险。

为此,我们增加了止损和止损水平。它们可以通过外部参数分别设置inp_tp_pp和inp_sl_pp:

   double sl=0,tp=0,p=0;
   double ask=SymbolInfoDouble(_Symbol,SYMBOL_ASK);
   double bid=SymbolInfoDouble(_Symbol,SYMBOL_BID);
   if(signal==ORDER_TYPE_SELL)
   {
     p=bid;
     if(inp_sl_pp!=0)
       sl=NormalizeDouble(ask+inp_sl_pp*_Point,_Digits);
     if(inp_tp_pp!=0)
       tp=NormalizeDouble(ask-inp_sl_pp*_Point,_Digits);
   } else {
     p=ask;
     if(inp_sl_pp!=0)
       sl=NormalizeDouble(bid-inp_sl_pp*_Point,_Digits);
     if(inp_tp_pp!=0)
       tp=NormalizeDouble(bid+inp_sl_pp*_Point,_Digits);
   }
   CTrade trade;
   trade.PositionOpen(_Symbol,signal,TradeSizeOptimized(),p,sl,tp);

如果inp_tp_pp或inp_sl_pp的值为零,则不会设置相应的停止或停止级别。

自适应完成。EA已经准备好了。完整的代码可以在pinbar_lc.mq5文件中找到。

5。电抗器优化

为了评估不同策略中位移图的有效性,我们将使用EA优化进一步比较最佳结果。这里最重要的参数是盈利能力、提款和交易数量。基于移动平均交易的EA将作为索引策略的样本,而基于PIN和PIN交易的EA将是非索引策略。

优化将使用过去六个月的历史数据在MetaQuotes演示服务器上实现。本实验将对欧元兑美元、英镑兑美元和美元兑日元进行。初始资本为3000美元,杠杆率为1:100。测试模式为“所有报价”。优化模式-快速(遗传算法),最大平衡。

5.1。基于移动平均线的交易优化结果分析

让我们比较不同模式下EA的优化结果:零位移、静态位移和动态位移(DSO和DSC)。

将在2014年4月1日至2014年10月25日期间(过去六个月)对欧元、英镑和日元进行测试。循环H1。

EA输入参数:

参数
&最大风险百分比 &0.1
&缩小系数 &3.0版
&移动平均周期 &12台
&移动平均值 6
&基准TF &1分钟
&
上的LC U
&nbsp;真
&nbsp;LC U移位 0

表3。移动平均LC EA输入参数

5.1.1失效位移模式的EA优化

优化参数:

参数 开始吧。 &步骤长度。 的终止
&移动平均周期 &12台 1 &90号
&移动平均值 6 1 &30台

表4。移动平均线LC-EA零位移模式的优化参数

图中描述了失效位移模式的EA优化,欧元兑美元:

零位移模式优化, EURUSD

传说。8。移动平均LC EA零位移模式优化,欧元

最佳结果如下:

&结果 利润。 提取% 交易量 移动平均周期 移动平均数
&第3796、43页 796/43 16.18 111; 24; &12台
&3776、98页 77、98 17.70 77; &nbsp;55 22
37.67,45 767,45 16.10 74; &nbsp;59 &nbsp;23
&第3740、38页 740、38 15、77 78; &nbsp;55 &nbsp;17
&第3641、16页 64、1、16 15. 97 105; &12台 &nbsp;17

表5。移动平均值为
的LC-EA零位移模式的优化结果

禁用位移模式的EA优化如图所示,英镑/美元:

0

传说。9。移动平均LC EA零位移模式优化,英镑/美元

最佳结果如下:

结果 利润。 提取% &交易量 &nbsp;平均周期 平均排量
4025、75 1025、75 八、08 80; &nbsp;18 22
&3857、90页 857、90 15、04 74; &nbsp;55 &13号
&3851、40页 85、1、40 18.16 80; &13号 &24台
&3849、48页 849、48 13、05 69; &34号 &29号
&nbsp;3804、70 80470 16.57 137; &25台 8

表6。移动平均LC EA的零位移英镑美元最佳结果

图中描述了失效位移模式的EA优化。美元兑日元:

1

传说。10。移动平均LC EA零位移模式优化

最佳结果如下:

结果 利润 提取% 交易量 &nbsp;平均周期 &平均位移
5801,63 2801,63 11、54 48 65 23
57 8917 27 8917 14、03 50 44 27
539、06 2539、06 17、14 46 67 27
533、34 331、34 15、05 61 70 9
5045、19 2045、19 12、61 48 83 15

表7。移动平均LC EA零位移模式USDJPY的优化结果

5.1.2静位移模式的EA优化

优化参数:

参数 开始吧。 &步骤长度。 的终止
&移动平均周期 &12台 1 &90号
&移动平均值 6 1 &30台
&nbsp;LC移位 1; 1; 59;

表8。移动平均LC-EA静态位移模式的优化参数

静态位移模式的EA优化如图所示,欧元兑美元:

2

传说。11。移动平均LC EA静态位移模式优化,欧元兑美元

最佳结果如下:

结果 利润 &nbsp;提取% &交易量 平均周期 平均排量 LCH变换
&nbsp;4385、06 &1385、06和 12.77 100; 32; 11; 8;
&nbsp;4149、63、 &nbsp;1149、63和 14、22 66; 77; 25; 23;
&nbsp;3984、92、 &nbsp;984、92和 21、52 122; 12; 11; 26;
&nbsp;3969、35、 &nbsp;969、35、 16.08 111; 32; 11; 24;
&nbsp;3922、95、 &922、95和 12、29 57; 77; 25; 10;

表9。移动平均LC EA
静态位移模式eurrusd的优化结果

图中描述了静态位移模式的EA优化。GBP-美元:

3

传说。12。移动平均LC EA静态位移模式优化,英镑/美元

最佳结果如下:

结果 利润。 提取% 交易量 &nbsp;平均周期 &平均位移 LCH变换
&第4571、07页 1571,07 14、90 79; &12台 &25台 &42号
&第4488、90页 1488、90 15、46 73; &12台 &25台 &47号
&第4320、31页 &第1320、31页 9,59 107; &12台 &16号 &27号
&第4113、47页 1113、47 10、96 75; &12台 &25台 15
&第4069、21页 &第1069、21页 15、27 74; &12台 &25台 &50个

表10。移动平均LC EA静态位移模式的优化结果英镑/美元

图中描述了静态位移模式的EA优化。美元兑日元:

4

传说。13。移动平均液相色谱-液相色谱-液相色谱-液相色谱-液相色谱-液相色谱-液相色谱-液相色谱-液相色谱-液相色谱-液相色谱-液相色谱-液相色谱-液相色谱-液相色谱-液相

最佳结果如下:

结果 利润 提取% 交易量 平均周期 &平均位移 LCH变换
&nbsp;6051、39页 &第3051、39页 15、92 &53台 &76
&12号 &nbsp;31
&5448、98页 &2448、98页 10. 71. &54台 &44号 &30台 2
&5328、15页 &第2328、15页 11、90 &50个 &82台 &13号 &52台
&第5162、82页 2162.85 10、46 &nbsp;71 22 &26号 &24台
&第5154、71页 &第2154、71页 14、34 &54台 &75个 &nbsp;14 &58台

表11。移动平均LC EA静态位移模式USDJPY的优化结果

5.1.3.动态位移模式的EA优化

优化参数:

参数 开始吧。 &步骤长度。 终止
&移动平均周期 &12号 1 &90号
&移动平均值 6 1 &30台
&nbsp;LC移位 – 2 1; – 1

表12。移动平均LC-EA动态位移模式的优化参数

动态位移模式的EA优化如图所示,欧元兑美元:

5

传说。14。流动平均液相色谱法动态位移模式的优化

最佳结果如下:

结果 利润 提取% 交易量 平均周期 平均排量 LCH变换
&第3392、64页 No.39,64 27、95 594; 15; 13; &nbsp;-2
&第3140、26页 140、26 23、35 514; 12; 17; &nbsp;-2
&2847、12页 &-152,88页 17.04 390; 79; 23; &nbsp;-1
&2847、12页 &-152,88页 17.04 390; 79; 12; &nbsp;-1
&2826、25页 &-173,75页 20、12 350; 85; 22; &nbsp;-1

表13。移动平均LC-EA动态位移模式的优化结果

图中描述了动态位移模式的EA优化。GBP-美元:

6

传说。15。移动平均LC EA动态位移模式优化,英镑/美元

最佳结果如下:

结果 利润 &nbsp;提取% 交易量 平均周期 &平均位移 LCH变换
&5377、58页 &2377、58页 19.73. 391; &12号 &26号 &nbsp;-2
&3865、50页 865,50 18.18 380; &nbsp;23 &nbsp;23 &nbsp;-2
&第3465、63页 465,63 21、22 329; &nbsp;48 &nbsp;21 &nbsp;-2
No.34、28、99 428、99 24、55 574; &nbsp;51 &16号 &nbsp;-1
No.34、28、99 428、99 24、55 574; &nbsp;51 15 &nbsp;-1

表14。移动平均LC EA动态位移模式的优化结果英镑美元

图中描述了动态位移模式的EA优化。美元兑日元:

7

传说。16。移动平均LC EA动态位移模式优化

最佳结果如下:

结果 利润 提取% &交易量 平均周期 平均排量 &nbsp;LC移位
&nbsp;6500,19个 &3500、19页 17.45 &nbsp;244 &42号 No.28 &nbsp;-2
&6374、18号 &第3374、18页 19.91 &243台 &54号 &24台 &nbsp;-2
&第6293、29页 &第3293、29页 19.30 &235号 &48号 &27号 &nbsp;-2
54.27,69. 2427,69. 17.65 &245
&90号 8 &nbsp;-2
&5421、83页 2421,83. 16.30 &编号:301 &nbsp;59 &12号 &nbsp;-2

表15。移动平均LC EA动态位移模式的最佳结果USDJPY

5.2。“针尖柱”交易优化结果分析

让我们比较不同模式下EA的优化结果:零位移、静态位移和动态位移(DSO和DSC)。在2014年4月1日至2014年10月25日期间,将对欧元兑美元、英镑兑美元和美元兑日元进行测试。循环H1。

EA输入参数:

&nbsp;参数
最大风险百分比 0.1
折减系数 3
插脚A 6033的最小阴影线点 40
插脚A 6033最大固数 110
最小销固比 1.4
停止损耗点(0禁用) 150
停止收益点(0禁用) 300
信用证基期 1分钟
上的LC模式
LC排量 0

表16。插脚线LC EA输入参数

我们需要对针形定义的参数进行优化:尖头的长度、中间柱的尖头与实体的比率以及实体的最大尺寸。水平停止和停止损失也得到了优化。

5.2.1失效位移模式的EA优化

优化参数:

&nbsp;参数 开始吧。 &步骤长度。 &nbsp;终止
插脚A 6033的最小阴影线点 100 20 400
插脚A 6033最大固数 20 20 100
最小销固比 1 0.2 3
停止损耗点(0禁用) 150 50 500
停止收益点(0禁用) 150 50 500

表17。销LC-EA静态位移模式的最佳参数

禁用位移模式的EA优化如图所示,欧元兑美元:

8

传说。17。优化销LC-EA的零位移模式,欧元兑美元

最佳结果如下:

结果 利润 &nbsp;提取% &交易量 &销最小阴影线 &销的最大实体 &销阴影线
与实体
的最小比率
&停止损失。 &停止盈利。
&nbsp;3504、59、 &504、59和 &nbsp;9,82 &33号 &100台 &60台 &nbsp;1.8 &nbsp;450 &500个
&nbsp;3428、89、 &nbsp;428、89、 &nbsp;8,72 &nbsp;21 &120
&60台 &nbsp;2.8 &nbsp;450 &350台
&nbsp;3392、37、 &nbsp;392、37、 &nbsp;9,94 &30台 &100台 &60台 &nbsp;2,6 &nbsp;450 &250台
&nbsp;3388、54、 &388、54和 &nbsp;9,93 &nbsp;31 &100台 &80号 &nbsp;2,2 &nbsp;450 &300
&nbsp;3311、84和 &nbsp;311、84和 &nbsp;6,84 &13号 &140号 &60台 &nbsp;2,2 &300
&nbsp;450

表18。销LC EA零位移模式EurUSD
的优化结果

禁用位移模式的EA优化如图所示,英镑/美元:

9

传说。18。优化pin lc ea的零位移模式,英镑兑美元

最佳结果如下:

结果 利润 &nbsp;提取% &交易量 &销最小阴影线 &销的最大实体 &销阴影线
与实体
的最小比率
&停止损失。 &停止盈利。
&nbsp;3187、13 &nbsp;187,13甲6033 &nbsp;11,10 &13号 &160
&60台 &nbsp;2,6 &500个 &350台
&nbsp;3148、73、 &nbsp;148、73、 &nbsp;3,23 4 &220
&40号 &nbsp;2,8 &400台 &400台
&nbsp;3142、67、 &nbsp;142,67 &nbsp;11,27 &nbsp;17 &160
&100台 &nbsp;1,8 &500个 &350台
&nbsp;3140、80、 &nbsp;140,80 &11、79、 &13号 &nbsp;180 &100台 2 &500个 &500个
&nbsp;3094、20 &94、20、 &nbsp;1,62 1 &260台 &60台 &nbsp;1,6 &500个 &400台

表19。针式LC EA零位移英镑美元的优化结果

图中描述了失效位移模式的EA优化。美元兑日元:

静态位移图表0

传说。19。优化销LC-EA、USDJPY的零位移模式

最佳结果如下:

结果 利润 &nbsp;提取% &交易量 &销最小阴影线 &销的最大实体 &销阴影线
与实体
的最小比率
&停止损失。 &停止盈利。
&nbsp;3531、99、 &nbsp;531,99甲6033 &nbsp;9,00 6 &nbsp;160 &60台 &nbsp;2.2 &nbsp;450 &500个
&nbsp;3355、91、 &nbsp;355、91、 &nbsp;18,25 &16号 &120
&60台 &nbsp;1,6 &nbsp;450 &400台
&nbsp;3241、93和 &nbsp;241、93和 &nbsp;9,11 4 &nbsp;160 &40号 &nbsp;2,8 &nbsp;450 &500个
&nbsp;3180、43、 &nbsp;180,43 &nbsp;6,05 &33号 &100台 &80号 &nbsp;1,8 &150个 &nbsp;450
&nbsp;3152、97、 &nbsp;152、97、 &nbsp;3,14 6 &nbsp;160 &80号 &nbsp;2,8 &150个 &500个

表20。销LC EA零位移模式USDJPY的优化结果

5.2.2.静位移模式的EA优化

优化参数:

&nbsp;参数 开始吧。 &步骤长度。 &nbsp;终止
&销A 6033的最小阴影点 &100台 &20个 &400台
&销A 6033的最大固体数 &20个 &20个 &100台
&销与固体的最小比率 1 &0.2 3
&停止丢失点(0被禁用) &150个 &50个 &500个
&停止点(0禁用) &150个 &50个 &500个
&Lc位移 1; 1; 59;

表21。销LC-EA静态位移模式的最佳参数

静态位移模式的EA优化如图所示,欧元兑美元:

静态位移图表1

传说。20。优化销的静态位移模式lc ea,eurrusd

最佳结果如下:

结果 利润 &nbsp;提取% &交易量 &销最小阴影线 &销的最大实体 &销阴影线
与实体
的最小比率
&停止损失。 &停止盈利。 &Lc位移
&4843、54和 &nbsp;1843、54、 &10、14、 &19号 &120
&80号 &nbsp;1,6 &500个 &500个 23;
&nbsp;4714、81、 &nbsp;1714、81和 &10,99甲6033 No.28 &100台 &100台 &nbsp;1,6 &500个 &500个 &nbsp;23
&4672,12
&nbsp;1672、12 &10、16、 18; &120
&80号 &nbsp;1,8 &500个 &500个 &nbsp;23
&4610、13、 &nbsp;1610、13、 &nbsp;9,43 &19号 &120
&80号 &nbsp;1,6 &nbsp;450 &nbsp;450 &nbsp;23
&nbsp;4562、21、 &1562、21、 &13、94、 &27号 &100台 &100台 &nbsp;1,6 &500个 &400台 &25台

表22。销式LC-EA静态位移模式eurusd的优化结果

图中描述了静态位移模式的EA优化。GBP-美元:

静态位移图表2

传说。21。优化pin lc ea静态位移模式,英镑/美元

最佳结果如下:

结果 利润 &nbsp;提取% &交易量 &销最小阴影线 &销的最大实体 &销阴影线
与实体
的最小比率
&停止损失。 &停止盈利。 &Lc位移
&4838、10
&nbsp;1838,10个 &nbsp;5,60 &34号 &100台 &40号 &nbsp;2,4 &nbsp;450 &500个 &24台
&nbsp;4797,09甲6033 &nbsp;1797,09甲6033 &nbsp;5,43 35 &100台 &40号 &nbsp;2,6 &400台 &500个 &24台
&4755、57、 &编号:1755、57、 &nbsp;7,36 &42号 &100台 &100台 2 &400台 &500个 &24台
&4725、41、 &nbsp;1725、41、 &nbsp;8,35 &nbsp;45 &100台 &80号 1 &400台 &nbsp;500 &24台
&nbsp;4705、61、 &nbsp;1705、61、 &nbsp;8,32 &41号 &100台 &100台 2 &nbsp;450 &500个 &24台

表23。针式LC-EA静态位移模式Gbps的优化结果

图中描述了静态位移模式的EA优化。美元兑日元:

静态位移图表3

传说。22。优化销LC-EA,USDJPY的静态位移模式

最佳结果如下:

结果 利润 &nbsp;提取% &交易量 &销最小阴影线 &销的最大实体 &销阴影线
与实体
的最小比率
&停止损失。 &停止盈利。 &Lc位移
&nbsp;4108、83、 &nbsp;1108、83、 &nbsp;6,45 9 &140号 &40号 &nbsp;1,4 &500个 &nbsp;450 &nbsp;55
&nbsp;3966、74、 &nbsp;966、74、 &nbsp;7,88 &12台 &140号 &60台 &nbsp;2,8 &nbsp;450 &nbsp;500 &nbsp;45
&nbsp;3955、32、 &nbsp;955、32、 &nbsp;9,91 &nbsp;21 &120
&80号 2 &500个 &500个 &nbsp;45
&nbsp;3953、80、 &nbsp;953,80 &nbsp;6,13 10 &140号 &60台 &nbsp;2,8 &nbsp;450 &nbsp;450 &47号
&nbsp;3944、33、 &944、33、 &nbsp;6,42 6 &nbsp;160 &100台 &nbsp;2,6 &500个 &400台 &44号

表24。销LC-EA静态位移模式USDJPY的优化结果

5.2.3.动态位移模式的EA优化

优化参数:

&nbsp;参数 开始吧。 &步骤长度。 &nbsp;终止
&销A 6033的最小阴影点 &100号 &20个 &400台
&销A 6033的最大固体数 &20个 &20个 &100台
&销与固体的最小比率 1 &0.2 3
&停止丢失点(0被禁用) &150个 &50号 &nbsp;500
&停止点(0禁用) &150个 &50个 &nbsp;500
&Lc位移 – 2 1; – 1

表25。销LC-EA动态位移模式的最佳参数

动态位移模式的EA优化如图所示,欧元兑美元:

静态位移图表4

传说。23。优化销LC-EA,eurUSD的动态位移模式

最佳结果如下:

结果 利润 &nbsp;提取% &交易量 &销最小阴影线 &销的最大实体 &销阴影线
与实体
的最小比率
&停止损失。 &停止盈利。 &Lc位移
&nbsp;4185、65、 &nbsp;1185、65和 &13、22、 &49号 &200台 &100台 &nbsp;1,8 &nbsp;450 &nbsp;500 &nbsp;-2
&nbsp;4011,80 &nbsp;1011,80 &13、75、 &49号 &200台 &100台 2 &400台 &500个 &nbsp;-2
&nbsp;3989、28 &nbsp;989、28 &nbsp;12,01 &76
&140号 &20个 &nbsp;1,2 &350台 &200台 &nbsp;-1
&nbsp;3979、50、 &nbsp;979,50 &nbsp;16,45 &157号 &100台 &20个 1 &nbsp;450 &500个 &nbsp;-1
&nbsp;3957、25 &nbsp;957、25、 &nbsp;16,68 &162
&100号 &20个 1 &400
&nbsp;500 &nbsp;-1

表26。销式LC-EA静态位移模式eurusd的优化结果

图中描述了动态位移模式的EA优化。GBP-美元:

静态位移图表5

传说。24。优化pin lc ea的动态位移模式,英镑兑美元

最佳结果如下:

结果 利润 &nbsp;提取% &交易量 &销最小阴影线 &销的最大实体 &销阴影线
与实体
的最小比率
&停止损失。 &停止盈利。 &Lc位移
&4906、84和 &nbsp;1906、84、 &nbsp;10,10 &nbsp;179
&120
&40号 &nbsp;1,8 &500个 &500个 &nbsp;-2
&nbsp;4316、46、 &nbsp;1316、46、 &10、71、 &151号 &120
&20个 &nbsp;2,4 &nbsp;450 &500个 &nbsp;-1
&nbsp;4250、96、 &nbsp;1250、96、 &nbsp;12,40 &nbsp;174 &120
&40号 &nbsp;1,8 &500个 &500个 &nbsp;-1
&nbsp;4040、82、 &1040、82、 &nbsp;12,40 &nbsp;194 &120
&60台 2 &500个 &200台 &nbsp;-2
&nbsp;4032、85和 &nbsp;1032,85 &nbsp;11,70 &139号 &140号 &40号 2 &400台 &200台 &nbsp;-1

表27。针式LC-EA动态位移模式Gbps的优化结果

图中描述了动态位移模式的EA优化。美元兑日元:

静态位移图表6

传说。25。优化销LC-EA,USDJPY的动态位移模式

最佳结果如下:

结果 利润 &nbsp;提取% &交易量 &销最小阴影线 &销的最大实体 &销阴影线
与实体
的最小比率
&停止损失。 &停止盈利。 &Lc位移
&5472、67、 &nbsp;2472,67 &nbsp;13,01 &138号 &100台 &20个 &nbsp;2,4 &500个 &500个 &nbsp;-1
&nbsp;4319、84和 &nbsp;1319,84甲6033 &15、87、 &146
&100台 &20个 &nbsp;2,2 &400台 &500个 &nbsp;-1
&nbsp;4259、54、 &nbsp;1259、54和 &nbsp;19,71 &nbsp;137 &100台 &20个 &nbsp;2,4 &500个 &500个 &nbsp;-2
&nbsp;4197、57、 &nbsp;1197、57和 &15、98、 &nbsp;152 &100台 &20个 1 &350台 &500个 &nbsp;-1
&nbsp;3908、19、 &nbsp;908、19、 &16、79、 &nbsp;110 &120
&40号 3 &400台 &400台 &nbsp;-1

表28。销式LC-EA动态位移模式USDJPY的优化结果

6。优化结果比较

为了做一个比较表,让我们从每个表中选择最大利润、提取额和交易量,以获得最佳结果。接下来是静态或动态位移模式下的接收值。我们记录该值的变化(百分比),或与零位移模式下相同的值。

6.1。EA在移动平均值上交易

利润:

nbsp; 无位移 &静态
位移
动态
位移
&
欧元
&796、43、 &1385,06(+74%) &nbsp;392,64(-51%)
&nbsp;英镑
美元
&nbsp;1025,75 &1571,07(+53%) &2377,58(+132%)
&nbsp;美元兑日元 &2801、63和 &3051,39(+9%) &nbsp;3500,19(+25%)

表29。移动平均LC EA最优结果中最大利润值
的比较

取款:

nbsp; 无位移 &静态
位移
动态
位移
&
欧元
&nbsp;17,7 &21,52(+22%) &27,95(+58%)
&nbsp;英镑
美元
&nbsp;18,16 &15,46(-15%) &24,55(+35%)
&nbsp;美元兑日元 &nbsp;17、14、 &15,94(-7%) &19,91(+16%)

表30。比较移动平均LC EA的最佳结果的最大提取值

交易量:

nbsp; 无位移 &静态
位移
动态
位移
&
欧元
&111
&122(+10%) &594(+435%)
&nbsp;英镑
美元
&nbsp;137 &107(-22%) &574(+319%)
&nbsp;美元兑日元 &61号 &nbsp;71(+16%) &nbsp;301(+393%)

表31。比较移动平均LC EA最佳结果的最大交易量值

第一件吸引你注意的事情总是动态位移模式入口点的显著增加。同时,提款大幅增加,欧元兑美元利润增加了两倍。

对于这个EA,静态模式更有利可图。我们可以看到,英镑兑美元和美元兑日元的提款量有所下降,而欧元兑美元和英镑兑美元的利润则大幅上升。

6.2。EA根据“针和针柱”进行交易

利润:

nbsp; 无位移 &静态
位移
动态
位移
&
欧元
5045.59 1843,54(+265%) 1185,65(+135%)
&nbsp;英镑
美元
187,13 1838,10(+882%) 1906,84(+919%)
&nbsp;美元兑日元 531,99 110、83(108%) 2472,67(+365%)

表32。比较Pin-lc-ea优化结果的最大利润

取款:

nbsp; 无位移 &静态
位移
动态
位移
&
欧元
9、94 13,94(+40%) 16,68(+68%)
&nbsp;英镑
美元
11、79 8,35(-29%) 12,4(+5%)
&nbsp;美元兑日元 18.25 9,91(-46%) 19,71(+8%)

表33。比较针LC-EA的最佳结果的最大提取值

交易量:

nbsp; 无位移 &静态
位移
动态
位移
&
欧元
33 28(-15%) 162(+391%)
&nbsp;英镑
美元
17 45(+165%) 194(+1041%)
&nbsp;美元兑日元 33 21(-36%) 152(+361%)

表34。比较最佳结果的最大交易量

在这里,我们还看到了动态移位模式下事务量的显著增加。在这种情况下,提款大幅增加,类似于移动平均信用证EA,仅欧元兑美元。对于其他货币,提款没有显著增加,约5-8个百分点。

在静态置换模式下,英镑兑美元和美元兑日元的优化收益有限。然而,我们可以看到,对于同一对货币,提款率显著下降,但对于欧元兑美元,提款率却有所上升。对于这个EA,静态位移模型似乎没有那么好用。

结论

本文研究了“液相图”绘制的原理,并根据指数策略和非指数策略的EA优化结果,比较了其运行方式的影响。

因此,得出以下结论:

  • 静态位移模式更适合使用移动平均交易等指标的EA。它确保了更准确的输入,从而降低了提款和更高的利润。
  • 动态位移模式更适合按形式进行电子交易。此模式增加入口点的数量,并减少提取的数量。
  • 动态位移模型与组织良好的资金管理相结合,可以取得较好的效果。
  • 虽然指标策略看起来很有前途,但是静态位移模型有一个明显的缺点。位移值提供的最佳结果必须准确猜测输入参数列表中其他变量的值。

本文由MetaQuotes Software Corp.翻译自俄语原文
,网址为https://www.mql5.com/ru/articles/1208。

附加文件下载zip liquid_chart.mq5(27.15 kb)move_average_lc.mq5(16.98 kb)pinbar_lc.mq5(18.61 kb)liquid chart.mqh(8.32 kb)

 

 


MyFxtop迈投(www.myfxtop.com)-靠谱的外汇跟单社区,免费跟随高手做交易!

 

免责声明:本文系转载自网络,如有侵犯,请联系我们立即删除,另:本文仅代表作者个人观点,与迈投财经无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。

著作权归作者所有。
商业转载请联系作者获得授权,非商业转载请注明出处。

本文来自网络,不代表迈投财经立场,转载请注明出处:http://www.myfxtop.cn/ea/5850.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: myfxtop@hotmail.com

9:30 - 18:00/Mon-Fri
返回顶部