新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 1172

 
大家好,有人有metatrader 4的.exe文件吗?正是来自开发商,与任何dc没有联系
 
a.lxrn:
大家好,有人有metatrader 4的.exe文件吗?完全来自开发商,不与任何DC挂钩

文件没有绑定,从任何一个DTZ中取出metatrader.exe和metaeditorium.exe,从一个单独的文件夹中运行,并设置好账户。网站上没有4ka安装程序。但这是为了什么?

 
Igor Makanu:

在图表上投放一个分形指标 和一个具有此功能的测试专家顾问

并将找到的值传递给我的函数MODE_UPPER和 MODE_LOWER,重新打印。

你需要记住条形图的时间,在一个新的条形图出现时,编号会改变,而条形图的开放时间始终是恒定的。

也就是说,当你运行我的代码时,记住检测到分形的那根柱子的时间,然后再运行它,找到那根柱子,将那根柱子的时间与记忆中的时间进行比较--时间不同,就意味着有新的分形。

我是这样做的。

if((Hour()>=9 && Minute()==15) && Hour()<23)
   {
    Fun_New_Bar();
    if(New_Bar)      
     {
     barfrup_1 = GetLastFractals(1,MODE_UPPER);Alert("barfrup_1 = ",barfrup_1);
     barfrup_2 = GetLastFractals(barfrup_1+1,MODE_UPPER);Alert("barfrup_2 = ",barfrup_2);
     if(barfrup_1==3)
     {
      secondtime1=iTime(NULL,0,barfrup_1);;Alert("secondtime1 = ",secondtime1);
      secondprice1=iHigh(NULL,0,barfrup_1);Alert("secondprice1 = ",secondprice1);
      firsttime1=iTime(NULL,0,barfrup_2);Alert("firsttime1 = ",firsttime1);
      firstprice1=iHigh(NULL,0,barfrup_2);Alert("firstprice1 = ",firstprice1);
      //рисуем трендовую линию High
      ObjectCreate("HighLine",OBJ_TREND,0,firsttime1,firstprice1,secondtime1,secondprice1);
     }}}

绘制一条线。如果我加上。

if(barfrup_1>3)  ObjectsDeleteAll();

它擦去了这一行,就是这样。有什么问题吗?

 
novichok2018:

我是这样做的。

绘制一条线。如果我加上。

它擦掉了那条线,就这样了。怎么了?

在你以前的一个帖子中,你抱怨说你没有得到答复。请记住有多少次有人告诉你要阅读文件,初级问题会自己消失。这个问题又是来自 "抽查文件 "系列,仔细抽查,不漏掉一个字,甚至一个句子。

你认为你有一个完整的名字吗?所以要完成你的年份和生日的匹配,更不用说你的姓、名和父名。

ObjectCreate - Графические объекты - Справочник MQL4
ObjectCreate - Графические объекты - Справочник MQL4
  • docs.mql4.com
[in]  Индекс окна, в которое будет добавлен объект. Окно должно существовать (индекс окна должен быть большим или равным 0 и меньшим, чем WindowsTotal()), иначе функция возвратит false. При использовании функции на собственном графике осуществляется прямой доступ к графику (как это всегда было в MQL4) и возврат true означает успешное создание...
 
novichok2018:

我是这样做的。

绘制一条线。如果我加上。

它擦掉了那条线,就这样了。怎么了?

请看我的第一个帖子,谁会给这条线路换个名字呢?

勾画出来了,很快,它就画出了一些东西,我不明白,试着用这个代码来做你的工作吧

