[存档!]任何菜鸟问题,为了不使论坛变得混乱。专业人士,不要路过。没有你,哪里都不能去 - 4. - 页 510 1...503504505506507508509510511512513514515516517...631 新评论 Boris 2012.11.15 14:28 #5091 Dimka-novitsek: 晚上好!我被难住了。我在测试器中开了两个订单,一个是有takeprofit的,另一个根本没有。 他们都是一次就拿下了利润!!!! 我在测试器中已经经过这个地方八次了。我无法理解! 看起来像一个克隆的替身!在演示中尝试!以后再告诉我们吧! 因此,请看,SL触发的地方是损失,TP触发的地方是利润。这就对了! 看看日志上怎么说的?所以,要一步一步地追踪所有的行动! 只有在测试器中才会有双打在演示上,更有甚者,在Real上会有1个,而第二个则不会通过,会有很多的错误!"。 TarasBY 2012.11.15 15:32 #5092 hoz: 问题是这样的。如果我想下一个限价挂单,它将在日线开盘时准确触发,即TF D1上的柱子。我应该如何实施?我不太理解这种逻辑。毕竟,我需要的不是一个简单的限制器,而是一个能在某一特定时间,即在一天中的一个新柱状体 开盘时精确工作的限制器。 首先,用术语来决定--"将在某个时间准确触发的限价"--"限价触发 "是什么意思? 你越是解释这个神奇的过程--就越容易在现实生活中实施它。 以防万一,阅读一下挂单 的内容。 TarasBY 2012.11.15 15:35 #5093 Dimka-novitsek:晚上好!我被难住了。我在测试器中开了两个订单,一个是有takeprofit的,另一个根本没有。他们都是一次就拿下了利润!!!!我在测试器中已经经过这个地方八次了。我无法理解! 也许你可以分享一个秘密--"为什么要创建一个公开订单的克隆?你不能用较大的手数开一个订单吗?;) Dimka-novitsek 2012.11.15 15:39 #5094 这是一种策略。我现在可能会把它截图下来。哦,我哥哥来了,我赶不上了。不过,这是一个奇怪的情况。 Swat 2012.11.15 16:17 #5095 像这样比较日期时间格式是否正确?datetime t=OrderCloseTime(); datetime t1=Time[1]; datetime t0=Time[0]; if(t1>=t&&t<t0){ p++; } Роман 2012.11.15 16:20 #5096 Dimka-novitsek: 这是一项战略。我现在可能会把它截图下来。哦,我哥哥来了,我赶不上了。这是个奇怪的情况。 当迪曼,你能使用个人的CAMPAIGN吗?)你在现实世界的一年中赚到钱了吗?这就像分配给你的START金额,不是吗?) Viktar Dzemikhau 2012.11.15 16:27 #5097 TarasBY: 首先,定义术语--"将在某一时刻准确触发的极限"--"极限被触发 "是什么意思?而你对这个神奇的过程给出的细节越多--在现实生活中实施起来就越容易。 是的,我说错了。我的意思是,基本上。如果这里很清楚的话,钟摆只放在价格上。下面是代码。//+------------------------------------------------------------------+ //| 2 Days.mq4 | //| hoz | //| | //+------------------------------------------------------------------+ #property copyright "hoz" #property link "" extern string A1 = "Объем сделки. Если i_lots = 0, то считается в процентах"; extern double i_lots = 0.1; extern string A2 = "Управление рисками"; extern double i_sl = 15, i_tp = 10; extern int slippage, price_b, price_a; extern string Z1 = "=== Прочие настройки ==="; extern string i_openOrderSound = "ok.wav"; extern int i_magicNumber = 400021; double firstBarClosed, secondBarClosed; // Идентификаторы типов сигналов #define SIGNAL_BUY 1 // Сигнал на покупку #define SIGNAL_SELL -1 // Сигнал на продажу #define SIGNAL_NO 0 // Нет сигнала #include <stderror.mqh> int init() { return(0); } //+------------------------------------------------------------------+ int deinit() { return(0); } //+------------------------------------------------------------------+ //+-------------------------------------------------------------------------------------+ //| Получение рыночных данных | //+-------------------------------------------------------------------------------------+ //FindOrders() //+-------------------------------------------------------------------------------------+ //| Получение рыночных данных | //+-------------------------------------------------------------------------------------+ void GetMarketInfo() { price_b = MarketInfo(Symbol(),MODE_BID); price_a = MarketInfo(Symbol(),MODE_ASK); } //+-------------------------------------------------------------------------------------+ //| Открытие позиций | //+-------------------------------------------------------------------------------------+ bool Trade(int signal, double& priceForBuy, double& priceForSell) { // FindOrders(); priceForBuy = NormalizeDouble(priceForBuy,Digits); priceForSell = NormalizeDouble(priceForSell,Digits); if(!IsTesting()) GetMarketInfo(); if (signal == SIGNAL_BUY) if (!OrderSend(Symbol(),OP_BUYLIMIT, i_lots,priceForBuy,slippage,i_sl,i_tp,"",i_magicNumber,3)) return(false); if (signal == SIGNAL_SELL) if (!OrderSend(Symbol(),OP_SELLLIMIT,i_lots,priceForSell,slippage,i_sl,i_tp,"",i_magicNumber,3)) return(false); return(true); } //+-------------------------------------------------------------------------------------+ //| Получение цены входа в покупку или в продажу | //+-------------------------------------------------------------------------------------+ double GetPriceToInput() { firstBarClosed = iClose(Symbol(),1440,2); secondBarClosed = iClose(Symbol(),1440,1); { double deltaForSell = (firstBarClosed - secondBarClosed)/2; double priceForSell = secondBarClosed - deltaForSell; return(priceForSell); } { double deltaForBuy = (secondBarClosed - firstBarClosed)/2; double priceForBuy = secondBarClosed + deltaForBuy; return(priceForBuy); } } //+-------------------------------------------------------------------------------------+ //| Генерация сигнала закрытия, покупки или продажи | //+-------------------------------------------------------------------------------------+ int GetSignal() { if(firstBarClosed > secondBarClosed) return(SIGNAL_BUY); if(firstBarClosed < secondBarClosed) return(SIGNAL_NO); } //+-------------------------------------------------------------------------------------+ //| Функция Start | //+-------------------------------------------------------------------------------------+ int start() { int signal = GetSignal(); if (signal != SIGNAL_NO) if(!Trade(signal, priceForBuy, priceForSell)) return(0); return(0); } 事实上,这个问题并不十分复杂。我在Trade(int signal, double& priceForBuy, double& priceForSell) 函数中传递了正式参数 priceForBuy 和priceForSell 。参数是由链接传递的。不是这样做的吗?这些功能是局部的,不是全局的。编译过程中发生了一个错误。'priceForBuy' - variable not defined E:\Insall'd soft's\Forex\Admiral Markets\experts\2 Days.mq4 (117, 25) 'priceForSell' - variable not defined E:\Insall'd soft's\Forex\Admiral Markets\experts\2 Days.mq4 (117, 38) 错误是从哪里来的?我已经在函数GetPriceToInput() 中定义了这些参数。 [删除] 2012.11.15 16:42 #5098 椒盐饼和后双的作用是什么(说实话,我不知道)? Роман 2012.11.15 16:43 #5099 YOUNGA:,椒盐卷饼和双份之后是什么呢?这是对想要通过引用传递参数的痴迷。:-) Viktar Dzemikhau 2012.11.15 16:45 #5100 Roman.:这是对想要通过引用传递参数的痴迷。:-) 还能怎样?同样的事情要计算100次? 1...503504505506507508509510511512513514515516517...631 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
晚上好!我被难住了。我在测试器中开了两个订单,一个是有takeprofit的,另一个根本没有。
他们都是一次就拿下了利润!!!!
我在测试器中已经经过这个地方八次了。我无法理解!
看起来像一个克隆的替身!在演示中尝试!以后再告诉我们吧!
因此,请看,SL触发的地方是损失,TP触发的地方是利润。这就对了!
看看日志上怎么说的?所以,要一步一步地追踪所有的行动!
只有在测试器中才会有双打在演示上,更有甚者,在Real上会有1个,而第二个则不会通过,会有很多的错误!"。
问题是这样的。如果我想下一个限价挂单,它将在日线开盘时准确触发,即TF D1上的柱子。我应该如何实施?我不太理解这种逻辑。毕竟,我需要的不是一个简单的限制器,而是一个能在某一特定时间,即在一天中的一个新柱状体 开盘时精确工作的限制器。
晚上好!我被难住了。我在测试器中开了两个订单,一个是有takeprofit的,另一个根本没有。
他们都是一次就拿下了利润!!!!
我在测试器中已经经过这个地方八次了。我无法理解!
这是一项战略。我现在可能会把它截图下来。哦,我哥哥来了,我赶不上了。这是个奇怪的情况。
当迪曼,你能使用个人的CAMPAIGN吗?)
你在现实世界的一年中赚到钱了吗?这就像分配给你的START金额,不是吗?)
首先,定义术语--"将在某一时刻准确触发的极限"--"极限被触发 "是什么意思?而你对这个神奇的过程给出的细节越多--在现实生活中实施起来就越容易。
是的,我说错了。我的意思是,基本上。如果这里很清楚的话,钟摆只放在价格上。
下面是代码。
事实上,这个问题并不十分复杂。我在Trade(int signal, double& priceForBuy, double& priceForSell) 函数中传递了正式参数 priceForBuy 和priceForSell 。参数是由链接传递的。不是这样做的吗?这些功能是局部的,不是全局的。
编译过程中发生了一个错误。
错误是从哪里来的?我已经在函数GetPriceToInput() 中定义了这些参数。
,椒盐卷饼和双份之后是什么呢?
这是对想要通过引用传递参数的痴迷。:-)
这是对想要通过引用传递参数的痴迷。:-)
还能怎样?同样的事情要计算100次?