[存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要路过。没有你就无处可去 - 3. - 页 262 1...255256257258259260261262263264265266267268269...652 新评论 PapaYozh 2011.10.14 07:00 #2611 Valdemar: 先生们,你们能告诉我,当我把这个计时功能插入我的EA代码中时,我在哪里犯了错误? 编译器只是用错误来淹没我。 在你在另一个函数内声明一个函数的地方。 int init() { bool isTradeTimeInt (int hb=05,int mb=50,int he=23,int me=00) { Pyxlik 2011.10.14 07:00 #2612 Roll: 参见指定函数的第10个参数。设为0。 OrderSend(g_symbol_284, OP_BUY, Lots, g_ask_528 - gi_164 * g_point_400, Slippage, l_price_40, l_price_32, 0, g_magic_112, "Newest", MediumBlue) 。 发现这一行,该怎么改? Виктор 2011.10.14 07:23 #2613 Starting: 使用方法很简单--我运行这个脚本... 这正是你需要证明的。也就是说,你需要有代码 来确定正确的顺序。这样的情况有几十种,你不可能为每一种情况都保存一个特殊的函数来简化代码。它必须为每一种情况而写。 你可以在这里找到类似功能的例子。 来自KimIV的有用功能。 如果现成的不合适,你可以通过类比现有的建立自己的。 Vitaliy Andreischev 2011.10.14 07:30 #2614 Bicus: 这里的计算是基于价格的惯性。即第一笔订单的止损被触发,第二笔订单处于盈利状态,价值略低于损失。如果价格再向同一方向移动一些,那么是的,我们可能在总的利润。 但是,我认为,这种策略不值得一咬牙。 是的,没错!猜测它是否会向有利可图的方向再走几个点 :) [删除] 2011.10.14 07:50 #2615 granit77: 这正是我们所要证明的。换句话说,你需要一个 能找到必要顺序的代码。这样的情况有几十种,我们不可能为每一种情况提供一个特殊的函数来简化代码。它必须为每一种情况而写。 你可以在这里找到类似功能的例子。 来自KimIV的有用功能。 如果现成的不合适,你可以通过类比现有的建立自己的。 我想我没有完全明白这个道理。 断言1:每个代码,在挂单触发后,当访问该订单的开仓日期(在这种触发的时刻已经成为可销售的),将获得等于挂单下达日期的开仓日期--这就是OrderOpenTime()函数的工作方式。 主张2:如果没有一个不断监测账户上订单状态的专家顾问,你就无法记住挂单触发的确切时间。 可能的解决方案1。我们可以尝试从设置挂单的日期运行到当前日期,并注意开盘价和触发水平的首次交叉时间。 这或多或少会有准确的时间,但有一个很大的减项:价差。由于我们没有在历史中记录点差(例如,我没有从Dukas中获取带有点差的tick历史,因为我没有在Dukas中交易,我们需要收集和记录),订单可能在更早的时候触发,当价格几乎触及开仓水平但没有越过它时,订单由于点差扩大而被打开,而不是后来,当我们真正看到价格越过挂单设定线时。 最有可能的解决方案是创建一个专家顾问,把它放在图表上并监控账户中的订单。我不想这样做,由于一些原因,还有与EA操作中的休息期间可能出现的问题有关的缺点。 你所提到的这些功能。你提供了一个指向OrderOpenTime()函数的链接。对于延迟的订单,它将是其创建的日期,而不是其触发的日期。因此,现有的功能并不适合。而且没有办法将它们结合起来,因为它们仍然引用OrderOpenTime()来表示订单的开启日期。 Vladimir Paukas 2011.10.14 08:09 #2616 Pyxlik2009:OrderSend(g_symbol_284, OP_BUY, Lots, g_ask_528 - gi_164 * g_point_400, Slippage, l_price_40, l_price_32, 0, g_magic_112, "Newest", MediumBlue) 。发现这一行,该怎么改?打印 参数并查看 ilunga 2011.10.14 08:44 #2617 Pyxlik2009:OrderSend(g_symbol_284, OP_BUY, Lots, g_ask_528 - gi_164 * g_point_400, Slippage, l_price_40, l_price_32, 0, g_magic_112, "Newest", MediumBlue) 。发现这一行,该怎么改? 你有第十个参数"最新",而你需要的数字是订单 的到期时间。 Pyxlik 2011.10.14 09:41 #2618 这里是整条线 if (!(AccountFreeMarginCheck(g_symbol_284, OP_BUY, Lots) <= 0.0 || GetLastError() == 134/* NOT_ENOUGH_MONEY */)) g_ticket_352 = OrderSend(g_symbol_284, OP_BUY, Lots, g_ask_528 - gi_164 * g_point_400, Slippage, l_price_40, l_price_32, 0, g_magic_112, "Newest RX-1", MediumBlue); ilunga 2011.10.14 10:16 #2619 Pyxlik2009:这里是整条线再一次。 文件。 intOrderSend( string symbol, int cmd, double volume, double price, int slippage, double stoploss, double takeprofit, string comment=NULL, int magic=0,datetime expiration=0, color arrow_color=CLR_NONE) 你在 "最新 " 字符串中的第十个参数 不是一个数字 。 这就是为什么有一个错误 Valdemar 2011.10.14 11:34 #2620 PapaYozh: 你在另一个函数中声明了一个函数。 int init() { bool isTradeTimeInt (int hb=05,int mb=50,int he=23,int me=00) { 谢谢你的反馈,亲爱的PapaYozh,但是我已经把这个函数插入了int start(),但是这并没有改变编译器的结果。 int start() { int H,M,Ticket; double Max,Min, Max1,Min1, TP, Total; bool isTradeTimeInt(int hb=07,int mb=55,int he=23,int me=00) { datetime db, de; // Время начала и окончания работы int hc; // Часы текущего времени торгового сервера db=StrToTime(TimeToStr(TimeCurrent(), TIME_MINUTES)+" "+hb+":"+mb); de=StrToTime(TimeToStr(TimeCurrent(), TIME_MINUTES)+" "+he+":"+me); hc=TimeHour(TimeCurrent()); if (db>=de) { if (hc>=he) de+=24*60*60; else db-=24*60*60; if (TimeCurrent()>=db && TimeCurrent()<=de) return(True); else return(False); } H=Hour(); M=Minute(); Total=OrdersTotal(); if(Total==0) { if(isTradeTimeInt==true) { Max=High[iHighest(Symbol(),PERIOD_M5,MODE_HIGH,12,0)]; Min=Low[iLowest(Symbol(),PERIOD_M5,MODE_LOW,12,0)]; 最后,编译器向我显示了这些错误,我认为它指的是错误的变量定义? 我对任何不便、不理解表示歉意,毕竟刚开始在这样一个不容易的事情上获得经验,我认为要感谢这个论坛和在这里回应的人,继续发展和提高自己的技能,谢谢大家。 1...255256257258259260261262263264265266267268269...652 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
先生们,你们能告诉我,当我把这个计时功能插入我的EA代码中时,我在哪里犯了错误?
编译器只是用错误来淹没我。
在你在另一个函数内声明一个函数的地方。
参见指定函数的第10个参数。设为0。
OrderSend(g_symbol_284, OP_BUY, Lots, g_ask_528 - gi_164 * g_point_400, Slippage, l_price_40, l_price_32, 0, g_magic_112, "Newest", MediumBlue) 。
发现这一行,该怎么改?
使用方法很简单--我运行这个脚本...
你可以在这里找到类似功能的例子。 来自KimIV的有用功能。
如果现成的不合适,你可以通过类比现有的建立自己的。
这里的计算是基于价格的惯性。即第一笔订单的止损被触发,第二笔订单处于盈利状态,价值略低于损失。如果价格再向同一方向移动一些,那么是的,我们可能在总的利润。
但是,我认为,这种策略不值得一咬牙。
这正是我们所要证明的。换句话说,你需要一个 能找到必要顺序的代码。这样的情况有几十种,我们不可能为每一种情况提供一个特殊的函数来简化代码。它必须为每一种情况而写。
你可以在这里找到类似功能的例子。 来自KimIV的有用功能。
如果现成的不合适,你可以通过类比现有的建立自己的。
我想我没有完全明白这个道理。
断言1:每个代码,在挂单触发后,当访问该订单的开仓日期(在这种触发的时刻已经成为可销售的),将获得等于挂单下达日期的开仓日期--这就是OrderOpenTime()函数的工作方式。
主张2:如果没有一个不断监测账户上订单状态的专家顾问,你就无法记住挂单触发的确切时间。
可能的解决方案1。我们可以尝试从设置挂单的日期运行到当前日期,并注意开盘价和触发水平的首次交叉时间。
这或多或少会有准确的时间,但有一个很大的减项:价差。由于我们没有在历史中记录点差(例如,我没有从Dukas中获取带有点差的tick历史,因为我没有在Dukas中交易,我们需要收集和记录),订单可能在更早的时候触发,当价格几乎触及开仓水平但没有越过它时,订单由于点差扩大而被打开,而不是后来,当我们真正看到价格越过挂单设定线时。
最有可能的解决方案是创建一个专家顾问,把它放在图表上并监控账户中的订单。我不想这样做,由于一些原因,还有与EA操作中的休息期间可能出现的问题有关的缺点。
你所提到的这些功能。你提供了一个指向OrderOpenTime()函数的链接。对于延迟的订单,它将是其创建的日期,而不是其触发的日期。因此,现有的功能并不适合。而且没有办法将它们结合起来,因为它们仍然引用OrderOpenTime()来表示订单的开启日期。
OrderSend(g_symbol_284, OP_BUY, Lots, g_ask_528 - gi_164 * g_point_400, Slippage, l_price_40, l_price_32, 0, g_magic_112, "Newest", MediumBlue) 。
发现这一行,该怎么改?
OrderSend(g_symbol_284, OP_BUY, Lots, g_ask_528 - gi_164 * g_point_400, Slippage, l_price_40, l_price_32, 0, g_magic_112, "Newest", MediumBlue) 。
发现这一行,该怎么改?
这里是整条线
这里是整条线
再一次。
文件。
intOrderSend( string symbol, int cmd, double volume, double price, int slippage, double stoploss, double takeprofit, string comment=NULL, int magic=0,datetime expiration=0, color arrow_color=CLR_NONE)
你在 "最新 " 字符串中的第十个参数 不是一个数字 。 这就是为什么有一个错误
PapaYozh:
你在另一个函数中声明了一个函数。
最后,编译器向我显示了这些错误,我认为它指的是错误的变量定义?谢谢你的反馈,亲爱的PapaYozh,但是我已经把这个函数插入了int start(),但是这并没有改变编译器的结果。
我对任何不便、不理解表示歉意,毕竟刚开始在这样一个不容易的事情上获得经验,我认为要感谢这个论坛和在这里回应的人,继续发展和提高自己的技能,谢谢大家。