新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 1230 1...122312241225122612271228122912301231123212331234123512361237...1953 新评论 Valeriy Yastremskiy 2020.08.12 14:58 #12291 Igor Makanu:你的例子中存在许多错误应该有。这里的价格没有规范化 OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Bid-SL*Point,Bid+TP*Point,"My order",MagicNumber,0,clrGreen)。这里我不明白的是,如果条件是假的,为什么需要从OnTick()退出的逻辑。也许,我们应该继续循环,只计算订单的数量。你的例子在逻辑上非常简单,很难为其他任务修改它...也许他想做一些跟踪。 它仍然是早期))))一下子会有很多。没有什么意义)))))因此,是的,当然经过计算,对于所有的发送顺序正常化是必要的)))) 有条件的订单,如果当前工具上没有我们的魔力的订单,我们把订单。而后,该条件将不会达到订单,直到它关闭。 PS不喜欢这个条件 如果不喜欢。 Galim_V 2020.08.12 17:20 #12292 问候,你能告诉我如何阅读表达方式吗? string sym=(symbol==NULL ? Symbol() : symbol); Vladimir Pastushak 2020.08.12 17:29 #12293 Galim_V:问候,你能告诉我如何阅读表达方式吗? 如果符号 为空,返回当前符号的值到sym变量,如果不是空,返回值到sym变量 Galim_V 2020.08.12 17:31 #12294 Vladimir Pastushak:如果符号变量为空,则将当前图表符号的值返回给符号变量,如果不是空,则将其值传递给符号变量。 谢谢你! Alexey Viktorov 2020.08.12 17:33 #12295 Galim_V:问候,你能告诉我如何正确阅读这个表达吗?它的内容是:如果符号是NULL,则将Symbol()赋给变量,否则将 符号赋给变量。此条目的等价物string sym; if(symbol == NULL) sym = Symbol(); else sym = symbol; 唯一的区别是行数的不同。 Galim_V 2020.08.13 03:21 #12296 Alexey Viktorov:解读如下:如果符号是NULL,就给Symbol()分配一个变量,否则就给符号分配一个值。相当于此条目 唯一的区别是行数的不同。 谢谢你! Alexey Belyakov 2020.08.13 07:48 #12297 Valeriy Yastremskiy:例如,你打开的窗口不是Eurobucks,而是Eurofunt,你将所选订单的符号与Eurobucks进行比较,如果为真,则Eurobucks上有一个订单,如果我们的magik,则从Onstart函数返回,如果不是,则在Eurobucks上设置一个订单,但Kloz、High、Asc、Bid你将在Eurofunt上设置。而Symbol()将返回当前窗口的符号,不会发生错误。使用元编辑器中的模板,左上方有一个新按钮。OnStart函数仍然被使用,但这是不对的,OnStart是为脚本服务的。正确的模板。正确的代码。你的订单注释缺失,魔术师也没有在你的代码中得到说明。 是的,它的工作原理是这样的。谢谢!!!。 不知道按模板创建是如此重要。确实是OnStart。我把基本结构搞错了。嗯,我现在就知道了。 Valeriy Yastremskiy 2020.08.13 09:35 #12298 Alexey Belyakov:是的,它的工作原理是这样的。谢谢你!(笑)。我不知道用模板创作是如此重要。OnStart,确实如此。我把基本结构搞错了。嗯,我现在就知道了。 好吧,而你放在与订单合作的功能中的一切都应该被规范化。如果小数点后有6位数字,则不会下单,并会产生一个错误。 用 "只有KimIV的有用功能 "来搜索这个主题,或者在KodoBase中查找。 伊戈尔-马卡 努在上面写了更多的错误。而Kim的功能真的很有用,可以先用。评论很清楚。 Dmitrii Solovei 2020.08.13 10:13 #12299 请帮助。为什么测试会出现错误 - "" 2020.08.13 13:09:11.393 2018.08.01 00:00:123456 GBPUSD,M30: array out of range in '123456.mq4' (59,13)" " ???? #财产链接 "2020年,灰色"。 #属性链接 "uirnP0215@mail.ru" #财产版本 "1.00" #属性严格 输入双批=0.01。 输入int Magic = 1546。 双重ibufUP[]。 双重ibufDN[]。 //+------------------------------------------------------------------+ //|专家初始化功能| //+------------------------------------------------------------------+ int OnInit() { return(INIT_SUCCEEDED)。 } //+------------------------------------------------------------------+ //|专家去初始化函数| //+------------------------------------------------------------------+ 空白的OnDeinit(const int reason)。 { //--- } //+------------------------------------------------------------------+ //|专家勾选功能| //+------------------------------------------------------------------+ 空白的OnTick() { CountFractals()。 如果(ibufUP[3]>0) { if(!OrderSend(Symbol(), OP_SELL, lots, Bid, 30, 0, 0, "", Magic, 0, clrRed) Print("Failed to open sell order"); } 如果(ibufDN[3]>0) { if(!OrderSend(Symbol(), OP_BUY, lots, Bid, 30, 0, 0, "", Magic, 0, clrGreen) Print("Failed to opena Buy order"); } } //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ 空白的CountFractals() { for(int i=150; i>=0; i--) { ibufUP[i] = iFractals(NULL, 0, MODE_UPPER, i)。 ibufDN[i] = iFractals(NULL, 0, MODE_LOWER, i)。 } } //+------------------------------------------------------------------+ Any questions from newcomers 任何菜鸟问题,为了不给论坛添乱。专业人士,不要路过。没有你就无处可去 - 6. 初学者的问题 MQL4 MT4 MetaTrader Sayberix 2020.08.13 14:25 #12300 Madmas:请帮助。为什么测试会出现错误 - "" 2020.08.13 13:09:11.393 2018.08.01 00:00:123456 GBPUSD,M30: array out of range in '123456.mq4' (59,13)" " ????#财产链接 "2020年,灰色"。#属性链接 "uirnP0215@mail.ru"#财产版本 "1.00"#属性严格输入双批=0.01。输入int Magic = 1546。双重ibufUP[]。双重ibufDN[]。//+------------------------------------------------------------------+//|专家初始化功能|//+------------------------------------------------------------------+int OnInit(){return(INIT_SUCCEEDED)。}//+------------------------------------------------------------------+//|专家去初始化函数|//+------------------------------------------------------------------+空白的OnDeinit(const int reason)。{//---}//+------------------------------------------------------------------+//|专家勾选功能|//+------------------------------------------------------------------+空白的OnTick(){CountFractals()。如果(ibufUP[3]>0){if(!OrderSend(Symbol(), OP_SELL, lots, Bid, 30, 0, 0, "", Magic, 0, clrRed)Print("Failed to open sell order");}如果(ibufDN[3]>0){if(!OrderSend(Symbol(), OP_BUY, lots, Bid, 30, 0, 0, "", Magic, 0, clrGreen)Print("Failed to opena Buy order");}}//+------------------------------------------------------------------+//+------------------------------------------------------------------+空白的CountFractals(){for(int i=150; i>=0; i--){ibufUP[i] = iFractals(NULL, 0, MODE_UPPER, i)。ibufDN[i] = iFractals(NULL, 0, MODE_LOWER, i)。}}//+------------------------------------------------------------------+ 在CountFractals 函数中添加一个递减计数器 作为开始。 1...122312241225122612271228122912301231123212331234123512361237...1953 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
你的例子中存在许多错误
应该有。
这里的价格没有规范化 OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Bid-SL*Point,Bid+TP*Point,"My order",MagicNumber,0,clrGreen)。
这里我不明白的是,如果条件是假的,为什么需要从OnTick()退出的逻辑。
也许,我们应该继续循环,只计算订单的数量。
你的例子在逻辑上非常简单,很难为其他任务修改它...也许他想做一些跟踪。
它仍然是早期))))一下子会有很多。没有什么意义)))))因此,是的,当然经过计算,对于所有的发送顺序正常化是必要的))))
有条件的订单,如果当前工具上没有我们的魔力的订单,我们把订单。而后,该条件将不会达到订单,直到它关闭。
PS不喜欢这个条件 如果不喜欢。
问候,你能告诉我如何阅读表达方式吗?
问候,你能告诉我如何阅读表达方式吗?
如果符号 为空,返回当前符号的值到sym变量,如果不是空,返回值到sym变量
如果符号变量为空,则将当前图表符号的值返回给符号变量,如果不是空,则将其值传递给符号变量。
谢谢你!
问候,你能告诉我如何正确阅读这个表达吗?
它的内容是:如果符号是NULL,则将Symbol()赋给变量,否则将 符号赋给变量。
此条目的等价物
唯一的区别是行数的不同。解读如下:如果符号是NULL,就给Symbol()分配一个变量,否则就给符号分配一个值。
相当于此条目
唯一的区别是行数的不同。谢谢你!
例如,你打开的窗口不是Eurobucks,而是Eurofunt,你将所选订单的符号与Eurobucks进行比较,如果为真,则Eurobucks上有一个订单,如果我们的magik,则从Onstart函数返回,如果不是,则在Eurobucks上设置一个订单,但Kloz、High、Asc、Bid你将在Eurofunt上设置。而Symbol()将返回当前窗口的符号,不会发生错误。
使用元编辑器中的模板,左上方有一个新按钮。OnStart函数仍然被使用,但这是不对的,OnStart是为脚本服务的。正确的模板。
正确的代码。你的订单注释缺失,魔术师也没有在你的代码中得到说明。
是的,它的工作原理是这样的。谢谢!!!。
不知道按模板创建是如此重要。确实是OnStart。我把基本结构搞错了。嗯,我现在就知道了。
是的,它的工作原理是这样的。谢谢你!(笑)。
我不知道用模板创作是如此重要。OnStart,确实如此。我把基本结构搞错了。嗯,我现在就知道了。
好吧,而你放在与订单合作的功能中的一切都应该被规范化。如果小数点后有6位数字,则不会下单,并会产生一个错误。
用 "只有KimIV的有用功能 "来搜索这个主题,或者在KodoBase中查找。
伊戈尔-马卡 努在上面写了更多的错误。而Kim的功能真的很有用,可以先用。评论很清楚。
请帮助。为什么测试会出现错误 - "" 2020.08.13 13:09:11.393 2018.08.01 00:00:123456 GBPUSD,M30: array out of range in '123456.mq4' (59,13)" " ????
#财产链接 "2020年,灰色"。
#属性链接 "uirnP0215@mail.ru"
#财产版本 "1.00"
#属性严格
输入双批=0.01。
输入int Magic = 1546。
双重ibufUP[]。
双重ibufDN[]。
//+------------------------------------------------------------------+
//|专家初始化功能|
//+------------------------------------------------------------------+
int OnInit()
{
return(INIT_SUCCEEDED)。
}
//+------------------------------------------------------------------+
//|专家去初始化函数|
//+------------------------------------------------------------------+
空白的OnDeinit(const int reason)。
{
//---
}
//+------------------------------------------------------------------+
//|专家勾选功能|
//+------------------------------------------------------------------+
空白的OnTick()
{
CountFractals()。
如果(ibufUP[3]>0)
{
if(!OrderSend(Symbol(), OP_SELL, lots, Bid, 30, 0, 0, "", Magic, 0, clrRed)
Print("Failed to open sell order");
}
如果(ibufDN[3]>0)
{
if(!OrderSend(Symbol(), OP_BUY, lots, Bid, 30, 0, 0, "", Magic, 0, clrGreen)
Print("Failed to opena Buy order");
}
}
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
空白的CountFractals()
{
for(int i=150; i>=0; i--)
{
ibufUP[i] = iFractals(NULL, 0, MODE_UPPER, i)。
ibufDN[i] = iFractals(NULL, 0, MODE_LOWER, i)。
}
}
//+------------------------------------------------------------------+
请帮助。为什么测试会出现错误 - "" 2020.08.13 13:09:11.393 2018.08.01 00:00:123456 GBPUSD,M30: array out of range in '123456.mq4' (59,13)" " ????
#财产链接 "2020年,灰色"。
#属性链接 "uirnP0215@mail.ru"
#财产版本 "1.00"
#属性严格
输入双批=0.01。
输入int Magic = 1546。
双重ibufUP[]。
双重ibufDN[]。
//+------------------------------------------------------------------+
//|专家初始化功能|
//+------------------------------------------------------------------+
int OnInit()
{
return(INIT_SUCCEEDED)。
}
//+------------------------------------------------------------------+
//|专家去初始化函数|
//+------------------------------------------------------------------+
空白的OnDeinit(const int reason)。
{
//---
}
//+------------------------------------------------------------------+
//|专家勾选功能|
//+------------------------------------------------------------------+
空白的OnTick()
{
CountFractals()。
如果(ibufUP[3]>0)
{
if(!OrderSend(Symbol(), OP_SELL, lots, Bid, 30, 0, 0, "", Magic, 0, clrRed)
Print("Failed to open sell order");
}
如果(ibufDN[3]>0)
{
if(!OrderSend(Symbol(), OP_BUY, lots, Bid, 30, 0, 0, "", Magic, 0, clrGreen)
Print("Failed to opena Buy order");
}
}
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
空白的CountFractals()
{
for(int i=150; i>=0; i--)
{
ibufUP[i] = iFractals(NULL, 0, MODE_UPPER, i)。
ibufDN[i] = iFractals(NULL, 0, MODE_LOWER, i)。
}
}
//+------------------------------------------------------------------+
在CountFractals 函数中添加一个递减计数器 作为开始。