谁能帮助解决机器人的问题,为什么它不工作了? - 页 4 1234567 新评论 [删除] 2016.02.13 17:18 #31 GIM:for(int i=0;i<OrdersTotal();i++)错误:"i"。错误是什么?//+------------------------------------------------------------------+ //| 123.mq4 | //| Copyright 2016, MetaQuotes Software Corp. | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2016, MetaQuotes Software Corp." #property link "https://www.mql5.com" #property version "1.00" #property strict input double lots = 0.01; // Лот input int stop_loss = 10; // Указываем в валюте депозита input int take_profit = 20; // Указываем в валюте депозита extern int Slippage = 3; // Допустимое проскальзываение цены в пунктах input int Magic = 16384; // Уникальный номер эксперта int last_bar = 0; //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { //--- // ===== Пересчет под пятизнак ========= if(Digits()==3 || Digits()==5) { Slippage *= 10; } //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { //--- } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { if (last_bar == Bars) {return;} last_bar = Bars; if (OrdersTotal() == 0){ int ticketbuy = OrderSend(Symbol(), OP_BUY, lots ,Ask, Slippage, 0, 0, "", Magic, 0, clrBlue); if(ticketbuy<0) Print(Symbol()," OpenPosition. OrderSend Buy fail #",GetLastError()); else Print(Symbol()," OpenPosition. OrderSend Buy successfully"); int ticketsell = OrderSend(Symbol(), OP_SELL, lots ,Bid, Slippage, 0, 0, "", Magic, 0, clrRed); if(ticketsell<0) Print(Symbol()," OpenPosition. OrderSend Sell fail #",GetLastError()); else Print(Symbol()," OpenPosition. OrderSend Sell successfully"); } double profit=0; for(int i=0;i<OrdersTotal();i++) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES) && OrderSymbol()==_Symbol && OrderMagicNumber()== Magic) { profit+=OrderProfit()+OrderSwap()+OrderCommission(); } } int requot=0; if(profit>=take_profit || (-profit)>=stop_loss) for(int i=0;i<OrdersTotal();i++) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES) && OrderSymbol()==_Symbol && OrderMagicNumber()== Magic) { if(OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),Slippage,clrRed)) requot=0; else { requot++; } if(requot>10) { i++; requot=0; } i--; } } } //+------------------------------------------------------------------+ Sergey Gritsay 2016.02.13 17:19 #32 GIM: 你是什么意思,只用自己的订单.... 如果您在一个账户上放置几份EA,以便不混淆哪份EA开单,则使用识别号。 GIM 2016.02.13 17:20 #33 会不会是交易数量 或货币对的问题? [删除] 2016.02.13 17:20 #34 GIM: 你是什么意思,只用自己的订单.... 如果该EA只对账户中的自有订单起作用,这就是正确的写法。如果有几个策略和专家,他们不应该把自己的订单和其他人的订单混淆。 GIM 2016.02.13 17:23 #35 Sergey Gritsay: 如果你在一个账户中有几份EA,它不会混淆哪个EA开的单子,而是使用一个唯一的识别号码。 一切都很清楚,发自内心的! Sergey Gritsay 2016.02.13 17:24 #36 Vladimir Zubov:错在哪里? 这里的错误在于,在第一个for循环和第二个for循环中,变量i被初始化了2次,要么应该删除第二次初始化,要么应该改变变量名称。 GIM 2016.02.13 17:25 #37 谢谢大家! [删除] 2016.02.13 17:25 #38 Sergey Gritsay: 这里的错误是,在第一个for循环和第二个for循环中,变量i被初始化了两次,要么应该删除第二次初始化,要么应该改变变量名称。 这就对了,我以为他的编译器在打架。 Sergey Gritsay 2016.02.13 17:31 #39 Vladimir Zubov: 这是正确的,我以为他的编译器在打架。 编译器可能会这样做,但它应该给出一个警告而不是一个错误。 Sergey Gritsay 2016.02.13 17:34 #40 而不是,如果你把它拿出来。#property strict 它说这是一个错误。 1234567 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
for(int i=0;i<OrdersTotal();i++)
错误:"i"。
错误是什么?
你是什么意思,只用自己的订单....
你是什么意思,只用自己的订单....
如果你在一个账户中有几份EA,它不会混淆哪个EA开的单子,而是使用一个唯一的识别号码。
错在哪里?
这里的错误是,在第一个for循环和第二个for循环中,变量i被初始化了两次,要么应该删除第二次初始化,要么应该改变变量名称。
这是正确的,我以为他的编译器在打架。
而不是,如果你把它拿出来。
它说这是一个错误。