//+------------------------------------------------------------------+
//|                                                 FractalTrend.mq4 |
//|                                                            IgorM |
//|                              https://www.mql5.com/ru/users/igorm |
//+------------------------------------------------------------------+
#property copyright "IgorM"
#property link      "https://www.mql5.com/ru/users/igorm"
#property version   "1.00"
#property strict
#include <ChartObjects\ChartObjectsLines.mqh>
CChartObjectTrend *UPLine, *DNLine;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
{
   return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
   delete UPLine;
   delete DNLine;
}
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
{
   static datetime bar1 = 0;
   if(bar1 != Time[1])
   {
      delete UPLine;
      delete DNLine;
      int last_fractal = GetLastFractals(0, MODE_UPPER);
      int prev_fractal = GetLastFractals(last_fractal + 1, MODE_UPPER);
      UPLine = DrawTrendLine(MODE_UPPER, "UPLineFractal", prev_fractal, last_fractal, clrRed);
  
      last_fractal = GetLastFractals(0, MODE_LOWER);
      prev_fractal = GetLastFractals(last_fractal + 1, MODE_LOWER);
      DNLine = DrawTrendLine(MODE_LOWER, "DNLineFractal", prev_fractal, last_fractal, clrYellowGreen);
      bar1 = Time[1];
   }

}
//_______________________________________________________________________
CChartObjectTrend* DrawTrendLine(const int MODE, const string obj_name, const int bar2, const int bar1, const color clr)
{
   CChartObjectTrend *obj = new CChartObjectTrend;
   obj.Create(0, obj_name, 0, Time[bar2], MODE == MODE_UPPER ? High[bar2] : Low[bar2], Time[bar1], MODE == MODE_UPPER ? High[bar1] : Low[bar1]);
   obj.Color(clr);
   return obj;
}
//_______________________________________________________________________
int GetLastFractals(int bar, int mode) // bar - с какого бара начинать поиск, mode = MODE_UPPER или MODE_LOWER , результат № бара где найден фрактал
{
   int i = bar;
   while(i < Bars && iFractals(NULL, 0, mode, i) < _Point) i++;
   return(i);
}
//_______________________________________________________________________
 
Alexey Viktorov:

在你以前的一个帖子中,你抱怨说没有得到答案。请记住你被派去阅读文件的次数,初级的问题会自己消失。这个问题又是 "抽查文件 "系列中的一个,抽查要仔细,不能跳字,更不能跳句子。

你认为你有一个完整的名字吗?满到你的年份和生日都一样,更不用说你的姓、名和父名了。

是的,从你对我的问题提出的第一个 "建议 "中,我早就明白你是这里最强硬的人,委曲求全地解释对你来说似乎很简单的事情对你来说是 "不合适的"。但你就是忍不住要把尾巴弄得蓬松起来。除了在新来者的主题中,还有什么地方呢!?

 
Igor Makanu:

请看我的第一个帖子,谁会给这条线路换个名字呢?

草草写完,草草了事,东西画完了,没看懂,试试这段代码,给你做做任务吧

谢谢你!我将继续挖掘。

 
novichok2018:

从你对我的问题提出的第一个 "建议 "来看,我早就明白你是这里最强硬的人,你屈尊去解释对你来说似乎很简单的事情是 "不合时宜 "的。但你就是忍不住要把尾巴弄得蓬松起来。除了在一个为新人准备的主题里,还有什么地方呢!?

听着,你不可能这么无知,甚至连这些话都不知道。

独特的对象名称。

在文件中看不到或理解不了。这正是我一直想告诉你的。但是,很明显,没有用。下一次,我会尽力把我对你的想法都小声说出来。有些新秀永远都是新秀。这一定是你的命运。锯,舒拉,锯...

 

先生们,@novichok2018@Alexey Viktorov 的同志们,不要太情绪化了!它们不利于建设性的对话!....

)))))))))))

 
Igor Makanu:

请看我的第一个帖子,谁会给这条线路换个名字呢?

画出来了,很快,东西画好了,没看懂,试试这个代码做你的任务吧

这样做了。

Fun_New_Bar();
    if(New_Bar)      
     {
     barfrup_1 = GetLastFractals(1,MODE_UPPER);Alert("barfrup_1 = ",barfrup_1);
     barfrup_2 = GetLastFractals(barfrup_1+1,MODE_UPPER);Alert("barfrup_2 = ",barfrup_2);
     if(barfrup_1==3)
     {
      secondtime1=iTime(NULL,0,barfrup_1);
      secondprice1=iHigh(NULL,0,barfrup_1);
      firsttime1=iTime(NULL,0,barfrup_2);
      firstprice1=iHigh(NULL,0,barfrup_2);
      //рисуем трендовую линию High
      ObjectCreate("HighLine",OBJ_TREND,0,firsttime1,firstprice1,secondtime1,secondprice1);
     }
      if(barfrup_1>3)  ObjectsDeleteAll();
      if(TimeCurrent()>secondtime1)
      {
      datetime Nsecondtime1=iTime(NULL,0,barfrup_1);
      double  Nsecondprice1=iHigh(NULL,0,barfrup_1);
      datetime Nfirsttime1=iTime(NULL,0,barfrup_2);
      double  Nfirstprice1=iHigh(NULL,0,barfrup_2);
      //рисуем новую трендовую линию High
      ObjectCreate("HighLine",OBJ_TREND,0,Nfirsttime1,Nfirstprice1,Nsecondtime1,Nsecondprice1);
      }
      }
 

在我看来,这更简单。它在历史上运行良好。我将在网上查看演示,我想它也会起作用。从你的经验来看,它能真正发挥作用吗?

原因: