真实账户上的MetaTrader 5 - 页 2 12345678 新评论 Sergey Gritsay 2010.11.23 11:30 #11 IgorM:我指的是价格,而不是SL或TP? 还有,服务器应该在什么价格为我打开市场订单,是按它给我的价格还是按我想要的价格?为什么我不应该向服务器发送正价差的价格?)WZZ: USDJPY : 82.49 ; 82.510000000001 ; 82.49 - 也许82.55一次 ?下面是一个发送带有规范化价格的请求的例子//+------------------------------------------------------------------+ //| Функция открытия ордеров | //+------------------------------------------------------------------+ void OpenOpders(string sym,ENUM_ORDER_TYPE type) { int n=0; bool res=true; while(res) { n++; Alert(n," - Попытка открыть ордер: ",TypeToStr(type)," на ",sym,", Лот - ",Lots); double Bid=SymbolInfoDouble(sym,SYMBOL_BID); double Ask=SymbolInfoDouble(sym,SYMBOL_ASK); int digit=(int)SymbolInfoInteger(sym,SYMBOL_DIGITS); double price=0.0; if(type==ORDER_TYPE_BUY)price=NormalizeDouble(Ask,digit); else if(type==ORDER_TYPE_SELL)price=NormalizeDouble(Bid,digit); request.action = TRADE_ACTION_DEAL; request.symbol = sym; request.volume = Lots; request.price = price; request.deviation = Slip; request.type = type; request.type_filling = ORDER_FILLING_AON; OrderSend(request,result); switch(Fun_Error(result.retcode)) { case 0:res=false;break; case 1:res=true;break; case 2:res=false;break; } } } //+------------------------------------------------------------------+ //| Функция обработки ошибок | //+------------------------------------------------------------------+ int Fun_Error(int Error) { switch(Error) { case 10004: Alert("Реквота");return(1); case 10006: Alert("Запрос отвергнут");Sleep(3000);return(1); case 10007: Alert("Запрос отменен трейдером");Work=false;return(0); case 10008: Alert("Ордер размещен");return(2); case 10009: Alert("Заявка выполнена");return(2); case 10010: Alert("Заявка выполнена частично");return(2); case 10011: Alert("Ошибка обработки запроса");return(1); case 10012: Alert("Запрос отменен по истечению времени");return(1); case 10013: Alert("Неправильный запрос");Work=false;return(0); case 10014: Alert("Неправильный объем в запросе");Work=false;return(0); case 10015: Alert("Неправильная цена в запросе");Work=false;return(0); case 10016: Alert("Неправильные стопы в запросе");Work=false;return(0); case 10017: Alert("Торговля запрещена");Work=false;return(0); case 10018: Alert("Рынок закрыт");Work=false;return(0); case 10019: Alert("Нет достаточных денежных средств для выполнения запроса");Work=false;return(0); case 10020: Alert("Цены изменились");return(1); case 10021: Alert("Отсутствуют котировки для обработки запроса");Sleep(3000);return(1); case 10022: Alert("Неверная дата истечения ордера в запросе");Work=false;return(0); case 10023: Alert("Состояние ордера изменилось");return(2); case 10024: Alert("Слишком частые запросы");Work=false;return(0); case 10025: Alert("В запросе нет изменений");Sleep(3000);return(1); case 10026: Alert("Автотрейдинг запрещен сервером");Work=false;return(0); case 10027: Alert("Автотрейдинг запрещен клиентским терминалом");Work=false;return(0); case 10028: Alert("Запрос заблокирован для обработки");return(2); case 10029: Alert("Ордер или позиция заморожены");return(2); case 10030: Alert("Указан неподдерживаемый тип исполнения ордера по остатку");Work=false;return(0); case 10031: Alert("Нет соединения с торговым сервером");Sleep(3000);return(1); case 10032: Alert("Операция разрешена только для реальных счетов");Work=false;return(0); case 10033: Alert("Достигнут лимит на количество отложенных ордеров");return(2); case 10034: Alert("Достигнут лимит на объем ордеров и позиций для данного символа");return(2); default: Alert("Ошибка № - ",Error);Work=false;return(0); } } //+------------------------------------------------------------------+ //| Функция преоброзования типа ордера в строку | //+------------------------------------------------------------------+ string TypeToStr(ENUM_ORDER_TYPE type) { switch(type) { case ORDER_TYPE_BUY: return("BUY"); case ORDER_TYPE_SELL: return("SELL"); } return(""); } Igor Makanu 2010.11.23 11:35 #12 Renat: 也就是说,"平台受潮 "的论点没有得到任何证实。我从来没有提到过平台的潮湿性 - 重新阅读我的帖子我已经就这个问题发表了我的意见--如果你认为它们没有证据,那就随它们去吧,但我认为你们公司是为MT5平台的经纪人销售软件的。sergey1294:下面是一个发送带有规范化价格的请求的例子谢谢,但我对交易和价格的想法略有不同,我想在82.47,82.4599999999,82.47的价格上开一个订单,尝试正常化。 我不确定服务器 "发明 "了一个82.46的价格,因为这样的价格并没有记录在它的日志中,如果它不是市场价格--我不需要它--让它留在服务器上,不要在我的日志中出现错误。 Renat Fatkhullin 2010.11.23 11:46 #13 IgorM:我从来没有提到过平台的潮湿性 - 重新阅读我的帖子我已经就这个问题发表了我的意见--如果你认为他们没有证据,那就这样吧,但我认为你们公司是为MT5平台的经纪人销售软件。sps,但我对交易的想法略有不同,我想在这个价格上开立一个订单,尝试将82.47,82.4599999999,82.47正常化。我不确定服务器 "发明 "了一个82.46的价格,因为这样的价格不在他的日志中,如果这个价格不是市场价格--我不需要它--让它留在服务器上,不要在我的日志中出现错误。不幸的是,你不知道实数的基本算术和它们在计算机中的表现。这是你对 "非正常化 "价格误解的根源。82.45999999(9)是82.46的双倍表示。 Sergey Gritsay 2010.11.23 11:46 #14 IgorM:我从来没有提到过平台的潮湿性 - 重新阅读我的帖子我已经就这个问题发表了我的意见--如果你认为他们没有证据,那就这样吧,但我认为你们公司是为MT5平台的经纪人销售软件。sps,但我对交易的想法略有不同,我想在这个价格上开立一个订单,尝试将82.47,82.4599999999,82.47正常化。我不确定服务器是否会 "发明 "一个82.46的价格,因为在它的日志中没有这样的价格,如果它不是市场价格,我不需要它--让它留在服务器上,不要在我的日志中出现错误。 你不太明白你的定价思路是什么,公认的价格有五位或四位小数,所以你需要把价格削减到小数点后那一位。 Igor Makanu 2010.11.23 12:06 #15 Renat:不幸的是,你不知道实数的基本算术和它们在计算机中的表现。这是你对 "非正常化 "价格误解的根源。82.459999(9)是82.46的双重代表。好的,我会找时间重读可能已经忘记的材料,也就是说,这样的价格(82.459999(9))会被交易服务器接受,以打开市场订单?sergey1294 请注意开发人员给你的现成的例子和类,至少开发人员提供的CTrade类没有NormalizeDouble()函数,以及MQL5参考/交易函数/OrderSend中的例子。 如果我读了原始资料中的例子,我不会去发明和最初写错误的程序,在MT4参考资料中,OrderSend()的例子也没有包含价格正常化的内容。 Renat Fatkhullin 2010.11.23 12:14 #16 IgorM:好吧,我找时间重读一下可能已经被我遗忘的内容,也就是说,这样的价格(82.459999(9))会被交易服务器接受,以打开市场订单? 是的,如果它是tick流中正确的/现有的价格。sergey1294 请注意开发人员给你的现成的例子和类,至少开发人员提供的CTrade类没有NormalizeDouble()函数,以及MQL5参考/交易函数/OrderSend中的例子。如果我在源代码中读到了具体的例子,我就不会去发明和最初写错误的程序了如果你使用常规的买入价和卖出价来做交易,它们总是被规范化的。在发送交易指令之前,需要对计算的价格(如止损)进行规范化处理。标准的 CTrade 方法不会强行将订单的输入价格规范化,因为这是绝对不能接受的 - 你不能替代上面宣布的价格。 Igor Makanu 2010.11.23 12:22 #17 Renat: 是的,只要它是tick流中正确/存在的价格。如果你使用常规的买入和卖出进行交易,它们总是被规范化的。但在发送交易指令之前,计算出的价格(如止损)已经需要自己进行规范化处理。标准的CTrade方法不对强制传入的投标价格进行规范化处理,因为这是绝对不能接受的--你不能替代在更高层次上的价格。cp!不介意在MT5手册中多提几遍,这样就不会有误解,可以立即发送阅读帮助:)ZS: 我知道SL和TR,但我不记得或没有在帮助中读到过,也没有在论坛上搞清楚。 Renat Fatkhullin 2010.11.23 12:30 #18 IgorM:cp!如果你能在MT5手册中多次提到这一点,这样就不会有误解,可以直接送你去阅读手册:) 是的,我们正在不断升级文件,并增加澄清内容。 [删除] 2010.11.23 12:39 #19 IgorM:我一直在读这个论坛,经常被你的深刻和丰富的帖子惊呆了;)至于这个问题,我怀疑模拟账户的报价与微观现实不同,但模拟账户很多时候有非正常化的价格,强烈的运动--你不能通过他们打开或关闭订单,我希望看到一些订单,这样就不会责怪MT5了。至于味道和颜色,这是一种流行的智慧--非正常化的价格让一些人感到困扰,尽管我个人认为这不是一个大问题(因为我很久以前就使用挂单,这样的价格对我来说不是一个大问题)。但对我来说,问题是诸如OnTimer() 不愿意在测试器中 工作或其他类似的事情。但即使有了这些投入,当选择一个终端来交易美分账户(存款200美元)时,我个人将使我的选择倾向于MT5。具备目前所有的劣势! Renat Fatkhullin 2010.11.23 12:44 #20 Interesting:有些人对 "非正常化价格 "感到困扰,但我个人认为这不是一个大问题(因为我已经使用延迟很长时间了,这些价格对我来说不是什么大问题)。但对我来说,问题是诸如OnTimer() 不愿意在测试器中工作 或其他类似的事情。 这个错误是不成功的优化造成的,在第358次构建中已经得到纠正。 12345678 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
我指的是价格,而不是SL或TP? 还有,服务器应该在什么价格为我打开市场订单,是按它给我的价格还是按我想要的价格?
为什么我不应该向服务器发送正价差的价格?)
WZZ: USDJPY : 82.49 ; 82.510000000001 ; 82.49 - 也许82.55一次 ?
下面是一个发送带有规范化价格的请求的例子
也就是说,"平台受潮 "的论点没有得到任何证实。
我从来没有提到过平台的潮湿性 - 重新阅读我的帖子
我已经就这个问题发表了我的意见--如果你认为它们没有证据,那就随它们去吧,但我认为你们公司是为MT5平台的经纪人销售软件的。
下面是一个发送带有规范化价格的请求的例子
谢谢,但我对交易和价格的想法略有不同,我想在82.47,82.4599999999,82.47的价格上开一个订单,尝试正常化。
我不确定服务器 "发明 "了一个82.46的价格,因为这样的价格并没有记录在它的日志中,如果它不是市场价格--我不需要它--让它留在服务器上,不要在我的日志中出现错误。
我从来没有提到过平台的潮湿性 - 重新阅读我的帖子
我已经就这个问题发表了我的意见--如果你认为他们没有证据,那就这样吧,但我认为你们公司是为MT5平台的经纪人销售软件。
sps,但我对交易的想法略有不同,我想在这个价格上开立一个订单,尝试将82.47,82.4599999999,82.47正常化。
我不确定服务器 "发明 "了一个82.46的价格,因为这样的价格不在他的日志中,如果这个价格不是市场价格--我不需要它--让它留在服务器上,不要在我的日志中出现错误。
不幸的是,你不知道实数的基本算术和它们在计算机中的表现。这是你对 "非正常化 "价格误解的根源。
82.45999999(9)是82.46的双倍表示。
我从来没有提到过平台的潮湿性 - 重新阅读我的帖子
我已经就这个问题发表了我的意见--如果你认为他们没有证据,那就这样吧,但我认为你们公司是为MT5平台的经纪人销售软件。
sps,但我对交易的想法略有不同,我想在这个价格上开立一个订单,尝试将82.47,82.4599999999,82.47正常化。
我不确定服务器是否会 "发明 "一个82.46的价格,因为在它的日志中没有这样的价格,如果它不是市场价格,我不需要它--让它留在服务器上,不要在我的日志中出现错误。
不幸的是,你不知道实数的基本算术和它们在计算机中的表现。这是你对 "非正常化 "价格误解的根源。
82.459999(9)是82.46的双重代表。
好的,我会找时间重读可能已经忘记的材料,也就是说,这样的价格(82.459999(9))会被交易服务器接受,以打开市场订单?
sergey1294 请注意开发人员给你的现成的例子和类,至少开发人员提供的CTrade类没有NormalizeDouble()函数,以及MQL5参考/交易函数/OrderSend中的例子。
如果我读了原始资料中的例子,我不会去发明和最初写错误的程序,在MT4参考资料中,OrderSend()的例子也没有包含价格正常化的内容。
好吧,我找时间重读一下可能已经被我遗忘的内容,也就是说,这样的价格(82.459999(9))会被交易服务器接受,以打开市场订单?
sergey1294 请注意开发人员给你的现成的例子和类,至少开发人员提供的CTrade类没有NormalizeDouble()函数,以及MQL5参考/交易函数/OrderSend中的例子。
如果我在源代码中读到了具体的例子,我就不会去发明和最初写错误的程序了
如果你使用常规的买入价和卖出价来做交易,它们总是被规范化的。在发送交易指令之前,需要对计算的价格(如止损)进行规范化处理。
标准的 CTrade 方法不会强行将订单的输入价格规范化,因为这是绝对不能接受的 - 你不能替代上面宣布的价格。
是的,只要它是tick流中正确/存在的价格。
如果你使用常规的买入和卖出进行交易,它们总是被规范化的。但在发送交易指令之前,计算出的价格(如止损)已经需要自己进行规范化处理。
标准的CTrade方法不对强制传入的投标价格进行规范化处理,因为这是绝对不能接受的--你不能替代在更高层次上的价格。
cp!不介意在MT5手册中多提几遍,这样就不会有误解,可以立即发送阅读帮助:)
ZS: 我知道SL和TR,但我不记得或没有在帮助中读到过,也没有在论坛上搞清楚。
cp!如果你能在MT5手册中多次提到这一点,这样就不会有误解,可以直接送你去阅读手册:)
我一直在读这个论坛,经常被你的深刻和丰富的帖子惊呆了;)
至于这个问题,我怀疑模拟账户的报价与微观现实不同,但模拟账户很多时候有非正常化的价格,强烈的运动--你不能通过他们打开或关闭订单,我希望看到一些订单,这样就不会责怪MT5了。
至于味道和颜色,这是一种流行的智慧--非正常化的价格让一些人感到困扰,尽管我个人认为这不是一个大问题(因为我很久以前就使用挂单,这样的价格对我来说不是一个大问题)。但对我来说,问题是诸如OnTimer() 不愿意在测试器中 工作或其他类似的事情。
但即使有了这些投入,当选择一个终端来交易美分账户(存款200美元)时,我个人将使我的选择倾向于MT5。
具备目前所有的劣势!
有些人对 "非正常化价格 "感到困扰,但我个人认为这不是一个大问题(因为我已经使用延迟很长时间了,这些价格对我来说不是什么大问题)。但对我来说,问题是诸如OnTimer() 不愿意在测试器中工作 或其他类似的事情。