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

 
Rewerpool:
这是一个很好的提示。从代码中删除了。

现在,每一个刻度都在抽动 )))))

添加它。

          double    OOP = OrderOpenPrice(),
                    OSL = OrderStopLoss(),
                    OTP = OrderTakeProfit();
          if ((OSL!=0&&stoploss==0) && (OTP!=0&&takeprofit==0)) continue;
 

又是晚上好。问题的全部要点。

我在市场上投放了一个EA(正在运行)。 MT4平台。我可以显示一个单一的文件。专家顾问的一个文件。它应该通过有效性,但它不能,因为它是一个没有指标的EA。它们是在不同的文件中。专家顾问与四个指标一起工作。它们必须以某种方式连接到专家顾问。你必须指定路径,即在专家顾问中写入它们。请告知哪种形式和如何做。

据我所知,我们必须使用 "资源"。我不知道如何在专家顾问中正确注册。也许你知道一些其他的解决方案。

谢谢你.

以下是未能通过验证时的说法

2016.04.01 00:00:00无法打开文件'MQL4\indicators\Heiken_Ashi_Smoothed1lime.ex4' [2] 2016.04.01 00:00:00无法打开文件'MQL4\indicators\Heiken_Ashi_Smoothed1lime.ex4' [2]01 00:00:00无法打开文件'MQL4\indicators\MA in Color_wAppliedPrice.ex4' [2] 2016.04.01 00:00:00无法打开文件'MQL4\indicators\MA in Color_wAppliedPrice.ex4' [2] 2016.04.01 00:00:00无法打开文件'MQL4\indicators\HA_Smooth.ex4' [2] 2016.04.01 00:00:00无法打开文件'MQL4indicators\HA_Smooth.ex4' [2] 2016.04.01 00:00:00无法打开文件'MQL4\indicators\TrendLord.ex4' [2] 2016.04.01 00:00:00无法打开文件'MQL4\indicators\TrendLord。ex4' [2] 2016.04.01 00:00:05 无法打开文件 'MQL4\indicators\Heiken_Ashi_Smoothed1lime.ex4' [2] 2016.04.01 00:00:05 无法打开文件 'MQL4\indicators\Heiken_Ashi_Smoothed1lime.ex4' [2] 2016.04.01 00:00:0504.01 00:00:05无法打开文件'MQL4\indicators\MA in Color_wAppliedPrice.ex4' [2] 2016.04.01 00:00:05无法打开文件'MQL4\indicators\MA in Color_wAppliedPrice.ex4' [2] 2016.04.0101 00:00:05无法打开文件'MQL4\indicators\HA_Smooth.ex4' [2] 2016.04.01 00:00:05无法打开文件'MQL4\indicators\HA_Smooth.ex4' [2] 2016.04.01 00:00:05无法打开文件'MQL4\indicators\TrendLord.ex4' [2] 2016.04.0101 00:00:05无法打开文件'MQL4\indicators\TrendLord.ex4' [2] 2016.04.01 00:00:10无法打开文件'MQL4\indicators\Heiken_Ashi_Smoothed1lime.ex4' [2] 2016.04.01 00:00:10无法打开文件'MQL4\indicators\Heiken_Ashi_Smoothed1lime。ex4' [2] 2016.04.01 00:00:10无法打开文件'MQL4\indicators\MA in Color_wAppliedPrice.ex4' [2] 2016.04.01 00:00:10无法打开文件'MQL4\indicators\MA in Color_wAppliedPrice.ex4' [2]

 
晚上好,你是怎么打滑的?我在互联网上搜索了一遍,没有找到任何东西....。
 
Oleksandr Kulibaba:

又是晚上好。问题的全部要点。

我在市场上投放了一个EA(正在运行)。 MT4平台。我可以显示一个单一的文件。专家顾问的一个文件。它应该通过有效性,但它不能,因为它是一个没有指标的EA。它们是在不同的文件中。专家顾问与四个指标一起工作。它们必须以某种方式连接到专家顾问。你必须指定路径,即在专家顾问中写入它们。请告知哪种形式和如何做。

据我所知,我们必须使用 "资源"。我不知道如何在专家顾问中正确注册。也许你知道一些其他的解决方案。

谢谢你.

如果有效性没有通过,它是这样说的

