新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 85 1...787980818283848586878889909192...1953 新评论 Vitaly Muzichenko 2017.01.21 13:45 #841 trader781:1)如果不放第二个维度,编译器会抱怨,"指定类的类型,未知参数 "会立即弹出。2)那么机器人将在启动时立即死亡,并说 "关键错误阵列超出范围"。3)设置int count1=-1;然后进行循环。这里有什么问题吗?偶尔翻看一下答案。1 和2 和3和...你已经做了一个多星期的同样的事情,而且每次都变得更糟,尽管已经给了你一个答案并指出了错误。在第一段代码中,编译器没有抱怨第二个维度不存在,但在随后的代码中,它开始抱怨了?编译器坏了吗?你也可以打开任何带有数组的代码,看看它们是如何创建的,并做同样的事情。 Victor Nikolaev 2017.01.21 15:37 #842 Artyom Trishkin:没有这样的事情。MAs已经被很多人仔细研究过了,人们只需要等待一个新出炉的雄心勃勃的交易员的新思维。开个玩笑。事实是,这么多年来,我已经厌倦了拿着一个MA瓶子到处打探。他们落后了。它们也许应该用在另一个领域,但不是用来捕捉趋势流的。有各种各样的马什卡。总的来说,各地只有推手。 Artyom Trishkin 2017.01.21 15:40 #843 Victor Nikolaev:有各种各样的混搭。总的来说,到处都是正在使用的蘑菇。 那么我在说什么呢?这就是我所说的--以不同的名义,而不是正面的。 Mickey Moose 2017.01.21 16:44 #844 Vitaly Muzichenko: 还没有。如果我发现和别人有类似的情况,我就不会在这里写。我想你自己也明白,一个数字序列和一个结构列表是不一样的,否则就会出现另一个有无限多未知数的方程。阿尔乔姆-特里什金。这个怎么样?#property strictstruct myorder{int Ticket;double orderopenprice;int ordertype;double profit;double stoploss;double lot;}; myorder orders[];int i; int Magic=444; //+------------------------------------------------------------------+//| Expert initialization function |//+------------------------------------------------------------------+int OnInit() {//--- //--- return(INIT_SUCCEEDED); }//+------------------------------------------------------------------+//| Expert deinitialization function |//+------------------------------------------------------------------+void OnDeinit(const int reason) {//--- }//+------------------------------------------------------------------+//| Expert tick function |//+------------------------------------------------------------------+void OnTick() { CalcOrders(); }//+------------------------------------------------------------------+void CalcOrders(){ int count1=0; for(i=OrdersTotal()-1; i>=0; i--) { if((OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) && (OrderSymbol()==Symbol()) && (OrderMagicNumber()==Magic) && (OrderType()<2)) { count1++; ArrayResize(orders,count1); orders[count1-1].Ticket=OrderTicket(); orders[count1-1].lot=OrderLots(); orders[count1-1].orderopenprice=OrderOpenPrice(); orders[count1-1].ordertype=OrderType(); orders[count1-1].profit=OrderProfit(); orders[count1-1].stoploss=OrderStopLoss(); } } ArraySort(orders,WHOLE_ARRAY,0,MODE_ASCEND); } 至于把代码扔在这里--当有人将代码贴出来,然后不得不滚动页面时,这让我很生气。这种方式更紧凑。 Any questions from newcomers 如何编码? 求助帖 Artyom Trishkin 2017.01.21 16:49 #845 trader781: 直到我做到。如果我在别人那里找到类似的,我就不会在这里写了。 请不要把代码作为文件粘贴,而是粘贴在信息中。这就是用手机看的方法? Artyom Trishkin 2017.01.21 18:01 #846 trader781: 直到我做到。如果我发现其他人有同样的情况,我就不会在这里写了。我想你自己明白,数列和结构列表是不一样的,否则你会得到另一个有无限多未知数的方程式。#property strictstruct myorder{int Ticket;double orderopenprice;int ordertype;double profit;double stoploss;double lot;}; myorder orders[];int i; int Magic=444; //+------------------------------------------------------------------+//| Expert initialization function |//+------------------------------------------------------------------+int OnInit() {//--- //--- return(INIT_SUCCEEDED); }//+------------------------------------------------------------------+//| Expert deinitialization function |//+------------------------------------------------------------------+void OnDeinit(const int reason) {//--- }//+------------------------------------------------------------------+//| Expert tick function |//+------------------------------------------------------------------+void OnTick() { CalcOrders(); }//+------------------------------------------------------------------+void CalcOrders(){ int count1=-1; for(i=OrdersTotal()-1; i>=0; i--) { if((OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) && (OrderSymbol()==Symbol()) && (OrderMagicNumber()==Magic) && (OrderType()<2)) { count1++; ArrayResize(orders,count1,10); orders[count1].Ticket=OrderTicket(); orders[count1].lot=OrderLots(); orders[count1].orderopenprice=OrderOpenPrice(); orders[count1].ordertype=OrderType(); orders[count1].profit=OrderProfit(); orders[count1].stoploss=OrderStopLoss(); } } ArraySort(orders,WHOLE_ARRAY,0,MODE_ASCEND); } 至于把代码扔在这里--当有人将代码贴出来,然后不得不滚动页面时,这让我很生气。这种方式更紧凑。错了。从你的代码中追踪你的数组将是什么大小。你必须思考,至少要有一点。你不需要猜测。想一想。方案的每一步。还是你在等待别人为你写?这是一项自由职业者服务--他们有时会命令你写函数。 Mickey Moose 2017.01.21 18:11 #847 Artyom Trishkin:错了。从你的代码中追踪你的数组将是什么大小。你应该至少考虑一下。你不应该尝试去猜测。试想一下。方案的每一步。还是你在等待别人为你写?这是一项自由职业者服务--他们有时会命令你写函数。我的看法是1) 如果发现订单,则加到零2)改变大小为0,保留103)把0写成第一阶数,1写成第二阶数,等等。 至于自由职业者,我并不质疑他们会写任何东西,但你还是要自己改写。你不需要不停地去那里。 Vitaly Muzichenko 2017.01.21 18:12 #848 trader781: 直到我做到。如果我发现其他人也是这样,我就不会在这里写了。我想你自己也明白,数字序列和结构列表是不一样的,否则它将是另一个具有无限多未知数的方程。int count1=-1; for(i=OrdersTotal()-1; i>=0; i--) { if((OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) && (OrderSymbol()==Symbol()) && (OrderMagicNumber()==Magic) && (OrderType()<2)) { count1++; ArrayResize(orders,count1,10); orders[count1].Ticket=OrderTicket(); } } ArraySort(orders,WHOLE_ARRAY,0,MODE_ASCEND); } 至于把代码扔在这里--当有人将代码贴出来,然后不得不滚动页面时,这让我很生气。其原因是,编码对项目的质量没有影响。我没有写太多东西,只是录了一个小视频回应。阿特姆当然会尽可能地帮助我,但他不给我鱼,只是给我一根鱼竿)trader781, 有时候翻翻文件,现在动不动就满了。 Artyom Trishkin 2017.01.21 18:22 #849 trader781:在我看来1) 如果发现有订单,则加到零2)改变大小为0,保留103)将0写成第一顺序号,1写成第二顺序号,等等。 至于自由职业者机构,我并不质疑他们会写任何东西,但你还是要自己改写。不要不停地去那里。那你想怎么把东西写进一个大小为零的数组呢?把钱放在一个你没有的钱包里... Mickey Moose 2017.01.21 20:13 #850 Artyom Trishkin:那你想怎么把东西写进一个大小为零的数组呢?把钱放在一个不存在的钱包里 ...修改了844号帖子,这样我就不用再在这里写代码了。至于零大小的数组--0可以是一个整数,可以相当于一个布尔假数,可以是一个空,也可以是一个起点。 1...787980818283848586878889909192...1953 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
1)如果不放第二个维度,编译器会抱怨,"指定类的类型,未知参数 "会立即弹出。
2)那么机器人将在启动时立即死亡,并说 "关键错误阵列超出范围"。
3)设置int count1=-1;然后进行循环。这里有什么问题吗?
偶尔翻看一下答案。1 和2 和3和...
你已经做了一个多星期的同样的事情,而且每次都变得更糟,尽管已经给了你一个答案并指出了错误。在第一段代码中,编译器没有抱怨第二个维度不存在,但在随后的代码中,它开始抱怨了?编译器坏了吗?你也可以打开任何带有数组的代码,看看它们是如何创建的,并做同样的事情。
没有这样的事情。MAs已经被很多人仔细研究过了,人们只需要等待一个新出炉的雄心勃勃的交易员的新思维。开个玩笑。
事实是,这么多年来,我已经厌倦了拿着一个MA瓶子到处打探。他们落后了。它们也许应该用在另一个领域,但不是用来捕捉趋势流的。
有各种各样的马什卡。
总的来说,各地只有推手。
有各种各样的混搭。
总的来说,到处都是正在使用的蘑菇。
阿尔乔姆-特里什金。
这个怎么样?
struct myorder
{
int Ticket;
double orderopenprice;
int ordertype;
double profit;
double stoploss;
double lot;
};
myorder orders[];
int i;
int Magic=444;
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//---
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//---
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
CalcOrders();
}
//+------------------------------------------------------------------+
void CalcOrders()
{
int count1=0;
for(i=OrdersTotal()-1; i>=0; i--)
{
if((OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) && (OrderSymbol()==Symbol())
&& (OrderMagicNumber()==Magic) && (OrderType()<2))
{
count1++;
ArrayResize(orders,count1);
orders[count1-1].Ticket=OrderTicket();
orders[count1-1].lot=OrderLots();
orders[count1-1].orderopenprice=OrderOpenPrice();
orders[count1-1].ordertype=OrderType();
orders[count1-1].profit=OrderProfit();
orders[count1-1].stoploss=OrderStopLoss();
}
}
ArraySort(orders,WHOLE_ARRAY,0,MODE_ASCEND);
}
直到我做到。如果我在别人那里找到类似的,我就不会在这里写了。
直到我做到。如果我发现其他人有同样的情况,我就不会在这里写了。我想你自己明白,数列和结构列表是不一样的,否则你会得到另一个有无限多未知数的方程式。
struct myorder
{
int Ticket;
double orderopenprice;
int ordertype;
double profit;
double stoploss;
double lot;
};
myorder orders[];
int i;
int Magic=444;
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//---
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//---
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
CalcOrders();
}
//+------------------------------------------------------------------+
void CalcOrders()
{
int count1=-1;
for(i=OrdersTotal()-1; i>=0; i--)
{
if((OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) && (OrderSymbol()==Symbol())
&& (OrderMagicNumber()==Magic) && (OrderType()<2))
{
count1++;
ArrayResize(orders,count1,10);
orders[count1].Ticket=OrderTicket();
orders[count1].lot=OrderLots();
orders[count1].orderopenprice=OrderOpenPrice();
orders[count1].ordertype=OrderType();
orders[count1].profit=OrderProfit();
orders[count1].stoploss=OrderStopLoss();
}
}
ArraySort(orders,WHOLE_ARRAY,0,MODE_ASCEND);
}
错了。从你的代码中追踪你的数组将是什么大小。
你必须思考,至少要有一点。你不需要猜测。想一想。方案的每一步。还是你在等待别人为你写?这是一项自由职业者服务--他们有时会命令你写函数。
错了。从你的代码中追踪你的数组将是什么大小。
你应该至少考虑一下。你不应该尝试去猜测。试想一下。方案的每一步。还是你在等待别人为你写?这是一项自由职业者服务--他们有时会命令你写函数。
我的看法是
1) 如果发现订单,则加到零
2)改变大小为0,保留10
3)把0写成第一阶数,1写成第二阶数,等等。
至于自由职业者,我并不质疑他们会写任何东西,但你还是要自己改写。你不需要不停地去那里。直到我做到。如果我发现其他人也是这样,我就不会在这里写了。我想你自己也明白,数字序列和结构列表是不一样的,否则它将是另一个具有无限多未知数的方程。
for(i=OrdersTotal()-1; i>=0; i--)
{
if((OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) && (OrderSymbol()==Symbol())
&& (OrderMagicNumber()==Magic) && (OrderType()<2))
{
count1++;
ArrayResize(orders,count1,10);
orders[count1].Ticket=OrderTicket();
}
}
ArraySort(orders,WHOLE_ARRAY,0,MODE_ASCEND);
}
我没有写太多东西,只是录了一个小视频回应。
阿特姆当然会尽可能地帮助我,但他不给我鱼,只是给我一根鱼竿)
trader781, 有时候翻翻文件,现在动不动就满了。在我看来
1) 如果发现有订单,则加到零
2)改变大小为0,保留10
3)将0写成第一顺序号,1写成第二顺序号,等等。
至于自由职业者机构,我并不质疑他们会写任何东西,但你还是要自己改写。不要不停地去那里。那你想怎么把东西写进一个大小为零的数组呢?
把钱放在一个你没有的钱包里...
那你想怎么把东西写进一个大小为零的数组呢?
把钱放在一个不存在的钱包里 ...
修改了844号帖子,这样我就不用再在这里写代码了。
至于零大小的数组--0可以是一个整数,可以相当于一个布尔假数,可以是一个空,也可以是一个起点。