任何菜鸟问题,为了不给论坛添乱。专业人士,不要路过。没有你就无处可去 - 6. - 页 208 1...201202203204205206207208209210211212213214215...1178 新评论 ANDREY 2013.10.25 08:40 #2071 borilunad: 那么请看上面的内容,已经纠正了! 原来,当我被指责缺乏布尔逻辑时--他们指的是运算符中的额外括号....,但这些是表达式和运算符的格式规则....,是布尔逻辑? Artyom Trishkin 2013.10.25 08:46 #2072 T-G:大家好。需要一些帮助。在我的棋盘上打开了一系列的订单,数量由MaxOrders参数设定,下面我指出了它的样子,例如,不要严格按手数判断。1手订单=1282手订单=2563-lot-order-lot=5124-lot-order-lot=10245-order-lot=2048这都是为测试人员准备的。MaxOrders=5,并且有5个订单是开放的。问题是,在策略测试器中,我的经纪人有1000手的限制,因此,4和5的订单将不会像我应该的那样打开。我在互联网上搜索,寻找在策略测试器中改变这一参数的方法,但我没有找到如何做到这一点。因此,我决定用编程来解决这个问题。我已经决定为4个订单开立几个订单,并获得两个4阶-批量=10004阶-批=24为5个订单3。5阶-批量=10005阶-批量=10005阶-lot=48但这里有两个问题。- 如何正确分解MM,以便根据最大手数将其分解成手数。- 以及如何在不破坏订单的情况下开出额外的订单,即会有比MaxOrders中更多的订单,但不计算为满足数量而开出的额外订单。也许我们应该拆分手数,即开几个仓位,这些仓位相互连接,并在父子订单的代码处进行注释。成交量为1000的父订单会有一张 成交量为24的订单的票,成交量为1000的子订单会有一张这个订单的票。而我们将不得不关闭,以同样的方式修改它们......或者更简单--一个微型账户和非常小的手数。在视觉跟踪的计算中,将地段乘以系数,这样它们就能获得你所需要的数值...... 除了允许较大数量的经纪公司外,我没有想到其他的东西。 或者......。除以100你的地段 ANDREY 2013.10.25 08:47 #2073 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. 从这个分解中你可以看到,你要么让所有的代码行一个接一个地执行(万一每行都返回真),要么跳过返回假的那行。 为了避免对你的条件产生混淆,并使逻辑正确,请将所有的语句用大括号括起来,不管是在真值之后执行一行,还是整个块。 比如说。 因此,试着将你的代码分解成若干部分,去掉多余的括号,这在这种情况下是不必要的......。 非常感谢您的全面回答。 Artyom Trishkin 2013.10.25 08:48 #2074 solnce600: 原来,当我被指责缺乏布尔逻辑时--他们指的是运算符中的额外括号....,但这些是表达式和运算符的格式化规则....,这是布尔逻辑吗? 不 - 在有必要的地方没有大括号。适用于您EA中的蜡烛图大小搜索逻辑块 Artyom Trishkin 2013.10.25 08:52 #2075 solnce600: 非常感谢您的全面回答。 我已经纠正了 你的代码,所以它仍然通过停止来监测关闭 - 我已经为你的魔术师分配了一个值。我没有亲自检查。 teplovoz 2013.10.25 08:54 #2076 下午好。亲爱的,请告知如何在专家顾问中实现这一条件。 交易是在特定条件下在小时图上打开的,但我们需要使交易只在4小时图上的条件下打开。 例如:如果在小时图上的交叉平均线打开交易,只要4小时图上的平均线与其他参数在同一方向交叉。如果能得到答案和帮助,我将不胜感激。 Artyom Trishkin 2013.10.25 09:03 #2077 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); 对其他时期和指标也要这样做。 teplovoz 2013.10.25 09:05 #2078 artmedia70: 适用于H4数据的第一和第二条的MAs。 对其他时期和指标也要这样做。 哇,我太笨了,我想我只需要在向导参数中指定所需的时间框架,就可以了?谢谢,这些天我的大脑拒绝工作 :) ANDREY 2013.10.25 09:08 #2079 artmedia70: 我纠正了 你的代码,这样它仍然可以跟踪停止关闭--我为你给魔术师分配了一个值。我没有亲自检查。 我再做一次。非常感谢你。 Artyom Trishkin 2013.10.25 09:09 #2080 没关系,我们偶尔都会有这样的情况... 1...201202203204205206207208209210211212213214215...1178 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
那么请看上面的内容,已经纠正了!
大家好。需要一些帮助。
在我的棋盘上打开了一系列的订单,数量由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你的地段
你不必成为布尔代数的专家,也可以清楚地说明这些条件...
让我为你的生活提供一点便利......用通常的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.
从这个分解中你可以看到,你要么让所有的代码行一个接一个地执行(万一每行都返回真),要么跳过返回假的那行。
为了避免对你的条件产生混淆,并使逻辑正确,请将所有的语句用大括号括起来,不管是在真值之后执行一行,还是整个块。
比如说。
因此,试着将你的代码分解成若干部分,去掉多余的括号,这在这种情况下是不必要的......。非常感谢您的全面回答。
原来,当我被指责缺乏布尔逻辑时--他们指的是运算符中的额外括号....,但这些是表达式和运算符的格式化规则....,这是布尔逻辑吗?
非常感谢您的全面回答。
下午好。亲爱的,请告知如何在专家顾问中实现这一条件。
交易是在特定条件下在小时图上打开的,但我们需要使交易只在4小时图上的条件下打开。
例如:如果在小时图上的交叉平均线打开交易,只要4小时图上的平均线与其他参数在同一方向交叉。如果能得到答案和帮助,我将不胜感激。
下午好。亲爱的,请告知如何在专家顾问中实现这一条件。
交易是在特定条件下在小时图上打开的,但我们需要使交易只在4小时图上的条件下打开。
例如:如果在小时图上的交叉平均线打开交易,只要4小时图上的平均线与其他参数在同一方向交叉。如果能得到答案和帮助,我将不胜感激。
适用于MAs,从H4获得第一和第二条的数据。
从H1获得第一条和第二条的数据。
对其他时期和指标也要这样做。
适用于H4数据的第一和第二条的MAs。
对其他时期和指标也要这样做。
哇,我太笨了,我想我只需要在向导参数中指定所需的时间框架,就可以了?谢谢,这些天我的大脑拒绝工作 :)
我纠正了 你的代码,这样它仍然可以跟踪停止关闭--我为你给魔术师分配了一个值。我没有亲自检查。
我再做一次。非常感谢你。