[存档!]任何菜鸟问题,为了不给论坛添乱。专业人士,不要与它擦肩而过。没有你,哪里都不能去 - 2. - 页 40

 
Noterday:

我在我的EA中插入了一个新的块来计算要开仓的手数。该想法如下。

1.如果是卖出头寸,止损设置为当天的最高点,如果是买入头寸,止损设置为当天的最低点。

2.当订单开仓的条件被触发时,这个用于计算手数的块开始被执行。计算出与当天最高点/最低点的距离,然后我从0.1开始循环查看手数,找到所需的手数(当止损被触发时为5%)。

但这样的句子出现在我的日记中。

2011.01.30 16:59:47 TestGenerator: 未匹配的数据错误(2011.01.13 14:45时超过了音量限制1107)

只要我关掉这个区块,一切都会好起来。我哪里错了?你能告诉我吗?

下面是代码本身。

测试员的信息不太可能与你的代码有关。

再三尝试,重新计算报价档案中的所有时间框架。

消息说,在14:45达到1107的交易量,这完全不可能,因为交易一直持续到24:00。

然而,这种误差是相当可忽略的。

 
Saltan:

当试图编译一个include文件(*.mqh)时,出现错误'\end_of_program' - 没有定义函数。出了什么问题,如何解决?

Extern double Lots = 0.0;
extern int Percent = 0;
extern int StopLoss = 100;
extern int TakeProfit = 40;
extern int TrailngStop = 100;

int Level_New;
int Level_Old;


它发生了,而且是正常的。例如,在我的Variables.mqh中--专家的外部和全局变量 被指定......当编译时,它写着'\end_of_program'--没有定义函数,类似于程序中没有结束,没有定义函数,但同时,在编译专家本身时,一切正常--0错误,0警告。(*.mqh) - 不要单独编译,在编译Expert Advisor本身时,编译器会把它所有的嵌套放在一起,它将决定是否有错误,没有错误等。:-))) 所以一切都很正常。尝试自行编译...

P.S. 在编译其他嵌套文件时,编译器可能会写出某些全局变量未被定义...当然,如果你把它放在一个完全不同的内联中,它就不必被定义。请注意嵌套的顺序......。如果一个变量在一个inlude中定义并在另一个inlude中使用,第一个inlude必须放在第二个inlude之前,否则在编译过程中会出现错误--一些变量没有被定义,一般来说,所有的全局变量都在外层inlude中定义。或者,它们可以被定义在任何其他的,如果只有这一个使用这些变量。不知何故...它相当模糊,但应该是可以理解的。试试吧。

 
DhP:

测试员的信息不太可能与你的代码有关。

再三尝试,重新计算报价档案中的所有时间框架。

消息说,交易量在14:45达到1107,这完全不可能,因为交易一直持续到24:00。

然而,这个误差是相当可忽略的。

好吧,当这个块被注释掉后,在测试器中一切正常。所以错误就在这块...
 
100yan:
没问题...但你如何确定代码中TF的当前值?

Period() 会有帮助
 
Sergey_Rogozin:

我从四面八方看了看STUDY书的封面,还是不明白什么......)

我在任何地方都看到这样的文字。

如果我想获得Price = OrderOpenPrice()以进一步处理和设置止损,下面的写法是否公平?

这对我来说是可行的,但这能接受吗?

你这句话和第一句话一样有效。

这样你就可以得到关于未结订单的任何信息。

但在打开确认时只需一次。

https://docs.mql4.com/ru/trading/OrderSend

 
Noterday:
好吧,当这个块被注释掉后,在测试器中一切正常。所以错误就在这块...
    double DistanceToHighDay = MathAbs(HighDay-Ask)*10000;
    double DistanceToLowDay  = MathAbs(Bid-LowDay)*10000;

这很可能是由于你对当天数据的处理,与分钟的数据量不一致。

而测试者会警告你。
 
HighDay和LowDay变量不仅在这个区块中使用,而且在程序的其他地方也使用,所以我认为它们与此无关。你认为该区块的算法是否正确?
 

有人能做得更好吗?

1.在当天的高点上放置一个卖出位置的止损。

2.然后我们计算从当前价格 到当天最高价的距离,以点为单位。

3.计算这个距离在0.1手的情况下将是多少美元,并计算它将是多少百分比的存款。如果它将小于5%,那么计算0.2手,以此类推,直到它超过5%。

然后这将是你需要的地段大小。

我的代码由于某种原因不能工作,....,尽管一切似乎都写得很正确。

 

谁知道呢?

我如何以编程方式引用布林线,说--应用于 "前一个指标的数据"?我应该在applied_price字段中输入什么?

谢谢

 

大家好。问题:我怎样才能让CheckEvents发挥作用?事件文件(来自Komposter)在include目录下。在EventsExpert.mq4中有一个例子。

CheckEvents( MagicNumber );

        if ( eventBuyClosed_SL > 0 )
                Alert( Symbol(), ": Buy-позиция закрыта по СтопЛоссу!" );

但我不需要阿利特。我需要在市场订单以止损价收盘时删除挂单

CheckEvents( Magic==0 );
    
   if (eventBuyClosed_SL > 0)
   ??????????? 
        
   DELETE("Buy Stop");

我应该用什么来代替 "警报"?如果这个功能适合目的。