[存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要路过。没有你就无处可去 - 3. - 页 34

 

你好!

请您告诉我,如果在图表上以编程方式绘制趋势线,是否可以在所需的点上读取其数值(同样是以编程方式)?

 
demlin:

你好!

请告诉我,如果在图表上以编程方式绘制了一条趋势线,是否有可能在所需的点上读取其值(同样是以编程方式)。

前段时间,我写了一篇文章,用趋势线来寻找图表上的正确点。看一看,也许你会找到适合自己的东西......:)
 
demlin:

你好!

请你告诉我,如果在图表上有一条以编程方式绘制的趋势线,是否有可能在所需的点上读取其数值(同样是以编程方式)。


这似乎是不可能的,但如果我真的想,我想我可以......。:-Р
 
Roman.:

他们似乎无法做到,但如果你真的想,你可以...:-Р

我非常希望如此 :)

我想做一个指标,但由于我是第一次与指标打交道,我迷失了方向。线条画得 很好,但我找不到将数值挤入数组的方法。最后,我没有任何收获。

 
artmedia70:
我曾经写过一篇文章,用趋势线来寻找图表上的正确点。看一看,也许你会找到适合自己的东西......:)
谢谢,我已经有了直线功能,我会把它扭曲一下。
 

有了MoveFileA,一切都很顺利。非常感谢你,TheXpert!

 
demlin:

我非常希望如此 :)

我想做一个指标,但由于我是第一次与指标打交道,我迷失了方向。线条画得很好,但我找不到将数值挤入数组的方法。结果,我没能挤进去。

但是,如果你展示了代码并告诉我你想要什么,你可能就不会有直线方程了......它是一个指标,所有必要的数据都在它的缓冲区内...虽然......。:)
 
我想我有一个想法...如果你已经构建了一条趋势线,那么,使用直线方程函数,在循环中从其起始点的值运行到其终点的值,并在每个条形中把直线方程函数返回的值输入到为此目的而创建的另一个指标阵列中。然后,使用需要的条数,从数组中取出这些值。情况是这样的...
 
artmedia70:
如果你给我看代码并告诉我你想要什么,你可能就不需要直线方程了......它是一个指标,所有必要的数据都在它的缓冲区内 ...虽然......。:)

以下是代码,从同一网站的教程中复制的:)

#property copyright "Copyright © 2011, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"

#property indicator_chart_window

extern int History=21;        // Колич.баров в расчётной истории
extern int M= 3;           // начальный бар с которого начинаем поиск фракталов в цикле.
int    i,k;                // номера баров в циклах.
int    Vnf3,Vnf2,Vnf1;     // номера реперных фракталов (1-ый справа на графике на нисходящем тренде).
int    VnfL3,VnfL2,VnfL1;  // номера реперных фракталов (1-ый справа на графике на восходящем тренде).
int    VFN,VFNL;           // счетчик найденных фракталов.
int    Md,MdL;             // счетчики кол-ва модификаций

double VMF1,VMF2;     // промежуточные значения верхних фракталов на нисходящем тренде.
double VMFL1,VMFL2;  // промежуточные значения нижних фракталов на восходящем тренде.
double VlFl_L;             // Min значение ближайшего нижнего фрактала на тренде вниз
double VlFl_H;             // Max значение ближайшего верхнего фрактала на тренде вверх
datetime tim1_L;           // Время ближайшего нижнего фрактала после нисходящего тренда 
datetime timL1_H;          // Время ближайшего верхнего фрактала после восходящего тренда 

datetime tim1,tim2,tim3;   // время для построения линий вилки Чувашова.
datetime timL1,timL2,timL3;// время для построения линий вилки Чувашова.

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   int    counted_bars=IndicatorCounted();
//----
   for (i=3;i<=History;i++)
    {//цикл
    if(High[i]>High[i+1] &&High[i]>High[i-1]&&High[i]>Close[i-2])
     {//фрактал
      VFN++;           // счетчик найденного фрактала.
      // ------------------------------------------------------------+
      if(VFN==1)       // если 1-ый фрактал найден, запоминаем значения: Max[i], № свечи[i], время[i]:
        {// f1
           Vnf1=i;        // запоминаем номер Max бара найденного фрактала.
           VMF1=High[i];  // запоминаем Max значение 1-ого найденного фрактала.
           tim1=iTime(NULL,0,i);        // запоминаем время 1-ой опорной точки.
         }//-f1
    // --------------------------------------------------------------+
    if(VFN==2)        // если 2-ый фрактал найден, запоминаем значения: Max[i], № свечи[i], время[i]:
      {// f2
          VMF2=High[i];    // запоминаем Max значение 2-ого найденного фрактала.
          if(VMF2>VMF1)    // если Max значение 2-го фрактала больше 1-го (т.е. направлена вниз),
            {
              Vnf2=i;      // запоминаем номер Max бара найденного фрактала.
              tim2=iTime(NULL,0,i);      // запомним время 2-ой опорной точки.
            }
            else VFN=VFN-1;
       }//-f2
    // --------------------------------------------------------------+

// ------------------------------------------------------------------+
   if(VFN==2) break; // найдены все 2 фрактала, выходим из цикла.
// ------------------------------------------------------------------+ 
    }//-фрактал                      
   }//-цикл 
