在MQL5中一起学习和写作 - 页 31

 
Urain:

普希金会不会初始化这个字符串?

嗯......我不太擅长编程,但每次都会重置字符串吗?

我对它的基值感兴趣,例如,double的值是0,bool是1,但什么?

掺假的例子。

双重状态。

空白的OnTick()
{
如果(Statys == 0)
{OpenBuy();}

}

而这似乎是有效的))。


(确切地说,它没有归零。))我从未在那里初始化过它们)。


 
AUser:

嗯......我不善于编程,但字符串不是每次都会被重置吗?

我对它的基值感兴趣,例如,double的值是0,bool是1,但它是什么?


确切地说,它没有归零)。而且我从未在那里初始化过它们)

在MQL5的帮助中,它在变量初始化 一节中明确指出。

任何变量在定义时都可以被初始化。如果一个变量没有被明确地初始化,存储在这个变量中的值可以是你想要的任何东西。 不进行隐式初始化。

你只是暂时幸运,但总有一天你会不幸运,会痛苦地寻找代码中的错误,不知道魔鬼藏在细节中。你不必依赖'我会得到幸运'的事实。
 
Rosh:

MQL5帮助中的变量初始化 部分明确指出。

你只是暂时幸运,但有一天你会不幸运,你会痛苦地长时间寻找代码中的错误,不知道魔鬼就藏在细枝末节中。你不必依赖 "我会得到幸运"。
是的,谢谢你))。我会弄好的)))。
 

我在写一个简单的函数来检查一个数组中的索引方向。数组本身取自OnCalculate(),即有不同的类型(double、datetime,等等)。在参考文献中,有一些终端函数的例子,在处理不同类型的数组时使用头类型f(void &array[])。但编译器发誓在用户函数中使用void类型。是否有一些通用的方法来告诉编译器,数组参数的类型对用户函数来说并不重要?

 

我想澄清交易请求结果的结构MqlTradeResult)。

double price; // 交易中的价格,由经纪人确认

它不返回挂单的价格?专家顾问写了以下代码。

double Statys = 0;
void OnTick()
{
if (Statys == 0)
{OpenBuy(); }
}

空白的OpenBuy()
{
MqlTradeRequest o; MqlTradeResult p;
double Ask = SymbolInfoDouble(_Symbol,SYMBOL_ASK);

o.action = TRADE_ACTION_PENDING;
o.symbol = _Symbol;
o.volume = 1;
o.价格=82,000;
o.Sl = 81,800;
O.TP = 82.200;
o.type = ORDER_TYPE_BUY_STOP;
o.type_filling = ORDER_FILLING_AON;
o.type_time = ORDER_TIME_GTC;
OrderSend(o,p)。
Statys=p。价格;
}


从我们有很多未完成的交易这一事实来判断,我大胆猜测,答案是价格=0。不过这有点奇怪。


Документация по MQL5: Стандартные константы, перечисления и структуры / Структуры данных / Структура результата торгового запроса
Документация по MQL5: Стандартные константы, перечисления и структуры / Структуры данных / Структура результата торгового запроса
  • www.mql5.com
Стандартные константы, перечисления и структуры / Структуры данных / Структура результата торгового запроса - Документация по MQL5
 
Yedelkin:

有没有什么通用的方法来告诉编译器,数组参数的类型对用户函数来说并不重要?

对数组中的不同数据类型做一个重载函数
Документация по MQL5: Основы языка / Функции / Перегрузка функций
Документация по MQL5: Основы языка / Функции / Перегрузка функций
  • www.mql5.com
Основы языка / Функции / Перегрузка функций - Документация по MQL5
 
AUser:

我想澄清交易请求结果的结构MqlTradeResult)。

double price; // 交易中的价格,由经纪人确认

它不返回挂单的价格?专家顾问已经编写了这样的代码。


从有很多未完成的交易这一事实来判断,我大胆猜测,答案是价格=0。不过这有点奇怪。


悬而未决的订单并不意味着达成了交易。看看MqlTradeResult 的结构帮助。

领域描述

场地

描述

转码

交易服务器的返回代码

交易

交易 票,如果已经进行了交易。在TRADE_ACTION_DEAL 贸易操作中报告。

秩序

订单 票,如果已经下了票。在TRADE_ACTION_PENDING 交易操作中被通知。

经纪人确认的交易量。这取决于订单填写类型

价格

交易价格,由经纪人确认。取 决于 交易请求 中的偏差字段 和/或交易 的类型。

竞标

当前的市场投标价格(重新报价)。

当前的市场投标价格(重新报价)。

评论

经纪人对交易的评论(默认情况下,填写解密)。

另外,请正确插入代码
 
好了,停下来。我们也要对字符串进行初始化吗?这不是一个原子类型。
 
Rosh:

一个挂单并不构成交易。看看MqlTradeResult 结构的帮助。

另外,请正确插入代码
明白了)
 
TheXpert:
好了,停下来。我们也要对字符串进行初始化吗?这不是一个原子类型。
你不应该依赖默认的初始化。从来没有。