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

 
大家都知道。在MT4中。有一个策略测试员。有可能通过优化,推动参数的列举。

问题如下。

我们能不能把这种优化、搜索参数的工作推给专家顾问?如果专家顾问不时地优化参数,它选择那些有利可图的参数,并与它们一起工作?比如,每7天,专家顾问就会优化7天。并在盈利能力上选定参数。还有那些猫头鹰,已经工作了7天?

想听听答案,一个了解这个的人。比方说,工作量。工作的严重性。等等。它是关于什么的。

 
Aleksey Radzisheuski:
大家都知道。在MT4中。有一个策略测试员。有可能通过优化,推动参数的列举。
问题如下。
我们能不能把这种优化、搜索参数的工作推给专家顾问?如果专家顾问不时地优化参数,它选择那些有利可图的参数,并与它们一起工作?比如,每7天,专家顾问就会优化7天。并在盈利能力上选定参数。还有那些猫头鹰,已经工作了7天?

想听听答案,一个了解这个的人。比方说,工作量。工作的严重性。等等。它是关于什么的。

以下是这篇文章https://www.mql5.com/ru/articles/1467...

Автоматическая оптимизация торгового робота в процессе реальной торговли
Автоматическая оптимизация торгового робота в процессе реальной торговли
  • 2007.04.16
  • Igor Malcev
  • www.mql5.com
В статье описана и представлена библиотека функций, позволяющая проводить оптимизацию входных параметров советника, запуская оптимизацию непосредственно из советника.
 
Alekseu Fedotov:


你有一个趋势线 吗?

视觉上超过(低于)0条,不,在属性中检查框,束。


这条线是一条趋势线。改变了属性为射线。这并没有帮助。理想情况下,我希望价格的显示与零条的位置无关(顶部、底部)。

这个代码也不起作用。

int start() {

double pr=ObjectGetValueByShift("line",0)。

如果(Bid==pr){

Alert (pr);}

return(0);}

 
Valerius:

大家下午好!

问题,在insta上,当试图发送一个订单时,它说停止是错误的。

这里是这一行本身。

OrderSend(Symbol(),OP_BUYSTOP,Lots,HiP,3,0,0,NULL,111,0,clrBlue)。

如果我在止损中设置一个数字,一切就正常了。

我不需要止损。我应该怎么做?

这不是StopLoss的问题,而是挂单的开盘价问题。如果挂单的 价格是错误的,就会出现错误130。
 
Kot:


这条线是有趋势的。把属性改成了射线。这并没有帮助。理想的情况是,无论零条的位置如何(顶部、底部),都应该显示价格。

这个代码也不起作用。

int start() {

double pr=ObjectGetValueByShift("line",0)。

如果(Bid==pr){

Alert (pr);}

return(0);}


你输入的行名是否正确?

试试这个脚本,并在日志中显示它的内容。

void OnStart()
  {
     double pr;
     int obj_total=ObjectsTotal(); 
     string name;
     int i; 
     
   for(i=0;i<obj_total;i++) 
     { 
      name=ObjectName(i); 
      if(ObjectType(name)!=OBJ_TREND) continue; 
      PrintFormat("Объект %d:     Имя объекта - %s",i,name); 
      pr=ObjectGetValueByShift(name,0);
      PrintFormat("Объект %d:     Цена - %.5f",i,pr);
      
     } 
  }
 

我们有一个任务。来自较高时间段的指标数据被调用到iCustom Expert Advisor中。让我们称其为支撑线和阻力线。

假设有三个数字x1 x2 x3。请帮助我编写代码,在EA中直接用这三个数字画线。

我试着用ObjCreate(我想让它们在每一个刻度 上以点的形式画在图表上,但没有任何效果。)

要说明的是,3条独立的线。我不会链接到mql4底漆。只需分享工作代码

Основы тестирования в MetaTrader 5
Основы тестирования в MetaTrader 5
  • 2011.03.28
  • MetaQuotes Software Corp.
  • www.mql5.com
В чем различия между тремя режимами тестирования в MetaTrader 5 и на что обратить внимание? Как происходит тестирование эксперта, торгующего одновременно на нескольких инструментах? Когда и как вычисляются значения индикаторов при тестировании и как обрабатываются события? Как синхронизировать бары с разных инструментов при тестировании в режиме "Только цены открытия"? Статья призвана дать ответы на эти и многие другие вопросы.
 
