没有一个顾问不在Metatrader 5的任何货币对中工作。 - 页 6 1234567 新评论 Sergey Ponomarev 2015.04.29 12:39 #51 关于示范美元 Sergey Ponomarev 2015.04.29 12:42 #52 试图在这里下载机器人,还没有一个人成功。 Alexander Bereznyak 2015.04.29 12:56 #53 换成美元,内部的EA不工作,我的就工作。订单执行类型应该是ORDER_FILLING_RETURN Sergey Ponomarev 2015.04.29 13:35 #54 sandex:换成美元,内部的EA不工作,我的就工作。订单执行类型应该是ORDER_FILLING_RETURN 在哪里输入这种类型)。 Sergey Ponomarev 2015.04.29 14:10 #55 dogmaone: 在哪里输入这种类型)。 如果你的机器人能工作,你能告诉我在哪里放上正确的数值,使标准机器人也能工作吗? Vladimir Karputov 2015.04.29 16:41 #56 肯定是专家顾问的逻辑有问题(代码要么没有通过所有检查,要么没有考虑到交易模式)。至少这个简单的代码在服务器 "BCS5-Real "上很容易工作。//+------------------------------------------------------------------+ //| OrderSend.mq5 | //| Copyright © 2015, Vladimir Karputov | //| http://wmua.ru/slesar/ | //+------------------------------------------------------------------+ #property copyright "Copyright © 2015, Vladimir Karputov" #property link "http://wmua.ru/slesar/" #property version "1.00" //+------------------------------------------------------------------+ //| https://www.mql5.com/ru/articles/481 | //+------------------------------------------------------------------+ #include<Trade\Trade.mqh> //--- объект для проведения торговых операций CTrade trade; //+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ void OnStart() { //--- зададим MagicNumber для идентификации своих ордеров int MagicNumber=123456; trade.SetExpertMagicNumber(MagicNumber); //--- установим допустимое проскальзывание в пунктах при совершении покупки/продажи int deviation=10; trade.SetDeviationInPoints(deviation); //--- режим заполнения ордера, нужно использовать тот режим, который разрешается сервером trade.SetTypeFilling(ORDER_FILLING_RETURN); //--- режим логирования: лучше не вызывать этот метод вообще, класс сам выставит оптимальный режим trade.LogLevel(1); //--- какую функцию использовать для торговли: true - OrderSendAsync(), false - OrderSend() trade.SetAsyncMode(true); //--- /*//--- 1. пример покупки по текущему символу if(!trade.Buy(0.1)) { //--- сообщим о неудаче Print("Метод Buy() потерпел неудачу. Код возврата=",trade.ResultRetcode(), ". Описание кода: ",trade.ResultRetcodeDescription()); } else { Print("Метод Buy() выполнен успешно. Код возврата=",trade.ResultRetcode(), " (",trade.ResultRetcodeDescription(),")"); }*/ /*//--- 2. пример покупки по указанному символу if(!trade.Buy(0.1,"GBPUSD")) { //--- сообщим о неудаче Print("Метод Buy() потерпел неудачу. Код возврата=",trade.ResultRetcode(), ". Описание кода: ",trade.ResultRetcodeDescription()); } else { Print("Метод Buy() выполнен успешно. Код возврата=",trade.ResultRetcode(), " (",trade.ResultRetcodeDescription(),")"); }*/ //Можно указать все параметры ордера: уровни Stop Loss/Take Profit,цена открытия и комментарий. //--- 3. пример покупки по указанному символу символу с заданными SL и TP double volume=0.1; // укажем объем торговой операции string symbol="GBPUSD"; // укажем символ, на котором проводится операция int digits=(int)SymbolInfoInteger(symbol,SYMBOL_DIGITS); // количество знаков после запятой double point=SymbolInfoDouble(symbol,SYMBOL_POINT); // пункт double bid=SymbolInfoDouble(symbol,SYMBOL_BID); // текущая цена для закрытия LONG double SL=bid-1000*point; // ненормализованное значение SL SL=NormalizeDouble(SL,digits); // нормализуем Stop Loss double TP=bid+1000*point; // ненормализованное значение TP TP=NormalizeDouble(TP,digits); // нормализуем Take Profit //--- получим текущую цену открытия для LONG позиций double open_price=SymbolInfoDouble(symbol,SYMBOL_ASK); string comment=StringFormat("Buy %s %G lots at %s, SL=%s TP=%s", symbol,volume, DoubleToString(open_price,digits), DoubleToString(SL,digits), DoubleToString(TP,digits)); if(!trade.Buy(volume,symbol,open_price,SL,TP,comment)) { //--- сообщим о неудаче Print("Метод Buy() потерпел неудачу. Код возврата=",trade.ResultRetcode(), ". Описание кода: ",trade.ResultRetcodeDescription()); } else { Print("Метод Buy() выполнен успешно. Код возврата=",trade.ResultRetcode(), " (",trade.ResultRetcodeDescription(),")"); } } //+------------------------------------------------------------------+ Sergey Ponomarev 2015.04.29 17:03 #57 Karputov Vladimir:专家顾问的逻辑肯定是有问题的(代码要么没有通过所有检查,要么没有考虑到交易模式)。至少在 "BCS5-Real "服务器上这样的简单代码很容易工作。 请告诉我,当我要编译你的代码时:去创建(EA模板)额外的事件处理程序,该如何选择? Vladimir Karputov 2015.04.29 17:05 #58 Sergey Ponomarev: 当我要编译你的代码时,请告诉我:我想创建(EA模板)一个额外的事件处理程序,应该选择哪一个? 这是个脚本。这个脚本是为了检查在这个交易服务器上是否可以以自动模式开仓。 Sergey Ponomarev 2015.04.29 17:08 #59 Karputov Vladimir: 这是个脚本。这个脚本是为了检查在这个交易服务器上是否还能以自动模式开仓。 我明白了...所以我的经纪人的服务器需要一些其他的逻辑?) Sergey Ponomarev 2015.04.29 17:08 #60 Karputov Vladimir: 这是个脚本。这个脚本是为了检查在这个交易服务器上是否还能以自动模式开仓。 谢谢你的努力 :) 1234567 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
换成美元,内部的EA不工作,我的就工作。
订单执行类型应该是ORDER_FILLING_RETURN
换成美元,内部的EA不工作,我的就工作。
订单执行类型应该是ORDER_FILLING_RETURN
在哪里输入这种类型)。
肯定是专家顾问的逻辑有问题(代码要么没有通过所有检查,要么没有考虑到交易模式)。
至少这个简单的代码在服务器 "BCS5-Real "上很容易工作。
专家顾问的逻辑肯定是有问题的(代码要么没有通过所有检查,要么没有考虑到交易模式)。
至少在 "BCS5-Real "服务器上这样的简单代码很容易工作。
当我要编译你的代码时,请告诉我:我想创建(EA模板)一个额外的事件处理程序,应该选择哪一个?
这是个脚本。这个脚本是为了检查在这个交易服务器上是否还能以自动模式开仓。
这是个脚本。这个脚本是为了检查在这个交易服务器上是否还能以自动模式开仓。