//----

for (i=3;i<=History;i++)
    {//цикл
    if(Low[i]<Low[i+1] &&Low[i]<Low[i-1]&&Low[i]<Close[i-2])
     {//фрактал
      VFNL++;           // счетчик найденного фрактала.
      // ------------------------------------------------------------+
      if(VFNL==1)       // если 1-ый фрактал найден, запоминаем значения: Max[i], № свечи[i], время[i]:
        {// f1
           VnfL1=i;        // запоминаем номер Max бара найденного фрактала.
           VMFL1=Low[i];  // запоминаем Max значение 1-ого найденного фрактала.
           //Comment("VMFL1=",VMFL1);
           timL1=iTime(NULL,0,i);        // запоминаем время 1-ой опорной точки.
         }//-f1
    // --------------------------------------------------------------+
    if(VFNL==2)        // если 2-ый фрактал найден, запоминаем значения: Max[i], № свечи[i], время[i]:
      {// f2
          VMFL2=Low[i];    // запоминаем Max значение 2-ого найденного фрактала.
          if(VMFL2<VMFL1)    // если Max значение 2-го фрактала больше 1-го (т.е. направлена вниз),
            {
              VnfL2=i;      // запоминаем номер Max бара найденного фрактала.
              timL2=iTime(NULL,0,i);      // запомним время 2-ой опорной точки.
            }
            else VFNL=VFNL-1;
       }//-f2
    // --------------------------------------------------------------+

// ------------------------------------------------------------------+
   if(VFN==2) break; // найдены все 2 фрактала, выходим из цикла.
// ------------------------------------------------------------------+ 
    }//-фрактал                      
   }//-цикл 


DelLine();DelLineH();CreateLine();CreateLineH();
   return(0);
  }
//+------------------------------------------------------------------+

void DelLine()        // Удаление трендовых линий Sell и значков для вилки Чувашова 
   {
   ObjectDelete("Tr_down1");
  // ObjectDelete("Tr_down2");
  // ObjectDelete("Frak_1");
   //ObjectDelete("Frak_2");
   //ObjectDelete("Frak_3");
   }

void DelLineH()        // Удаление трендовых линий BUY и значков для вилки Чувашова 
   {
   ObjectDelete("Tr_up1");
   //ObjectDelete("Tr_up2");
   //ObjectDelete("Fr_1");
   //ObjectDelete("Fr_2");
   //ObjectDelete("Fr_3");
   }
void CreateLine()       // Создание и отрисовка трендовых линий Sell линий вилки Чувашова 
   {
   ObjectCreate("Tr_down1",OBJ_TREND,0,tim2,VMF2,tim1,VMF1);
   ObjectSet("Tr_down1",OBJPROP_COLOR,Red);
   ObjectSet("Tr_down1",OBJPROP_WIDTH,1);  // тонкой линией и 
   ObjectSet("Tr_down1",OBJPROP_STYLE,STYLE_SOLID);// пунктиром
   //ObjectCreate("Tr_down2",OBJ_TREND,0,tim2,VMF2,tim1,VMF1);
   //ObjectSet("Tr_down2",OBJPROP_COLOR,Aqua);
  // ObjectSet("Tr_down2",OBJPROP_WIDTH,1);  // тонкой линией и 
  // ObjectSet("Tr_down2",OBJPROP_STYLE,STYLE_DOT);// пунктиром 
   }
  
   void CreateLineH()       // Создание и отрисовка трендовых линий BUY линий вилки Чувашова 
   {
   ObjectCreate("Tr_up1",OBJ_TREND,0,timL2,VMFL2,timL1,VMFL1);
   ObjectSet("Tr_up1",OBJPROP_COLOR,Green);
   ObjectSet("Tr_up1",OBJPROP_WIDTH,1);  // тонкой линией и 
   ObjectSet("Tr_up1",OBJPROP_STYLE,STYLE_SOLID);// пунктиром
   //ObjectCreate("Tr_up2",OBJ_TREND,0,timL2,VMFL2,timL1,VMFL1);
   //ObjectSet("Tr_up2",OBJPROP_COLOR,Aqua);
   //ObjectSet("Tr_up2",OBJPROP_WIDTH,1);  // тонкой линией и 
  // ObjectSet("Tr_up2",OBJPROP_STYLE,STYLE_DOT);// пунктиром 
   }

我想通过iCustom获得两条线,并在任何条形上读取它们的值

 

亲爱的论坛成员,请帮帮忙

我需要一个具有以下要求的指标。1)两个MA的交集(你可以选择MA的类型,MA的周期,MA适用于什么,以及转移)。

2) 指示器在交点处画出一个箭头

3) 在穿越的那一刻,会有一声提示音和一个电子邮件信息。

4)信号只产生一次。在穿越MA的时刻。

有两个指标:MA_Shift_Crossover_Alert.mq4和2MA CrossoverWithPrice_fixed.ex4。

第一个人不喜欢信号是在每个蜡烛图和穿越MA后发出的。第二个人没有设法设置MA移位。

是否有办法将MA转移的可能性添加到第二个指标?

这些指标附在档案中。

谢谢你。

附加的文件: