来自一个 "傻瓜 "的问题 - 页 274

 
是不是只有关门才行?
 
是的,而且开得很好。
 

并尝试在OrderSend 之前插入一个订单检查,以确保正确性。

//---- Проверка торгового запроса на корректность
if(!OrderCheck(request,check))
{
 ("Ошибка проверки ордера OrderCheck(): ",ResultRetcodeDescription(check.retcode));
}



//+------------------------------------------------------------------+
//| возврат стрингового результата торговой операции по его коду     |
//+------------------------------------------------------------------+
string ResultRetcodeDescription(int retcode)
  {
   string str;
//----
   switch(retcode)
     {
      case TRADE_RETCODE_REQUOTE: str="Реквота"; break;
      case TRADE_RETCODE_REJECT: str="Запрос отвергнут"; break;
      case TRADE_RETCODE_CANCEL: str="Запрос отменен трейдером"; break;
      case TRADE_RETCODE_PLACED: str="Ордер размещен"; break;
      case TRADE_RETCODE_DONE: str="Заявка выполнена"; break;
      case TRADE_RETCODE_DONE_PARTIAL: str="Заявка выполнена частично"; break;
      case TRADE_RETCODE_ERROR: str="Ошибка обработки запроса"; break;
      case TRADE_RETCODE_TIMEOUT: str="Запрос отменен по истечению времени";break;
      case TRADE_RETCODE_INVALID: str="Неправильный запрос"; break;
      case TRADE_RETCODE_INVALID_VOLUME: str="Неправильный объем в запросе"; break;
      case TRADE_RETCODE_INVALID_PRICE: str="Неправильная цена в запросе"; break;
      case TRADE_RETCODE_INVALID_STOPS: str="Неправильные стопы в запросе"; break;
      case TRADE_RETCODE_TRADE_DISABLED: str="Торговля запрещена"; break;
      case TRADE_RETCODE_MARKET_CLOSED: str="Рынок закрыт"; break;
      case TRADE_RETCODE_NO_MONEY: str="Нет достаточных денежных средств для выполнения запроса"; break;
      case TRADE_RETCODE_PRICE_CHANGED: str="Цены изменились"; break;
      case TRADE_RETCODE_PRICE_OFF: str="Отсутствуют котировки для обработки запроса"; break;
      case TRADE_RETCODE_INVALID_EXPIRATION: str="Неверная дата истечения ордера в запросе"; break;
      case TRADE_RETCODE_ORDER_CHANGED: str="Состояние ордера изменилось"; break;
      case TRADE_RETCODE_TOO_MANY_REQUESTS: str="Слишком частые запросы"; break;
      case TRADE_RETCODE_NO_CHANGES: str="В запросе нет изменений"; break;
      case TRADE_RETCODE_SERVER_DISABLES_AT: str="Автотрейдинг запрещен сервером"; break;
      case TRADE_RETCODE_CLIENT_DISABLES_AT: str="Автотрейдинг запрещен клиентским терминалом"; break;
      case TRADE_RETCODE_LOCKED: str="Запрос заблокирован для обработки"; break;
      case TRADE_RETCODE_FROZEN: str="Ордер или позиция заморожены"; break;
      case TRADE_RETCODE_INVALID_FILL: str="Указан неподдерживаемый тип исполнения ордера по остатку "; break;
      case TRADE_RETCODE_CONNECTION: str="Нет соединения с торговым сервером"; break;
      case TRADE_RETCODE_ONLY_REAL: str="Операция разрешена только для реальных счетов"; break;
      case TRADE_RETCODE_LIMIT_ORDERS: str="Достигнут лимит на количество отложенных ордеров"; break;
      case TRADE_RETCODE_LIMIT_VOLUME: str="Достигнут лимит на объем ордеров и позиций для данного символа"; break;
      case TRADE_RETCODE_INVALID_ORDER: str="Выставляемый ордер имеет запрещенный или неверный тип"; break;
      case TRADE_RETCODE_POSITION_CLOSED: str="Операция с позицией невозможна, так как позиция отсутствует"; break;
      default: str="Неизвестный результат";
     }
//----
   return(str);
  }
 

哦,还有一件事:在关闭程序中,一定要在填入结构之前将其无效化

ZeroMemory(tradeRequest);
ZeroMemory(tradeResult);


之后

SymbolInfoTick(symb, price);

这两行插入。

 
i_logic:

哦,还有一件事:在关闭程序中,一定要在填充结构前将其置空


之后

插入这两行。

不,你必须要有BEFORE。

for(int i=PositionsTotal()-1;i>=0;i--)
    {
      ZeroMemory(tradeRequest);
      ZeroMemory(tradeResult);
      ZeroMemory(price);
      
      symb=PositionGetSymbol(i);
      PositionSelect(symb);
      SymbolInfoTick(symb, price);

有帮助。谢谢。

 

你好,在EA中建立一个fibo网格

ObjectCreate(0, "Fibo",OBJ_FIBO,0,time2,price1);

一切正常,但现在我想得到23.6%的价格,难道没有简单的功能来实现这个目的?

double flevel236 = ObjectGetDouble(0, "Fibo",OBJPROP_LEVELVALUE,1); 这个给出0.236,即不是价格而是水平

double flevel236 = ObjectGetDouble(0, "Fibo",OBJPROP_PRICE,1); 这个给出了0级(或100级) 的价格。

除了这两个(OBJPROP_PRICE和OBJPROP_LEVELVALUE),我找不到其他东西。

你能告诉我如何解决这个问题吗?谢谢你!

Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов - Документация по MQL5
 
zhurkin:

你能告诉我如何解决这个问题吗?谢谢你!

只有两种算术运算。乘法(0.236乘以零级和一级价格之差),然后加法(将乘法的结果加到零级价格上)。

Документация по MQL5: Основы языка / Операции и выражения / Арифметические операции
Документация по MQL5: Основы языка / Операции и выражения / Арифметические операции
  • www.mql5.com
Основы языка / Операции и выражения / Арифметические операции - Документация по MQL5
 

你好,谢谢你之前的回复!你的问题是什么?

我正在使用iCustom(NULL,0, "Example\ZigZag",ExtDepth,ExtDeviation,ExtBackstep) 我正在连接一个普通的Zigzag。计算结果似乎一切正常。 您能否告知如何使EA在图表上自动绘制 这个连接的指标?目前,我必须在运行EA后手动添加人字形指标,并像EA中那样设置其参数!谢谢你。

Способы вызова индикаторов в MQL5
Способы вызова индикаторов в MQL5
  • 2010.03.09
  • KlimMalgin
  • www.mql5.com
C появлением новой версии языка MQL, не только изменился подход к работе с индикаторами, но и появились новые способы создания индикаторов. Кроме того, появилась дополнительная гибкость при работе с индикаторными буферами - теперь вы можете самостоятельно указать нужное направление индексации и получать ровно столько значений индикатора, сколько вам требуется. В этой статье рассмотрены базовые методы вызова индикаторов и получения данных из индикаторных буферов.
 
zhurkin:

你好,谢谢你之前的回复!你的问题是什么?

我正在使用iCustom(NULL,0, "Example\ZigZag",ExtDepth,ExtDeviation,ExtBackstep) 我正在连接一个普通的Zigzag。计算结果似乎一切正常。 您能否告知如何使EA在图表上自动绘制 这个连接的指标?目前,我必须在运行EA后手动添加人字形指标,并像EA中那样设置其参数!谢谢你。

https://www.mql5.com/ru/docs/chart_operations/chartindicatoradd
Документация по MQL5: Операции с графиками / ChartIndicatorAdd
Документация по MQL5: Операции с графиками / ChartIndicatorAdd
  • www.mql5.com
Операции с графиками / ChartIndicatorAdd - Документация по MQL5
 

我已经开始研究OOP了。

我在编写基类的后裔时遇到一个问题,编译器写道 - "'ХХХ'--错误的参数计数"。

我已经找了很久的原因,重新阅读文章和参考书。

但我找到了--基类有一个构造函数,它是一个和参数化的。

我也找到了一个解决方案--用默认构造函数重载构造函数。

但我必须把基类的 参数化构造函数 的所有参数拖到子类 的构造函数中,以获得正确的逻辑。

还有其他方法吗?

有没有什么办法,在声明子孙类时,向谁分配什么?例如:向基类的构造函数提供这些参数,以及这些参数,以便后裔不会感到厌烦...