Если хочешь узнать человека, не слушай, что о нём говорят другие, послушай, что он говорит о других. Не важно, что тебе скажут другие о начале твоего пути. Важно, что они скажут после того когда ты добьешься своей цели. Вы знаете, что такое обаяние? Умение почувствовать, как тебе говорят «да», хотя ты ни о чем не спрашивал. Настоящий друг — это...
double Lots=0.01;
int slippage=30;
voidOnTick()
{
int numer=-10;//На каждом новом тике из за этого присвоения процедура Subr2 будет возвращать ошибку!!!
if(OrdersTotal()==0)numer=Subr1();
if(OrdersTotal()>0)Subr2(numer);
return;
}
int Subr1()
{
int result=-1;
int_result=OrderSend(_symbol,OP_BUY,Lots,slippage,0,0);
if(int_res<0){PrintFormat("OrderSend error = ",GetError());}
return int_result;
}
void Subr2(int order)
{
if(!OrderSelect(order,SELECT_BY_TICKET,MODE_TRADES)){PrintFormat("OrderSelect error %d",GetLastError());return;} elsePrintFormat("Ok, OrderTicket = ",OrderTicket());
}
Artyom Trishkin:
看起来我已经过度劳累了...
看起来像...))))))
当你 根据帮助和各种教程中的说明创建EA 时,它创建的正是有关的模板。我就是这样理解的。然后,这个模板中的一些地方被纠正了。我个人不喜欢OnDeinit()站在OnTick()之前,我把它移到代码的最后。而且我也不喜欢一些非必要的....。总之,我的脑子里有自己的小虫子......
这很明显,我对模板本身也很感兴趣
大约5年前,在metaeditora文件夹里有一个模板,之前是为自己制定的规则,现在全部挖在了终端文件夹 里--没有找到,但应该在某个地方,有一个纯文本文件
ZS。
发现我的旧终端,不在发行版中--已经部署了
以前有专家模板/指示器/脚本/库,一切都在路上。
....\experts\templates
和文件位于那里。
Include.mqt
图书馆.mqt
Expert.mqt
指标.mqt
脚本.mqt
我试着把模板文件夹复制到已安装的MT4文件夹中......没有成功((()
大约5年前,在元编辑器文件夹里有一个模板,我曾经为自己编辑它,现在我已经搜索了终端文件夹,找不到它,但它一定在某个地方,它只是一个纯文本文件。
ZS。
发现我的旧终端,不在发行版中--已经部署了
以前有专家模板/指示器/脚本/库,一切都在路上。
....\experts\templates
和文件位于那里。
Include.mqt
图书馆.mqt
Expert.mqt
指标.mqt
脚本.mqt
我试着把模板文件夹复制到已安装的MT4文件夹中......没有成功((()
主持人放弃这种模板已经很久了。
大约5年前,在元编辑器文件夹里有一个模板,我曾经为自己编辑它,现在我搜索了终端文件夹,没有找到它,但它一定在某个地方,它只是一个纯文本文件。
ZS。
发现我的旧终端,不在发行版中--已经部署了
以前有专家模板/指示器/脚本/库,一切都在路上。
....\experts\templates
和文件位于那里。
Include.mqt
图书馆.mqt
Expert.mqt
指标.mqt
脚本.mqt
我试着将模板文件夹复制到已安装的MT4文件夹中......唉,什么都没有(()
唉,又是 "唉,什么都没有"--即使是在MT4中也是如此。
我不明白发生了什么事!
伊戈尔!
你需要 "升级"!
否则,就不会有好的结果!他们在论坛上对你的评价是不同的!!。
人们对你的评价并不重要,重要的是人们对你的评价。(С)
当引用聪明人的思想时(相对于你自己)--你应该做一个参考!!!。
根据出版物的规则,它必须如此。为了区分傻子和聪明人。
https://socratify.net/quotes/iuristy-bostona/171580
虽然墨索里尼也说过同样的话。
当引用聪明人(不像你)的想法时,你应该做一个参考!!。
按照出版业的规则,应该是这样的。为了区分傻子和聪明人。
我们现在是直呼其名了吗?认可
你选择了错误的论坛来发泄你的怨气,正如你所要求的。"看着一个想冒犯你的人,这很有趣。就像猴子扔便便一样。你在玻璃后面,他的爪子都在***里"(互联网)。
SELECT_BY_POS是在订单列表和你的设计中 "按队列 "选择一个订单。
您正在尝试选择一个订单,该订单是由订单队列# ...而你在这里使用的是票号,你只有一个订单和票号10023444......所以呢?在这里你需要一个 从1到2,3 的数字......好吧,你在市场上有多少订单,......纠正从0,1,2的数字。- 编号从数组中的0开始,一直到OrdersTotal()-1。
SELECT_BY_TICKET应该工作,但只到你有票号的时候,也就是你在市场上的订单,上面有订单发送的检查,如果订单没有发送,票号=-1 !
总而言之,你的订单工作设计是不正确的。 如果你决定学习MQL,这里有现成的订单工作实例https://www.mql5.com/ru/forum/131859
谢谢你的帮助!问题是,订单确实打开了。我查过了。一张票被分配了。但是当我进一步尝试选择它时,得到了一个-1的信息。与你所举的例子不同,我不是在选择一个符号等。我有一个订单,有一个已知的手数,交易,没有止损/止盈等等。正是在这个设计中(选择它是为了简单),当使用SELECT_BY_TICKET参数时,我得到了一个4051的错误。我理解在这种情况下使用SELECT_BY_POS是不正确的。这是一个实验,目的是为了更好地了解策略测试器的工作原理。这个实验表明,策略测试器在无法联系到服务器时,不会分配服务器分配的票据,而是简单地分配序号。尽管如此,问题仍然是为什么会出现4051的错误。此外,我试着在OrderSelect中放入0,并结合SELECT_BY_POS作为第一个参数。答案是一样的4051。
如果我没记错的话,策略测试器 是按订单队列生成票据的:1,2,3...。
唉,你需要自己寻找错误4051,重新打印你传递给OrderSelect的所有变量。
或者,您已经选择了一个已关闭的订单,已关闭订单的关闭时间将>0。
但我还是建议从已经存在的(工作中的)代码开始学习,这对我来说更容易些!"。
谢谢你的帮助!问题是,订单确实打开了。我查过了。这张票被分配了。但是当试图选择它时,我得到了一个-1的信息。与你所举的例子不同,我不是在选择一个符号等。我有一个订单,有一个已知的手数,交易,没有止损/止盈等等。正是在这个设计中(选择它是为了简单),当使用SELECT_BY_TICKET参数时,我得到了一个4051的错误。我理解在这种情况下使用SELECT_BY_POS是不正确的。这是一个实验,目的是为了更好地了解策略测试器的工作原理。这个实验表明,策略测试器在无法联系到服务器时,不会分配服务器分配的票据,而是简单地分配序号。尽管如此,问题仍然是为什么会出现4051的错误。此外,我试着在OrderSelect中放入0,并结合SELECT_BY_POS作为第一个参数。答案是一样的4051。
你的代码中有一个问题。