任何菜鸟问题,为了不给论坛添乱。专业人士,不要路过。没有你就无处可去 - 6. - 页 540

 
我的交易系统是基于对历史数据的分析。我已经建立了一个函数来直接在EA中计算信号。然而,据我了解,在测试,Expert Advisor 只使用可视化窗口中的数据(它的条数比从档案中加载历史的标准窗口少得多)。我至少需要几万条历史记录才能计算出信号。有没有办法解决这个问题,即允许被测试的EA使用整个历史,即使被测试的周期较小?我正在使用MT4和MQL4
 
sannin:

如果你不介意的话,请提供帮助

教导专家顾问按指标进行交易

BS_Living Now ver #1.mq4 https://www.mql5.com/ru/code/11014#50910

UP= iCustom(Symbol(),NULL,"Now",BQuant,0,0)。

DOW= iCustom(Symbol(),NULL,"Now",BQuant,1,0)。


如果(DOW){OrderSend(Symbol(, OP_SELL, Lot, Bid, Slip, 0, 0, "Forex-Robots.ru SELL", Magic, 0,Red);}。


如果(UP ){OrderSend(Symbol(, OP_BUY, Lot, Ask, Slip, 0, 0, "Forex-Robots.ru BUY", Magic, 0,Blue);}。


评论

(

"n Profit:", UP,

"n Profit:",DOW

);

我试图阅读评论中的数值,但它们总是静态的。

指标名称应该是 "BS_Living Now ver #1"
 

是的,我有一个指标,名字叫Now ,在文件夹中。

我把数值放在评论中,看看数字如何变化,但它们在测试器中是静态的,也是实时的,而且它们不是零。

 
sannin:

是的,我有一个指标,名字叫Now ,在文件夹中。

我把数值贴在评论中,想看看数字是如何变化的,它们是静态的,无论是在测试器中还是在现实生活中,它们都不是零。


如果它与分形相似,其数值应在历史中搜索,但不在零条上搜索。

Z.I.: 没错,它从第1小节开始计算,在第0小节找东西是没有意义的......

 

您能告诉我们如何在EA中加入如果市场价格和最远的订单价格之间的距离超过1000点时关闭所有订单的功能吗?

 
evillive:

如果它在原理上与分形相似,那么在历史上进一步寻找其价值是有意义的,但不是在零点吧。

Z.I.: 是的,它从第1小节开始计算,在第0小节上找东西是没有意义的......

从2号条码开始,Extrim_Detect(s+1)。
 
AlexeyVik:

因此,条件是

谢谢你,阿列克谢。我已经按照你的建议做了一切。

extern int    Min_iMA_OpenDistance   = 60;
extern int    Max_iMA_OpenDistance   = 85; 

入境条件改变

int GetSignal()
{
  int Signal = 0;

  double iMA_Signal = iMA(Symbol(), 0, iMA_Period, 0, MODE_SMMA, PRICE_CLOSE, 0);
  
  int Ma_Bid_Diff = MathAbs(iMA_Signal - Bid)/vPoint;
  
  if(Ma_Bid_Diff > Min_iMA_OpenDistance && Ma_Bid_Diff < Max_iMA_OpenDistance && Bid > iMA_Signal) Signal = -1;
  if(Ma_Bid_Diff > Min_iMA_OpenDistance && Ma_Bid_Diff < Max_iMA_OpenDistance && Bid < iMA_Signal) Signal = 1;
  
  return(Signal);
}

然而,在做了这些修改后,编译器在以下一行 "发誓 "了

iMA_OpenDistance  *= DcD; 

iMA_OpenDistance' - 未声明的标识符 - 未声明的标识符。我读了关于标识符的教程和帮助,但没有任何效果。你能告诉我哪里出错了,如何解决吗?

 
tatianati:

谢谢你,阿列克谢。我按照你的建议做了。

改变了输入条件

然而,在做了修改之后,编译器在以下一行 "发誓 "了

iMA_OpenDistance' - 未宣布的标识符。我看了我的教程和关于标识符的帮助,但没有任何效果。你能告诉我哪里出错了,如何解决吗?

显然,我们将不得不使用心灵感应的力量。

首先只有iMA_OpenDistance,然后被分为Min_iMA_OpenDistance和Max_iMA_OpenDistance两个变量,所以iMA_OpenDistance变量没有被声明。

你不需要改变外部变量的值。最好是声明一个额外的变量,然后对它做你想做的事。

按照我的理解,变量vPoint是Point*10。因此,Ma_Bid_Diff是指从Bid到MA的距离,以4位数计。而DcD是什么?我的心灵感应能力是不够的。但无论如何,在我看来,iMA_OpenDistance *= DcD; 是不必要的。还是说这是对5位数点的转换?为了什么?

 
AlexeyVik:

显然,我们将不得不使用心灵感应。

起初只有iMA_OpenDistance,然后它被分成2个变量Min_iMA_OpenDistance和Max_iMA_OpenDistance,所以iMA_OpenDistance这个变量没有被声明。

你不需要改变外部变量的值。最好是声明一个额外的变量,然后用它做你想做的事。

根据我的理解,vPoint变量是Point*10。因此,Ma_Bid_Diff是指从Bid到MA的距离,以4位数计。什么是DcD?我的心灵感应能力是不够的。但无论如何,在我看来,iMA_OpenDistance *= DcD; 是不必要的。还是说这是对5位数积分的转换?为了什么?



阿列克谢,你真的是一个心灵感应者,这真的是一个5位数的翻译。谢谢你的澄清,我怎么没能把握住Min_iMA和Max_iMa而不是iMa。再次感谢。

P.S. 如果你开设心灵感应课程,我将第一个报名 :-)

 

也许有人有这样一位顾问。

1.同时打开两个不同的买入和卖出订单

2.当其中一个关闭获利时.它再次打开两个不同的买入和卖出订单,等等。

如果你不需要做任何失去订单的事情,这似乎是很简单的。也许有人能为你写它? 我将非常感谢你