编码帮助 - 页 54 1...474849505152535455565758596061...786 新评论 uk_kara 2012.11.08 05:55 #531 睡眠功能方面需要帮助 嗨,mladen 我的要求是,如果之前的交易碰到了止损,那么EA应该休眠24小时。能否请你帮助我编写代码? annbeea 2012.11.08 18:08 #532 mladen: annbeea 关于你帖子的第一部分:是的,那个版本会重绘(这是由于T3的计算方式,它有一个错误,这就是为什么我说最好使用另一个版本)。 嗨,mladen,除了使用你提到的另一个,你能不能重新编码附件中的那部分指标,因为我喜欢它的穿越风格,这样它就不会重绘过去,并且有正确的警报代码? 非常感谢你的帮助 附加的文件: rsi_trial_test.mq4 5 kb Gary Davis 2012.11.09 03:39 #533 图表上的交易标记,我怎样才能清除它们? 每次下单时,我的图表上都会出现这些红点,我怎样才能关闭或清除它们。 我不知道是什么原因造成的。 附加的文件: dots.jpg 71 kb Mladen Rakic 2012.11.09 08:54 #534 你可以使用这样的函数。 bool lastOrderStopLossHit(int magicNumber, string symbol, datetime& lastTime) { double lastClosePrice = -1; double lastStopLoss = -1; // // // reset the time of the last order // // lastTime = -1; // // // find the last order // // for (int i=OrdersHistoryTotal()-1; i>=0; i--) { if (OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==false) continue; if (OrderMagicNumber()!=magicNumber) continue; if (OrderSymbol() !=symbol) continue; if (OrderCloseTime()>lastTime) { lastTime = OrderCloseTime(); lastClosePrice = OrderClosePrice(); lastStopLoss = OrderStopLoss(); } } int digits = MarketInfo(symbol,MODE_DIGITS); return (lastTime!=-1 && NormalizeDouble(lastClosePrice,digits)==NormalizeDouble(lastStopLoss,digits)); }[/PHP] and then at the beginning of the start procedure place a code that could look like this : [PHP] datetime lastClosedTime; if (lastOrderStopLossHit(1,Symbol(),lastClosedTime) && (lastClosedTime+24*60*60)>TimeCurrent()) return(0); 如果你希望有一个不同于1天的暂停,把 "24*60*60 "改成你希望的那样。 PS: 我在通话中使用了 "1 "作为神奇的数字。用你真正的数字代替它。 uk_kara: 嗨 mladen 我的要求是,如果之前的交易触及止损,那么EA应该休眠24小时。能否请你帮助我编写代码? Coding help 如何编码? [存档!]任何菜鸟问题,为了不给论坛添乱。专业人士,不要与它擦肩而过。没有你,哪里都不能去 - 2. annbeea 2012.11.09 09:32 #535 你好,mladen。 你能不能帮我修改一下里面的代码,使它能(正常化)有垂直刻度:最小为0,最大为100,中间点为50,而不是现在的0,但仍然保持和以前一样的信号?非常感谢您的帮助。 附加的文件: osc_trial_test.mq4 5 kb Mladen Rakic 2012.11.09 09:37 #536 琥珀 你不能这样做。任何形式的归一化都会改变信号(它们不可能保持完全相同--尤其是你有3个值,更不可能保持信号在相同的地方)。 annbeea: 你好,mladen,你能不能帮我修改一下里面的代码,使它能(归一化)有垂直刻度:最小为0,最大为100,中间点为50,而不是现在的0,但仍然保持和以前一样的信号?非常感谢您的帮助。 uk_kara 2012.11.09 13:36 #537 mladen: 你可以使用这样一个函数: .............................如果你希望暂停时间不超过1天,请将 "24*60*60 "改为你所希望的。 PS:我在通话中使用了 "1 "作为神奇数字。用你真正的魔法数字代替它 谢谢Mladen。我将检查一下 annbeea 2012.11.09 15:46 #538 mladen: annbeea 你不能这么做。任何形式的归一化都会改变信号(它们不可能保持完全相同--尤其是你有3个值,保持信号在相同位置的机会就更少了)。 嗨 mladen 可能是我误用或误解了 "正常化 "这个词,是否有可能像通常出现的比例一样,将振荡试验的规模扩大,最小0,最大100,中间50? 我可以知道是T3还是RSI组件重绘还是两者都重绘吗?非常感谢你的帮助。 Mladen Rakic 2012.11.09 16:11 #539 嗳呵 我们谈论的是同一件事:将数值转换为最小和最大,总是会使原始数值 "变形"。我们可以称其为规范化或标准化或任何我们想要的东西,但我们付出的代价是失去了原始值的关联性。而当它们被 "变形 "时,信号将发生在完全不同的地方。 就rsi试验指标而言:t3部分将重新绘制。这是由于以前的t3计算步骤是如何处理的。第一次计算(当你把它放在图表上,改变时间框架或符号时,......),它将计算OK。但在下一个tick上,当你计算下一个tick时,变量e1到e6将具有当前(第0个)bar的值,它们至少应该具有第一个bar的值(取决于 "限制 "变量)。这是一个错误,因为下一个刻度线的计算继承了前一步的计算值,这将导致每个新刻度线的误差越来越大,这就是为什么我建议你使用另一个指标作为基础,因为在那个指标中这些问题已经解决了。 annbeea: 嗨 mladen可能是我误用或误解了 "正常化 "这个词,是否可以像通常出现的比例那样,将震荡试验的比例调整到最小0,最大100,中间50? 我可以知道是T3还是RSI组件重绘还是两者都重绘吗?非常感谢您的帮助。 uk_kara 2012.11.09 16:11 #540 uk_kara: 谢谢Mladen。我将检查它 像往常一样工作,谢谢Mladen,你是个明星。 1...474849505152535455565758596061...786 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
睡眠功能方面需要帮助
嗨,mladen
我的要求是,如果之前的交易碰到了止损,那么EA应该休眠24小时。能否请你帮助我编写代码?
annbeea 关于你帖子的第一部分:是的,那个版本会重绘(这是由于T3的计算方式,它有一个错误,这就是为什么我说最好使用另一个版本)。
嗨,mladen,除了使用你提到的另一个,你能不能重新编码附件中的那部分指标,因为我喜欢它的穿越风格,这样它就不会重绘过去,并且有正确的警报代码?
非常感谢你的帮助
图表上的交易标记,我怎样才能清除它们?
每次下单时,我的图表上都会出现这些红点,我怎样才能关闭或清除它们。 我不知道是什么原因造成的。
你可以使用这样的函数。
{
double lastClosePrice = -1;
double lastStopLoss = -1;
//
//
// reset the time of the last order
//
//
lastTime = -1;
//
//
// find the last order
//
//
for (int i=OrdersHistoryTotal()-1; i>=0; i--)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==false) continue;
if (OrderMagicNumber()!=magicNumber) continue;
if (OrderSymbol() !=symbol) continue;
if (OrderCloseTime()>lastTime)
{
lastTime = OrderCloseTime();
lastClosePrice = OrderClosePrice();
lastStopLoss = OrderStopLoss();
}
}
int digits = MarketInfo(symbol,MODE_DIGITS);
return (lastTime!=-1 && NormalizeDouble(lastClosePrice,digits)==NormalizeDouble(lastStopLoss,digits));
}[/PHP]
and then at the beginning of the start procedure place a code that could look like this :
[PHP] datetime lastClosedTime;
if (lastOrderStopLossHit(1,Symbol(),lastClosedTime) && (lastClosedTime+24*60*60)>TimeCurrent()) return(0);
如果你希望有一个不同于1天的暂停,把 "24*60*60 "改成你希望的那样。
PS: 我在通话中使用了 "1 "作为神奇的数字。用你真正的数字代替它。
嗨 mladen 我的要求是,如果之前的交易触及止损,那么EA应该休眠24小时。能否请你帮助我编写代码?
你好,mladen。
你能不能帮我修改一下里面的代码,使它能(正常化)有垂直刻度:最小为0,最大为100,中间点为50,而不是现在的0,但仍然保持和以前一样的信号?非常感谢您的帮助。
琥珀
你不能这样做。任何形式的归一化都会改变信号(它们不可能保持完全相同--尤其是你有3个值,更不可能保持信号在相同的地方)。
你好,mladen,你能不能帮我修改一下里面的代码,使它能(归一化)有垂直刻度:最小为0,最大为100,中间点为50,而不是现在的0,但仍然保持和以前一样的信号?非常感谢您的帮助。
你可以使用这样一个函数:
.............................
如果你希望暂停时间不超过1天,请将 "24*60*60 "改为你所希望的。
PS:我在通话中使用了 "1 "作为神奇数字。用你真正的魔法数字代替它谢谢Mladen。我将检查一下
annbeea 你不能这么做。任何形式的归一化都会改变信号(它们不可能保持完全相同--尤其是你有3个值,保持信号在相同位置的机会就更少了)。
嗨 mladen
可能是我误用或误解了 "正常化 "这个词,是否有可能像通常出现的比例一样,将振荡试验的规模扩大,最小0,最大100,中间50?
我可以知道是T3还是RSI组件重绘还是两者都重绘吗?非常感谢你的帮助。
嗳呵
我们谈论的是同一件事:将数值转换为最小和最大,总是会使原始数值 "变形"。我们可以称其为规范化或标准化或任何我们想要的东西,但我们付出的代价是失去了原始值的关联性。而当它们被 "变形 "时,信号将发生在完全不同的地方。
就rsi试验指标而言:t3部分将重新绘制。这是由于以前的t3计算步骤是如何处理的。第一次计算(当你把它放在图表上,改变时间框架或符号时,......),它将计算OK。但在下一个tick上,当你计算下一个tick时,变量e1到e6将具有当前(第0个)bar的值,它们至少应该具有第一个bar的值(取决于 "限制 "变量)。这是一个错误,因为下一个刻度线的计算继承了前一步的计算值,这将导致每个新刻度线的误差越来越大,这就是为什么我建议你使用另一个指标作为基础,因为在那个指标中这些问题已经解决了。
嗨 mladen
可能是我误用或误解了 "正常化 "这个词,是否可以像通常出现的比例那样,将震荡试验的比例调整到最小0,最大100,中间50?
我可以知道是T3还是RSI组件重绘还是两者都重绘吗?非常感谢您的帮助。谢谢Mladen。我将检查它
像往常一样工作,谢谢Mladen,你是个明星。