Artyom Trishkin:

在这个主题中,我想开始帮助那些真正想了解和学习新的MQL4的编程,并想轻松切换到MQL5的人--这些语言非常相似。

这将是一个讨论任务、其解决方案的算法和任何其他有关MT编程问题的好地方。

我希望我们论坛的其他有经验的参与者能加入到这个问题的讨论中来,这个分支对每个人来说都是有趣的。


任务是这样的。对于iCustom Expert Advisor,我们将调用站在较高时间框架上的指标数据。让我们称其为支撑线和阻力线。

假设有三个数字x1 x2 x3。请帮助我编写代码,在EA中直接用这三个数字画线。

我试着用ObjCreate(我想让它们在每一个刻度 上以点的形式画在图表上,但没有任何效果。)

要说明的是,3条独立的线。请不要参考mql4教程。只需分享工作代码

Основы тестирования в MetaTrader 5
Основы тестирования в MetaTrader 5
  • 2011.03.28
  • MetaQuotes Software Corp.
  • www.mql5.com
В чем различия между тремя режимами тестирования в MetaTrader 5 и на что обратить внимание? Как происходит тестирование эксперта, торгующего одновременно на нескольких инструментах? Когда и как вычисляются значения индикаторов при тестировании и как обрабатываются события? Как синхронизировать бары с разных инструментов при тестировании в режиме "Только цены открытия"? Статья призвана дать ответы на эти и многие другие вопросы.
 
BoBoforex:

我们有一个任务。来自较高时间段的指标数据被调用到iCustom Expert Advisor中。让我们称其为支撑线和阻力线。

假设有三个数字x1 x2 x3。请帮助我编写代码,在EA中直接用这三个数字画线。

我试着用ObjCreate(我想让它们在每一个刻度 上以点的形式画在图表上,但没有任何效果。)

要说明的是,3条独立的线。我不会链接到mql4底漆。只要分享有效的代码。


职能

//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 30.03.2008                                                     |
//|  Описание : Установка объекта OBJ_HLINE горизонтальная линия               |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    cl - цвет линии                                                         |
//|    nm - наименование               ("" - время открытия текущего бара)     |
//|    p1 - ценовой уровень            (0  - Bid)                              |
//|    st - стиль линии                (0  - простая линия)                    |
//|    wd - ширина линии               (1  - по умолчанию)                     |
//+----------------------------------------------------------------------------+
void SetHLine(color cl, string nm="", double p1=0, int st=0, int wd=1) {
  if (nm=="") nm=DoubleToStr(Time[0], 0);
  if (p1<=0) p1=Bid;
  if (ObjectFind(nm)<0) ObjectCreate(nm, OBJ_HLINE, 0, 0,0);
  ObjectSet(nm, OBJPROP_PRICE1, p1);
  ObjectSet(nm, OBJPROP_COLOR , cl);
  ObjectSet(nm, OBJPROP_STYLE , st);
  ObjectSet(nm, OBJPROP_WIDTH , wd);
}

将其置于void OnTick()函数之外

而这是在void OnTick()中的内容。

  SetHLine(clrRed,"x1",x1); 
  SetHLine(clrRed,"x2",x2);
  SetHLine(clrRed,"x3",x3);  
 

请帮助--我不明白为什么我在计算i>0值的VesMass数组时得到零?

   int NumberTotal=3;
   int VesTotal=NumberTotal;//всего веслов в массиве
   double VesMass[];//массив с весами
   ArrayResize(VesMass,VesTotal);



   for(int i=0;i<VesTotal;i++)
     {
      if(i==0)
        {
         VesMass[i]=1;
         Print("VesMass ",i,"=",VesMass[i]);
        }
      if(i>0)
        {
         VesMass[i]=VesMass[i-1]*(4/5);
         Print("VesMass ",i-1,"=",VesMass[i-1]);
         Print("VesMass ",i,"=",VesMass[i]);
        }
     }
 
Alexey Viktorov:
这不是止损的问题,而是挂单的开盘价问题。如果挂单的 价格不正确,错误是130。


我试着把挂单放在价格的两倍范围内。只有这样,错误才会消失。我不明白这是否正确?

例如,BUYSTOP订单被设置在比达的60点。TakeProfit也不允许被设置成小于点差的值。

我不明白为什么会这样。它在真实账户上不工作,但在模拟模式下工作。

原因: