检查在市场上发布的EA中的最小止损。 - 页 3 12345678910...18 新评论 Vladislav Andruschenko 2016.03.14 09:57 #21 Ihor Herasko:对不起,你的代码中哪里讨论了StopLevel变量的值?在你引用的代码中,这个变量的值没有变化。止损和盈利值有变化。因此,如果你增加一次,你将无法将这些值恢复到初始值。因此,你会追逐大的止损和利润,而止损水平早已下降。我不掌握许多经纪人(几十、几百)的信息。对于那些我必须处理的经纪商(因为客户在那里有账户),我看到的数字是2个点差。也许在某个地方有一个不同的价值。 在我看来,这从根本上说是经纪人提供信息的错误做法。有一个标准的机制来获得对止血带的限制。如果我们在请求时收到0,但实际上并不是0。然后根据你的需要,在每一个刻度上改变它,取决于价差值。如果我的经纪人有正确的止损水平值,那么我不能实时改变它。 我根据函数名称--OnInitLevels--做出了一个结论。它与一个单一的行动相关。你是对的,我们的职能不相似,但意义是一样的。当我改变内部变量时,外部变量保持不变,当止损点变大或变小时--那么所有的内部变量都被重新排列,一切都很好。我将尝试MetakvotesDemo服务器的说法。 Vladislav Andruschenko 2016.03.14 09:57 #22 Vitalii Ananev:我是这样做的专家顾问有能力以3种方式调整止损。手动设置止损大小(StopLoss)或将其设置为零。如果StopLoss等于0,它的大小是根据市场情况 计算的,但受StopLimit变量限制。而在OnInit()中,这些参数被检查是否正确,因为在10点以下设置止损是没有意义的。 是的,但如果停止=8,像MetacvotesDemo服务器中那样呢? Vladislav Andruschenko 2016.03.14 09:58 #23 我这样做了。int OnInitLevels(string symToWorkmodify) { int stoplevel; stoplevel=SymbolInfoInteger(symToWorkmodify,SYMBOL_TRADE_STOPS_LEVEL); double ask=SymbolInfoDouble(symToWorkmodify,SYMBOL_ASK); double bid=SymbolInfoDouble(symToWorkmodify,SYMBOL_BID); double point=SymbolInfoDouble(symToWorkmodify,SYMBOL_POINT); int SPREAD=(ask-bid)/point; if(stoplevel==0)stoplevel=SPREAD*2; if(lot<SymbolInfoDouble(symToWorkmodify,SYMBOL_VOLUME_MIN))lots=SymbolInfoDouble(symToWorkmodify,SYMBOL_VOLUME_MIN);else if(lot>SymbolInfoDouble(symToWorkmodify,SYMBOL_VOLUME_MAX))lots=SymbolInfoDouble(symToWorkmodify,SYMBOL_VOLUME_MAX);else lots=lot; if(StopLoss>0 && StopLoss<stoplevel)StopLosss=(int)stoplevel;else StopLosss=StopLoss; if(TakeProfit>0 && TakeProfit<stoplevel)TakeProfits=(int)stoplevel;else TakeProfits=TakeProfit; if(TrailingStop>0 && TrailingStop<stoplevel)TrallingStops=(int)stoplevel;else TrallingStops=TrailingStop; if(TakeProfitALL>0 && TakeProfitALL<stoplevel)TakeProfitsAver=(int)stoplevel;else TakeProfitsAver=(int)TakeProfitALL; if(TrailingStop>0 && TrailingStop<stoplevel)TrallingStops=(int)stoplevel;else TrallingStops=TrailingStop; return(0); } 我等着听主持人怎么说。 Alexander Bereznyak 2016.03.14 10:02 #24 Vitalii Ananev:我是这样做的专家顾问有能力以3种方式调整止损。手动设置止损大小(StopLoss)或将其设置为零。如果StopLoss等于0,它的大小是根据市场情况 计算的,但受StopLimit变量限制。而在OnInit()中,这些参数被检查是否正确,因为在10点以下设置止损是没有意义的。 你不应该这样建议,你的检查中没有提到账户的交易条件,这些数字是来自天花板的。 Vitalii Ananev 2016.03.14 10:25 #25 Alexander Bereznyak: 你不能这样建议,你的检查没有提到账户上的交易条件,这些数字是来自天花板的。 它们是来自这里的天花板,我不打算在这里给你写专家顾问的全部代码。你是否同意我的方法取决于你,我不打算强迫你。 Vitalii Ananev 2016.03.14 10:40 #26 Vladislav Andruschenko: 是的,但如果stop = 8,例如像MetakwotsDemo服务器那样? 你是说止损=8吗?在这个例子中,我不是根据交易条件来设置最小止损。但基于权宜之计和EA中实施的交易策略。 Vladislav Andruschenko 2016.03.14 10:42 #27 Vitalii Ananev: 你的意思是停止水平=8吗?在这个例子中,我不是根据交易条件来设置最小止损 规模。但由于权宜之计和EA中实施的交易策略的原因。是的,我明白,战略等等。这与战略等问题无关。当你在市场上投放EA时,他们会削减你的策略来检查它,所以他们设置的止损点不是策略的100点,而是1点! 原来是130的错误,这就是我所问的问题 :-) Alexander Bereznyak 2016.03.14 10:43 #28 Vitalii Ananev: 你的意思是停止水平=8吗?在这个例子中,我不是根据交易条件来设置最小止损。它是基于权宜之计和EA中实施的交易策略。 合理性可能在无意中与账户中的交易条件发生冲突 Vitalii Ananev 2016.03.14 10:49 #29 Vladislav Andruschenko:是的,我明白,战略等等。这与战略等问题无关。当你在市场上投放EA时,他们会削减你的策略来检查它,所以他们设置的止损点不是策略的100点,而是1点! 原来是130的错误,这就是我所问的问题 :-) 如果止损水平是浮动的,那么要么像亚历山大建议的那样将其与价差挂钩,要么设置一些边界条件,在此条件下你不能设置止损 大小。 Vladislav Andruschenko 2016.03.14 10:50 #30 Vitalii Ananev: 这就是我所说的,如果止损水平是浮动的,那么要么像亚历山大建议的那样将其与价差挂钩,要么设置一些边界条件,低于这些条件你就不能设置止损 规模。我检查了传播*2 - 让我们看看他们怎么说。 12345678910...18 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
对不起,你的代码中哪里讨论了StopLevel变量的值?在你引用的代码中,这个变量的值没有变化。止损和盈利值有变化。因此,如果你增加一次,你将无法将这些值恢复到初始值。因此,你会追逐大的止损和利润,而止损水平早已下降。
我不掌握许多经纪人(几十、几百)的信息。对于那些我必须处理的经纪商(因为客户在那里有账户),我看到的数字是2个点差。也许在某个地方有一个不同的价值。
在我看来,这从根本上说是经纪人提供信息的错误做法。有一个标准的机制来获得对止血带的限制。如果我们在请求时收到0,但实际上并不是0。然后根据你的需要,在每一个刻度上改变它,取决于价差值。如果我的经纪人有正确的止损水平值,那么我不能实时改变它。
我根据函数名称--OnInitLevels--做出了一个结论。它与一个单一的行动相关。你是对的,我们的职能不相似,但意义是一样的。
当我改变内部变量时,外部变量保持不变,当止损点变大或变小时--那么所有的内部变量都被重新排列,一切都很好。
我将尝试MetakvotesDemo服务器的说法。
我是这样做的
专家顾问有能力以3种方式调整止损。手动设置止损大小(StopLoss)或将其设置为零。
如果StopLoss等于0,它的大小是根据市场情况 计算的,但受StopLimit变量限制。
而在OnInit()中,这些参数被检查是否正确,因为在10点以下设置止损是没有意义的。
我这样做了。
我等着听主持人怎么说。
我是这样做的
专家顾问有能力以3种方式调整止损。手动设置止损大小(StopLoss)或将其设置为零。
如果StopLoss等于0,它的大小是根据市场情况 计算的,但受StopLimit变量限制。
而在OnInit()中,这些参数被检查是否正确,因为在10点以下设置止损是没有意义的。
你不能这样建议,你的检查没有提到账户上的交易条件,这些数字是来自天花板的。
是的,但如果stop = 8,例如像MetakwotsDemo服务器那样?
你的意思是停止水平=8吗?在这个例子中,我不是根据交易条件来设置最小止损 规模。但由于权宜之计和EA中实施的交易策略的原因。
是的,我明白,战略等等。
这与战略等问题无关。
当你在市场上投放EA时,他们会削减你的策略来检查它,所以他们设置的止损点不是策略的100点,而是1点!
原来是130的错误,这就是我所问的问题 :-)
你的意思是停止水平=8吗?在这个例子中,我不是根据交易条件来设置最小止损。它是基于权宜之计和EA中实施的交易策略。
是的,我明白,战略等等。
这与战略等问题无关。
当你在市场上投放EA时,他们会削减你的策略来检查它,所以他们设置的止损点不是策略的100点,而是1点!
原来是130的错误,这就是我所问的问题 :-)
这就是我所说的,如果止损水平是浮动的,那么要么像亚历山大建议的那样将其与价差挂钩,要么设置一些边界条件,低于这些条件你就不能设置止损 规模。
我检查了传播*2 - 让我们看看他们怎么说。