我认为,你写了一个EA,却不能给它添加指标,这很可悲。

 
Vladislav Andruschenko:

你写了一个EA,却不能给它添加指标来使其发挥作用,这很可悲。

 
Oleksandr Kulibaba:
我正在努力解决这个问题。我希望它能成功。你的回答对我一点帮助都没有。而且我一点也不难过,相反我很兴奋。我也会这样做。
 
//+------------------------------------------------------------------+
//|                                                        temp1.mq4 |
//|                        Copyright 2017, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2017, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict

extern int    Slippage=29;

int Slippage1;

int OnInit()
  {
//---
   Slippage1=Slippage;
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
  if(Slippage1!=Slippage){Slippage1=Slippage; Print("Параметры изменены");}
//---
   Comment(Slippage1);
  }
//+------------------------------------------------------------------+

问候。

一个新的勾选应该把输入参数Slippage 的值分配给变量Slippage1,在注释中输出Slippage1,并在日志中 显示"参数已改变"

不起作用的地方:当Slippage1!=Slippage 时,"参数改变 " 选项不在日志中打印。

问题:我做错了什么?

 
Andrey Sokolov:

问候。

一个新的勾选应该把输入参数Slippage 的值分配给变量Slippage1,在注释中输出Slippage1,并在日志中 显示"参数已改变"

不起作用的地方:当Slippage1!=Slippage 时,"参数改变 " 选项不在日志中打印。

问题:我做错了什么?

如果一个输入参数被改变,那么在OnInit中,Slippage1 变量被分配为Slippag 的值 因此,它们不可能是不平等的。

extern int    Slippage=29;

int Slippage1 = 0;

int OnInit()
  {
//---
   //Slippage1=Slippage;
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
  if(Slippage1!=Slippage){Slippage1=Slippage; Print("Параметры изменены");}
//---
   Comment(Slippage1);
  }

 
Alexey Viktorov:

如果输入参数被改变,在OnInit中Slippage1 变量被设置Slippag因此,它们不可能是不平等的。

是的,谢谢你。我刚刚得到它。

 

你好,请帮助我解决当我试图修改一个订单(转移到Breakeven)时,在测试器中出现的错误:我把OrderOpenPrice()函数而不是SL,但测试器显示错误1(根据文档,这意味着有一个试图传递未改变的值作为参数给函数)我附上代码!提前感谢您!

void DeleteOrderFunction2() //删除第二个挂单的函数,并在某天晚上将第二个订单保存到Breakeven。

{

bool flag = false。

如果(FlagDeleteSecondOrder2 == true)

{

如果(DayOfWeek() == DAYOFWEEK && //如果选择了一个工作日

Hour() == 22 //if evening

)

{

如果(BuyCount() == 1 && if(有一个 未平仓的买入订单)

SellStopCount() == 1 //有一个卖出挂单

)

{

for( int i = 0; i < OrdersTotal(); i++)//创建订单

{

OrderSelectX(i, SELECT_BY_POS, MODE_TRADES;)

switch(OrderType())

{

case OP_BUY: if(OrderProfit() > 0 &&)

Bid > OrderOpenPrice()

)

{

OrderModifyX(OrderTicket(),OrderOpenPrice(),OrderTakeProfit(),0,Arrow_Color)。

标志=true。

}

突破。

case OP_SELLSTOP: if(flag==true)

{

OrderDeleteX(OrderTicket(), Arrow_Color)。

}

突破。

}

}

}

如果(SellCount() == 1 && // 如果有一个开放的卖出订单

BuyStopCount() == 1 //有一个买入挂单。

)

{ 打印("IS!!!!")。

for( int i = 0; i < OrdersTotal(); i++)//创建订单

{

OrderSelectX(i, SELECT_BY_POS, MODE_TRADES;)

switch(OrderType())

{

case OP_SELL: 如果(OrderProfit() > 0 &&)

Ask < OrderOpenPrice()

)

{

OrderModifyX(OrderTicket(), OrderOpenPrice(),OrderTakeProfit(),0, Arrow_Color)。

flag = true;Print("flag =", flag);

}

突破。

case OP_BUYSTOP: if(flag == true)

{

Print("flag =", flag);

OrderDeleteX(OrderTicket(), Arrow_Color)。

}

突破。

}

}

}


}


}

}