任何菜鸟问题,为了不给论坛添乱。专业人士,不要路过。没有你就无处可去 - 6. - 页 110 1...103104105106107108109110111112113114115116117...1178 新评论 webip 2013.08.30 21:24 #1091 artmedia70: 在这个函数中,你在哪里读到最后一次平仓的StopLoss?那里什么都没有。 它就在这里。直接指向。 OrderSelect(1,SELECT_BY_POS,MODE_HISTORY); take=OrderTakeProfit(); ts=take; webip 2013.08.30 21:26 #1092 borilunad: 睡觉吧,各位!早晨总是更好的!现在是凌晨1点!晚安!而阿特姆已经睡下了! 我像你这样做已经五天了,我已经开始在晚上思考。晚上好。 webip 2013.08.30 21:33 #1093 哦!错误130出现在日志中。这些是错误的站点,不是吗?但新的止损是1.3282。目前的止损是1.3275(这也是订单的开盘价),目前的报价是1.3297。错在哪里呢? Yuriy Svetlov 2013.08.30 22:19 #1094 你好。为什么在预定义的变量"点 "中,在策略测试器的日志中没有定义零,最后是整数? Пример: static double lBUY; lBUY=100*Point; //Так-же можно написать 10,20,180 или 520. if(lBUY==0.01) { Alert("НУЛИ НЕ ПИШУТСЯ В КОНЦЕ Point ",lBUY); } Viktar Dzemikhau 2013.08.31 08:36 #1095 artmedia70: 我是一个西伯利亚人,是的。克拉斯诺亚尔斯克附近。 Sibiryak,所以,几乎,zamlYak))。 Viktar Dzemikhau 2013.08.31 08:41 #1096 webip: 但是,我已经做了你正在做的事情五天,我已经开始在晚上思考。 如果是相反的情况,说谁在晚上不思考就更容易了。我也有同样的情况。此外,晚上根本就没有人打扰我。顺便说一下,我曾经读到过,比如说,大脑在晚上会思考得更好。就像科学家们发现了... Viktar Dzemikhau 2013.08.31 08:46 #1097 semiromid: 你好。 为什么在预定义的变量 "点 "中,在策略测试器的日志中没有定义零,最后是整数? Пример: static double lBUY; lBUY=100*Point; //Так-же можно написать 10,20,180 или 520. if(lBUY==0.01) { Alert("НУЛИ НЕ ПИШУТСЯ В КОНЦЕ Point ",lBUY); } 而阿勒特实际上输出的是什么? Trendy 2013.08.31 08:59 #1098 artmedia70: DoubleToStr(number,digit)是给你的 。 非常感谢您!我需要它来比较蜡烛的特性(更多,更少,等等),我把它拧上了--它很有效。只是不明白它是如何比较数据类型字符串的? 或者说双倍数到字符串并没有把数字翻译成字符串?:-D PS。它在指标中不起作用--只在脚本中起作用...当我调用High[i]时--我得到的只有小数点后4位。 我在写。 Alert ("doubletostr High = ", DoubleToStr(High[1],5)); if (DoubleToStr(High[2],5)>(DoubleToStr(High[3],5) ) { Alert ("More"); } 如果(DoubleToStr(High[2],5)<(DoubleToStr(High[3],5)) { Alert ("Smaller"); } 工作,它写出的结果有五位数,大/小数。问题是,在指标中,字符串数组并没有在图表上显示出来。因此......。 ......写作。 警报("归一化双倍高度=", NormalizeDouble(High[1],5))。 不起作用 - 结果是> 1,1234 我不理解开发商--他们为什么要把事情搞得这么复杂?为什么如果它在图表上显示这么多数字,就不会划出有五位数字的被调用函数?也许有一个简单的解决方案? Any rookie question, so 在 MQL4 中处理双精度浮点数 预测时间序列(第 2 部分):最小二乘支持向量机(LS-SVM) Viktar Dzemikhau 2013.08.31 09:09 #1099 我在纠结一个函数,如果最后一个市场 头寸被盈利平仓,则应返回True,如果没有亏损平仓则应返回False。如果此函数返回True,那么所有的头寸(包括挂牌和市场头寸)都被关闭。 以下是所得到的结果。 //+-------------------------------------------------------------------------------------+ //| Получаем состояние последней позиции (Открыта или закрыта) | //+-------------------------------------------------------------------------------------+ bool isCloseByTakeLastOpenPos(int delta) { datetime lastOrderCloseTime = 0, // Время закрытия последнего открытого ордера lastOOTHist = -1; // Время открытия последнего открытого ордера из истории for (int i=OrdersHistoryTotal()-1; i>=0; i--) { if (!OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) continue; if (OrderMagicNumber() != i_magic) continue; if (OrderSymbol() != Symbol()) continue; if (OrderType() > 1) continue; // Все удалённые отложки нас не интересуют.. if (lastOrderCloseTime < OrderCloseTime()) // Находим время закрытия.. { lastOrderCloseTime = OrderCloseTime(); // ..последней закрытой позиции в истории int j = i; } } if (OrderSelect(j, SELECT_BY_POS, MODE_HISTORY)) { if (OrderProfit() + OrderCommission() + OrderSwap() <= 0) return (false); if (MathAbs(OrderProfit() - OrderClosePrice()) > delta * pt) return (false); else { lastOOTHist = OrderOpenTime(); Comment("FUNC isCloseByTakeLastOpenPos : lastOOTHist = ", lastOOTHist); } } else { // Comment("FUNC isCloseByTakeLastOpenPos : не удалось выбрать ордер в истории"); Print("FUNC isCloseByTakeLastOpenPos : не удалось выбрать ордер в истории"); return(false); } for(int h=OrdersTotal()-1; h>=0; h--) { if (OrderSelect(h, SELECT_BY_POS, MODE_TRADES)) { if (OrderMagicNumber() != i_magic) continue; if (OrderSymbol() != Symbol()) continue; if (OrderType() > 1) continue; if (lastOOTHist < OrderOpenTime()) return(false); // Выбранная рыночная позиция открыта позже закрытой по тейку } else {Print("FUNC isCloseByTakeLastOpenPos : не удалось выбрать рыночный ордер");return(false);} } return (true); } 上面的Artyom 建议我在哪里有一个错误。我为自己重写了它。这还不是最后的变体,但是......已经很清楚了。在我运行专家顾问后,我马上注意到,剩余的头寸没有关闭,而且根本没有被关闭。我开始挖出原因是什么。我推荐了几个功能,发现它就在这个区块中。 if (OrderSelect(j, SELECT_BY_POS, MODE_HISTORY)) { if (OrderProfit() + OrderCommission() + OrderSwap() <= 0) return (false); if (MathAbs(OrderProfit() - OrderClosePrice()) > delta * pt) return (false); else { lastOOTHist = OrderOpenTime(); Comment("FUNC isCloseByTakeLastOpenPos : lastOOTHist = ", lastOOTHist); } } else { Comment("FUNC isCloseByTakeLastOpenPos : не удалось выбрать ордер в истории"); Print("FUNC isCloseByTakeLastOpenPos : не удалось выбрать ордер в истории"); return(false); } 确切地说,该评论一直被触发。 Comment("FUNC isCloseByTakeLastOpenPos : не удалось выбрать ордер в истории"); 我把它注释出来,继续开车。注意到这个评论。 Comment("FUNC isCloseByTakeLastOpenPos : lastOOTHist = ", lastOOTHist); 完全不触发,即使最后有一个关闭的位置 也不触发。会有什么问题呢? 我的想法,尽管我可能是错的......也许你需要把这块 if (OrderSelect(j, SELECT_BY_POS, MODE_HISTORY)) { if (OrderProfit() + OrderCommission() + OrderSwap() <= 0) return (false); if (MathAbs(OrderProfit() - OrderClosePrice()) > delta * pt) return (false); else { lastOOTHist = OrderOpenTime(); Comment("FUNC isCloseByTakeLastOpenPos : lastOOTHist = ", lastOOTHist); } } else { // Comment("FUNC isCloseByTakeLastOpenPos : не удалось выбрать ордер в истории"); Print("FUNC isCloseByTakeLastOpenPos : не удалось выбрать ордер в истории"); return(false); } 把它也放在for 循环中?否则,谁知道溢出的水会流向什么方向。j 变量将包含位置的索引号,而且没有明确规定搜索的方向。 Artyom Trishkin 2013.08.31 09:38 #1100 hoz: 我在纠结一个函数,如果最后一个市场 头寸被盈利平仓,则应返回True,如果没有亏损平仓则应返回False。如果此函数返回True,那么所有的头寸(包括挂牌和市场头寸)都被关闭。 以下是所得到的结果。 上面的Artyom 建议我在哪里有一个错误。我为自己重写了它。这还不是最终的变体,但是......已经很清楚了。在我运行专家顾问后,我马上注意到,剩余的头寸没有关闭,而且根本没有被关闭。我开始挖出原因是什么。我推荐了几个功能,并意识到原因就在这块。 确切地说,该评论一直被触发。 我把它注释出来,继续开车。注意到这个评论。 完全不触发,即使最后有一个关闭的位置也不触发。会有什么问题呢? 我的想法,尽管我可能是错的......也许你需要把这块 把它也放在for 循环中?否则,谁知道溢出的水会流向什么方向。j 变量将包含位置的索引号,而且没有明确规定搜索的方向。 变量j必须在函数开始时明确初始化为一个负值。试试吧。我还没有进一步看。 1...103104105106107108109110111112113114115116117...1178 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
在这个函数中,你在哪里读到最后一次平仓的StopLoss?那里什么都没有。
睡觉吧,各位!早晨总是更好的!现在是凌晨1点!晚安!而阿特姆已经睡下了!
我像你这样做已经五天了,我已经开始在晚上思考。晚上好。
你好。为什么在预定义的变量"点 "中,在策略测试器的日志中没有定义零,最后是整数?
Пример:
static double lBUY;
lBUY=100*Point; //Так-же можно написать 10,20,180 или 520.
if(lBUY==0.01)
{
Alert("НУЛИ НЕ ПИШУТСЯ В КОНЦЕ Point ",lBUY);
}
我是一个西伯利亚人,是的。克拉斯诺亚尔斯克附近。
Sibiryak,所以,几乎,zamlYak))。
但是,我已经做了你正在做的事情五天,我已经开始在晚上思考。
如果是相反的情况,说谁在晚上不思考就更容易了。我也有同样的情况。此外,晚上根本就没有人打扰我。顺便说一下,我曾经读到过,比如说,大脑在晚上会思考得更好。就像科学家们发现了...
你好。 为什么在预定义的变量 "点 "中,在策略测试器的日志中没有定义零,最后是整数?
Пример:
static double lBUY;
lBUY=100*Point; //Так-же можно написать 10,20,180 или 520.
if(lBUY==0.01)
{
Alert("НУЛИ НЕ ПИШУТСЯ В КОНЦЕ Point ",lBUY);
}
而阿勒特实际上输出的是什么?
DoubleToStr(number,digit)是给你的 。
非常感谢您!我需要它来比较蜡烛的特性(更多,更少,等等),我把它拧上了--它很有效。只是不明白它是如何比较数据类型字符串的? 或者说双倍数到字符串并没有把数字翻译成字符串?:-D
PS。它在指标中不起作用--只在脚本中起作用...当我调用High[i]时--我得到的只有小数点后4位。
我在写。
Alert ("doubletostr High = ", DoubleToStr(High[1],5));
if (DoubleToStr(High[2],5)>(DoubleToStr(High[3],5) )
{
Alert ("More");
}
如果(DoubleToStr(High[2],5)<(DoubleToStr(High[3],5))
{
Alert ("Smaller");
}
工作,它写出的结果有五位数,大/小数。问题是,在指标中,字符串数组并没有在图表上显示出来。因此......。
......写作。
警报("归一化双倍高度=", NormalizeDouble(High[1],5))。
不起作用 - 结果是> 1,1234
我不理解开发商--他们为什么要把事情搞得这么复杂?为什么如果它在图表上显示这么多数字,就不会划出有五位数字的被调用函数?也许有一个简单的解决方案?
我在纠结一个函数,如果最后一个市场 头寸被盈利平仓,则应返回True,如果没有亏损平仓则应返回False。如果此函数返回True,那么所有的头寸(包括挂牌和市场头寸)都被关闭。
以下是所得到的结果。
上面的Artyom 建议我在哪里有一个错误。我为自己重写了它。这还不是最后的变体,但是......已经很清楚了。在我运行专家顾问后,我马上注意到,剩余的头寸没有关闭,而且根本没有被关闭。我开始挖出原因是什么。我推荐了几个功能,发现它就在这个区块中。
确切地说,该评论一直被触发。
我把它注释出来,继续开车。注意到这个评论。
完全不触发,即使最后有一个关闭的位置 也不触发。会有什么问题呢?
我的想法,尽管我可能是错的......也许你需要把这块
把它也放在for 循环中?否则,谁知道溢出的水会流向什么方向。j 变量将包含位置的索引号,而且没有明确规定搜索的方向。
我在纠结一个函数,如果最后一个市场 头寸被盈利平仓,则应返回True,如果没有亏损平仓则应返回False。如果此函数返回True,那么所有的头寸(包括挂牌和市场头寸)都被关闭。
以下是所得到的结果。
上面的Artyom 建议我在哪里有一个错误。我为自己重写了它。这还不是最终的变体,但是......已经很清楚了。在我运行专家顾问后,我马上注意到,剩余的头寸没有关闭,而且根本没有被关闭。我开始挖出原因是什么。我推荐了几个功能,并意识到原因就在这块。
确切地说,该评论一直被触发。
我把它注释出来,继续开车。注意到这个评论。
完全不触发,即使最后有一个关闭的位置也不触发。会有什么问题呢?
我的想法,尽管我可能是错的......也许你需要把这块
把它也放在for 循环中?否则,谁知道溢出的水会流向什么方向。j 变量将包含位置的索引号,而且没有明确规定搜索的方向。