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

 
borilunad:
那么请看上面的内容,已经纠正了!
原来,当我被指责缺乏布尔逻辑时--他们指的是运算符中的额外括号....,但这些是表达式和运算符的格式规则....,是布尔逻辑?
 
T-G:

大家好。需要一些帮助。

在我的棋盘上打开了一系列的订单,数量由MaxOrders参数设定,下面我指出了它的样子,例如,不要严格按手数判断。

1手订单=128

2手订单=256

3-lot-order-lot=512

4-lot-order-lot=1024

5-order-lot=2048

这都是为测试人员准备的。

MaxOrders=5,并且有5个订单是开放的。问题是,在策略测试器中,我的经纪人有1000手的限制,因此,4和5的订单将不会像我应该的那样打开。

我在互联网上搜索,寻找在策略测试器中改变这一参数的方法,但我没有找到如何做到这一点。

因此,我决定用编程来解决这个问题。我已经决定为4个订单开立几个订单,并获得两个

4阶-批量=1000

4阶-批=24

为5个订单3。

5阶-批量=1000

5阶-批量=1000

5阶-lot=48

但这里有两个问题。

- 如何正确分解MM,以便根据最大手数将其分解成手数。

- 以及如何在不破坏订单的情况下开出额外的订单,即会有比MaxOrders中更多的订单,但不计算为满足数量而开出的额外订单。

也许我们应该拆分手数,即开几个仓位,这些仓位相互连接,并在父子订单的代码处进行注释。成交量为1000的父订单会有一张 成交量为24的订单的票,成交量为1000的子订单会有一张这个订单的票。而我们将不得不关闭,以同样的方式修改它们......或者更简单--一个微型账户和非常小的手数。在视觉跟踪的计算中,将地段乘以系数,这样它们就能获得你所需要的数值......

除了允许较大数量的经纪公司外,我没有想到其他的东西。

或者......。除以100你的地段

 
artmedia70:

你不必成为布尔代数的专家,也可以清楚地说明这些条件...

让我为你的生活提供一点便利......用通常的if 替换if ,用else 替换otherwise,用 && 替换and || 替换or ,等等。然后你就可以用你自己的正常话语来阅读所写的内容,或者决定你想写什么。

你所写的(暂且跳过错误的条件描述)。

1.如果(ot==0)如果没有市场订单(既没有市场订单,也没有挂起的订单,也没有由这个EA,或由另一个EA,或手动打开)...如果是,则执行第2行,如果不是,则转到第3行。

2. if (Bid==Price) 如果价格等于当前蜡烛的开盘价...。如果是,则执行第3行,如果不是,则转到第4行。

3. if(((Open[1]-Close[1])>100*Point)&&((Open[1]-Close[1])<120*Point))如果第一支蜡烛的开盘价比第一支蜡烛的收盘价高100点以上,低于120点...如果是,请到第4行,如果不是,请到第5行。

4. if(((High[1]-Open[1])>40*Point)&&((High[1]-Open[1])<60*Point))如果第一支蜡烛的高点比第一支蜡烛的开盘价高40点以上,低于60点...如果是,那么我们就执行第5行,如果不是,我们就转到第6行。

5. if(((Close[1]-Low[1])>40*Point)&&((Close[1]-Low[1])<60*Point))如果第一支蜡烛的收盘价比第一支蜡烛的最低价高40点以上,低于60点。如果是,则执行第6行,如果不是,则转到第7行。

6.

7.

从这个分解中你可以看到,你要么让所有的代码行一个接一个地执行(万一每行都返回真),要么跳过返回假的那行。

为了避免对你的条件产生混淆,并使逻辑正确,请将所有的语句用大括号括起来,不管是在真值之后执行一行,还是整个块。

比如说。

因此,试着将你的代码分解成若干部分,去掉多余的括号,这在这种情况下是不必要的......。

非常感谢您的全面回答。

 
solnce600:
原来,当我被指责缺乏布尔逻辑时--他们指的是运算符中的额外括号....,但这些是表达式和运算符的格式化规则....,这是布尔逻辑吗?

不 - 在有必要的地方没有大括号。适用于您EA中的蜡烛图大小搜索逻辑块
 
solnce600:

非常感谢您的全面回答。

已经纠正了 你的代码,所以它仍然通过停止来监测关闭 - 我已经为你的魔术师分配了一个值。我没有亲自检查。
 

下午好。亲爱的,请告知如何在专家顾问中实现这一条件。

交易是在特定条件下在小时图上打开的,但我们需要使交易只在4小时图上的条件下打开。

例如:如果在小时图上的交叉平均线打开交易,只要4小时图上的平均线与其他参数在同一方向交叉。如果能得到答案和帮助,我将不胜感激。

 
teplovoz:

下午好。亲爱的,请告知如何在专家顾问中实现这一条件。

交易是在特定条件下在小时图上打开的,但我们需要使交易只在4小时图上的条件下打开。

例如:如果在小时图上的交叉平均线打开交易,只要4小时图上的平均线与其他参数在同一方向交叉。如果能得到答案和帮助,我将不胜感激。

适用于MAs,从H4获得第一和第二条的数据。

double MA1_H4=iMA(Symbol(),PERIOD_H4,ma_period,ma_shift,ma_method,appled_price,1);
double MA2_H4=iMA(Symbol(),PERIOD_H4,ma_period,ma_shift,ma_method,appled_price,2);

从H1获得第一条和第二条的数据。

double MA1_H1=iMA(Symbol(),PERIOD_H1,ma_period,ma_shift,ma_method,appled_price,1);
double MA2_H1=iMA(Symbol(),PERIOD_H1,ma_period,ma_shift,ma_method,appled_price,2);

对其他时期和指标也要这样做。

 
artmedia70:

适用于H4数据的第一和第二条的MAs。

对其他时期和指标也要这样做。



哇,我太笨了,我想我只需要在向导参数中指定所需的时间框架,就可以了?谢谢,这些天我的大脑拒绝工作 :)
 
artmedia70:
纠正了 你的代码,这样它仍然可以跟踪停止关闭--我为你给魔术师分配了一个值。我没有亲自检查。


我再做一次。非常感谢你。
 
没关系,我们偶尔都会有这样的情况...